千家信息网

CentOS 6系统的 lamp (编译安装,模块或php-fpm)详解

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,LAMP 是指一组通常一起使用来运行动态网站或者服务器的 自由软件 名称首字母缩写:1、Linux;操作系统;2、Apache;网页服务器;3、 MariaDB或MySQL,数据库管理系统(或者数据库
千家信息网最后更新 2026年10月31日CentOS 6系统的 lamp (编译安装,模块或php-fpm)详解

LAMP 是指一组通常一起使用来运行动态网站或者服务器的 自由软件 名称首字母缩写:

1、Linux;操作系统;

2、Apache;网页服务器;

3、 MariaDB或MySQL,数据库管理系统(或者数据库服务器);

4、PHP、Perl或Python,脚本语言;


实验要求:

(1) 三者分离于两台或三台主机;

(2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

(3) xcache

(4) 尝试mpm为非prefork机制;




IP系统软件
192.168.1.102CentOS 6.7httpd(event)
192.168.1.103CentOS 6.7php-fpm,xcache
192.168.1.104CentOS 6.7mariadb



CentOS 6:

PHP-5.3.2-:默认不支持fpm机制;需要自行打补丁并编译安装;

httpd-2.2:默认不支持fcgi协议,需要自行编译此模块;



解决方案:编译安装httpd-2.4,apr,apr-util版本为1.4+,php-5.3.3+;


实验安装版本:httpd-2.4.10 + apr-1.5.0+ apr-util-1.5.3 + php-5.4.40 + xcache-3.2.0 + mariadb-5.5.46









一、192.168.1.102主机,编译安装httpd-2.4.10 + apr-1.5.0 + apr-util-1.5.3


httpd-2.4.10需要较新版本的apr和apr-util,因此需要事先对其进行升级,这里使用源代码编译安装。

apr和apr-util的包下载地址:https://archive.apache.org/dist/apr/
httpd程序源码包下载地址:https://archive.apache.org/dist/httpd/


1、安装开发环境包组和开发程序包


# hwclock -s //将软件时间同步为硬件时间

# yum grouplist //查看包组

# yum groupinstall "Development Tools" "Server Platform Development" -y //开发环境包组

# yum install pcre-devel -y //httpd-2.4.10编译过程要依赖于pcre-devel软件包



2、编译安装apr


# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install



3、 编译安装apr-util


# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install



4、编译安装并配置httpd-2.4.10

4.1 编译安装


# rpm -qa httpd

httpd-2.2.15-45.el6.centos.x86_64

# yum remove httpd -y //卸载之前rpm包安装的httpd


# tar xf httpd-2.4.10.tar.bz2

# cd httpd-2.4.10

# ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-cgid --enable-rewrite --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

# make && make install



//sysconfdir=/etc/httpd24 指定配置文件安装位置

//enable-so 支持动态共享模块(DOS),如果没有这个模块PHP将无法与apache结合工作

//enable-ssl 支持ssl功能

//enable-proxy 支持代理

//enable-proxy-fcgi 支持fcgi

// enable-cgi 支持cgi

//enable-rewrite 支持URL重写

//enable-modules=most 启用哪些模块

//enable-mpms-shared=all 支持多道处理模块

//with-mpm=event 设定默认模块为prefork模块

//with-zlib 支持压缩库,便于页面压缩后的发送和接收,互联网传播时可节约带宽

//with-pcre 支持cre扩展的正则表达式,支持更强大的正则表达式分析功能





4.2 修改httpd.pid路径,默认安装时的路径在/usr/local/apache24/logs


# /usr/local/apache24/bin/apachectl start

# /usr/local/apache24/bin/apachectl stop

# vim /etc/httpd24/httpd.conf

pidfile "/var/run/httpd.pid" //在ServerRoot "/usr/local/apache24" 下面添加这一行

# /usr/local/apache24/bin/apachectl start

# ls /var/run //发现httpd.pid出现


4.3 修改PATH环境变量,让系统可以直接使用apachectl的相关命令



# vim /etc/profile.d/httpd24.sh

export PATH=/usr/local/apache24/bin:$PATH


编辑配置文件(全局有效且重启shell后依然有效)此时,环境变量不会立即生效,但是对新登录的用户有效,然后新用户登录进行验证



4.4、提供SysV服务脚本/etc/rc.d/init.d/httpd24


# vim /etc/rc.d/init.d/httpd24 //内容如下


#!/bin/bash

#

# httpd Startup script for the Apache HTTP Server

#

# chkconfig: - 85 15

# description: Apache is a World Wide Web server. It is used to serve \

# HTML files and CGI.

# processname: httpd

# config: /etc/httpd24/httpd.conf

# config: /etc/sysconfig/httpd24

# pidfile: /var/run/httpd.pid


# Source function library.

. /etc/rc.d/init.d/functions


if [ -f /etc/sysconfig/httpd24 ]; then

. /etc/sysconfig/httpd24

fi


# Start httpd in the C locale by default.

HTTPD_LANG=${HTTPD_LANG-"C"}


# This will prevent initlog from swallowing up a pass-phrase prompt if

# mod_ssl needs a pass-phrase from the user.

INITLOG_ARGS=""


# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server

# with the thread-based "worker" MPM; BE WARNED that some modules may not

# work correctly with a thread-based MPM; notably PHP will refuse to start.


# Path to the apachectl script, server binary, and short-form for messages.

apachectl=/usr/local/apache24/bin/apachectl

httpd=${HTTPD-/usr/local/apache24/bin/httpd}

prog=httpd

pidfile=${PIDFILE-/var/run/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd}

RETVAL=0


start() {

echo -n $"Starting $prog: "

LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch ${lockfile}

return $RETVAL

}


stop() {

echo -n $"Stopping $prog: "

killproc -p ${pidfile} -d 10 $httpd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}

}

reload() {

echo -n $"Reloading $prog: "

if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then

RETVAL=$?

echo $"not reloading due to configuration syntax error"

failure $"not reloading $httpd due to configuration syntax error"

else

killproc -p ${pidfile} $httpd -HUP

RETVAL=$?

fi

echo

}


# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status -p ${pidfile} $httpd

RETVAL=$?

;;

restart)

stop

start

;;

condrestart)

if [ -f ${pidfile} ] ; then

stop

start

fi

;;

reload)

reload

;;

graceful|help|configtest|fullstatus)

$apachectl $@

RETVAL=$?

;;

*)

echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"

exit 1

esac


exit $RETVAL


而后为此脚本赋予执行权限:

# chmod +x /etc/rc.d/init.d/httpd24


加入服务列表:

# chkconfig --add httpd24

开机自动启动

# chkconfig httpd24 on


启动服务

# service httpd24 start

# ss -tnl






附加:这里httpd编译安装时指定MPM模块类型为event,想要切换MPM中的类型可以编辑主配置文件即可。

例如:改为prefork模型

# vim /etc/httpd24/httpd.conf //编辑生成的主配置文件


Include /etc/httpd24/extra/httpd-mpm.conf //去掉注释符,启用extra模块

# LoadModule mpm_event_module modules/mod_mpm_event.so //注释掉当前模型

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so //改成要使用的MPM模块类型

重启httpd服务后发现MPM模块类型切换为prefork模型


# httpd -M




二、192.168.1.104主机,通用二进制格式安装mariadb-5.5.46



1、下载加压mariadb


下载平台对应的mysql版本至本地,下载地址为https://downloads.mariadb.com/archives/


# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local

# cd /usr/local/

# ln -sv mariadb-5.5.46-linux-x86_64/ mysql

# cd mysql


2、创建用户以安全方式运行进程


# groupadd -r -g 306 mysql

# useradd -g 306 -r -u 306 mysql

# chown -R mysql:mysql /usr/local/mysql/*

3、准备数据存放的文件系统


新建一个逻辑卷,并将其挂载至特定目录即可。这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。


# mkdir /mydata/data -pv

# chown -R mysql.mysql /mydata/data

# chmod 750 /mydata/data

4、初始化mysql-5.5.46


# cd /usr/local/mysql

# scripts/mysql_install_db --user=mysql --datadir=/mydata/data

5、为mysql提供主配置文件


# cd /usr/local/mysql

# cp support-files/my-large.cnf /etc/my.cnf

# vim /etc/my.cnf

# cat /proc/cpuinfo //查看CPU个数


并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:

thread_concurrency = 2


另外还需要在[mysqld]下添加数据文件的存放位置:

datadir = /mydata/data



6、为mysql提供sysv服务脚本


# cd /usr/local/mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# chmod +x /etc/rc.d/init.d/mysqld


添加至服务列表:

# chkconfig --add mysqld

# chkconfig mysqld on


7、启动mysql服务


# service mysqld start


8、修改PATH环境变量,让系统可以直接使用mysql的相关命令


此时必须指明全路径才可以进入mysql命令行界面,想要直接使用mysql进入命令行,需要编辑配置文件(全局有效且重启shell后依然有效,对当前shell无效,需要登出再登入)

# vim /etc/profile.d/mysql.sh


export PATH=/usr/local/mysql/bin:$PATH




为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:


9、输出mysql的man手册至man命令的查找路径


编辑/etc/man.config,添加如下行即可:

MANPATH /usr/local/mysql/man



10、输出mysql的头文件至系统头文件路径/usr/include


# ln -sv /usr/local/mysql/include /usr/include/mysql


11、输出mysql的库文件给系统库查找路径


# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf


12、系统重新载入系统库


# ldconfig


13、创建和授权wordpress和phpMyAdmin用户

MariaDB [(none)]> CREATE DATABASE wpdb; //创建wordpress数据库

MariaDB [(none)]> GRANT ALL ON wpdb.* TO wpuser@'192.168.1.%' IDENTIFIED BY 'wppass'; //授权wordpress用户

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> CREATE DATABASE pma; //创建phpMyAdmin数据库

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON pma.* TO pmauser@'192.168.1.%' IDENTIFIED BY 'pmapass';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)




三、192.168.1.103主机,编译安装php-5.4.40


1、解决依赖关系


自行配置好yum源(系统安装源及epel源)后执行如下命令:


# yum groupinstall "Server Platform Development" "Development tools" -y

# yum install bzip2-devel libmcrypt-devel libxml2-devel mhash mhash-devel libmcrypt-devel libmcrypt -y



2、编译安装php-5.4.40


下载源码包至本地目录,下载位置 http://mirrors.sohu.com/php/。


# tar xf php-5.4.40.tar.bz2

# cd php-5.4.40

# ./configure --prefix=/usr/local/php --with-openssl --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts



要想支持fpm时,需要去掉 --with-apxs2=/usr/local/apache/bin/apxs , 添加 --enable-fpm ,注意两者不能同时存在。

说明:如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。

# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd


# make -j 4 && make install


3、为php提供配置文件:


# cp php.ini-production /etc/php.ini


4、配置php-fpm


为php-fpm提供SysV init脚本,并将其添加至服务列表:

# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

# chmod +x /etc/rc.d/init.d/php-fpm

# chkconfig --add php-fpm

# chkconfig php-fpm on


为php-fpm提供配置文件:

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf


编辑php-fpm的配置文件:

# vim /usr/local/php/etc/php-fpm.conf


配置fpm的相关选项为你所需要的值,并启用pid文件:

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 2

pm.max_spare_servers = 8

pid = run/php-fpm.pid //启用

listen = 192.168.1.103:9000

listen.allowed_clients = 192.168.1.102


然后就可以启动php-fpm了,查看9000端口。

# service php-fpm start



四、192.168.1.103主机,安装xcache,为php加速:(可以支持php-5.4的xcache版本必须为2.0+)

下载地址 https://xcache.lighttpd.net/pub/Releases


1、编译安装


# tar xf xcache-3.2.0.tar.bz2

# cd xcache-3.2.0

# /usr/local/php/bin/phpize

# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

# make && make install



安装结束时,会出现类似如下行:



2、编辑php.ini,整合php和xcache:


首先将xcache提供的样例配置导入php.ini


# mkdir /etc/php.d

# cp /root/xcache-3.2.0/xcache.ini /etc/php.d

编辑配置文件/etc/php.d/xcache.ini


# vim /etc/php.d/xcache.ini


在[xcache-common]开下,修改为如下行:

extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so


注意:如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位。




五、192.168.1.102主机,配置httpd-2.4.10


1、编辑httpd主配置文件,关闭中心主机,启用虚拟主机配置文件,启用httpd的相关模块


# vim /etc/httpd24/httpd.conf

#DocumentRoot "/usr/local/apache24/htdocs" //注释掉这一行

Include /etc/httpd24/extra/httpd-vhosts.conf //找到并启用这一行

LoadModule log_config_module modules/mod_log_config.so //确认这一行启用,虚拟主机 配置文件中会用到mod_log_config


在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModule proxy_module modules/mod_proxy.so //启用

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so //启用

添加如下二行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps




定位至DirectoryIndex index.html


修改为:

DirectoryIndex index.php index.html




2、编辑虚拟主机的配置文件

1)配置虚拟主机的配置文件使虚拟主机支持使用fcgi


# vim /etc/httpd24/extra/httpd-vhosts.conf

修改如下






2)为虚拟主机提供默认访问页面和日志存放目录

# mkdir /var/log/httpd24 //创建的日志存放位置

# mkdir /apps/vhosts/{b.net,c.org} -pv //httpd主机和php主机都需要创建访问路径



# vim /apps/vhosts/b.net/index.php //php主机上创建测试页




# vim /apps/vhosts/c.org/index.php //php主机上创建测试页





3)重启服务,物理主机浏览器测试


# httpd -t //习惯做配置语法测试

Syntax OK

# service httpd24 restart



然后windows主机加192.168.1.102主机名解析



浏览器访问www.b.net和www.c.og





六、192.168.1.103主机,为虚拟主机安装配置wordpress和phpMyAdmin

1、 安装wordpress //php主机


1)下载、配置wordpress

# cd /apps/vhosts/b.net/

# ls //下载wordpress压缩包(下载地址:https://wordpress.org/download/ )

wordpress-4.3.1-zh_CN.zip

# unzip wordpress-4.3.1-zh_CN.zip

# cd wordpress/

# mv wp-config-sample.php wp-config.php

# vim wp-config.php



# scp -r /apps/vhosts/b.net/wordpress root@192.168.1.102:/apps/vhosts/b.net/ //此时需要把php主机的wordpress文件放到httpd主机的页面访问路径下


2)httpd主机

# httpd -t //测试语法

Syntax OK

# service httpd24 restart

3)windows浏览器访问 www.b.net/wordpress,按之前授权的信息填写相关内容。






2、安装phpMyAdmin

1)下载解压phpMyAdmin

# cd /apps/vhosts/c.org

# ls

phpMyAdmin-4.4.14.1-all-languages.zip //下载phpMyAdmin压缩包(https://www.phpmyadmin.net/downloads/)

# unzip phpMyAdmin-4.4.14.1-all-languages.zip

# mv phpMyAdmin-4.4.14.1-all-languages pma

# cd pma

# mv config.sample.inc.php config.inc.php

2)配置phpMyAdmin

# openssl rand -base64 18 //生成一段随机数

fUDTA121uzwkoWMr4m4DGKQv

# vim config.inc.php //编辑配置文件



# scp -r /apps/vhosts/c.org/pma root@192.168.1.102:/apps/vhosts/c.org // 此时需要把php主机的pma文件放到httpd主机的页面访问路径下


3)httpd主机

# httpd -t //测试语法

Syntax OK

# service httpd24 restart


4)windows浏览器访问 www.c.org/pma,按之前授权的信息填写相关内容。






至此看似浩瀚的lamp编译工程结束,如果哪里有写的不对甚至欠缺的地方,希望大牛们批评指出。之前以为一台主机安装lamp比较简单,现在才明白,主要是搞清楚他们之间的关系,几台主机安装都是相通的。个人总结:配置系统时,需要屡清楚各个程序之间的关系,遇到困难需要结合相应的日志文件查看哪里出错,配置文件时需要做好必要的备份,配置完成后可以语法测试的需要测试一下,不要盲目的百度和问别人,要自己动脑筋思考。



主机 配置 文件 模块 编译 支持 系统 服务 虚拟主机 路径 数据 测试 命令 目录 有效 地址 数据库 版本 环境 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 保险科技 互联网保险 互联网新科技 博彦科技互联网金融 亿人帮互联网科技有限公司 互联网通讯科技 科技信息互联网 上海卓越科技 互联网 深圳国际航运科技和互联网 重庆互联网医院沙龙医盟信息科技 互联网金融科技名词解释 互联网科技公司营业执照怎么办理 互联网时代的科技公司 山东星卡互联网科技有限公司官网 伍佰万互联网科技怎么赚钱 广州富喜互联网络科技 新氧科技和美国互联网有关系吗 互联网硬科技公司 广西泛欧互联网科技有限公司 现代科技的标志之一的互联网 科技与互联网 互联网为科技 互联网金融公司科技 鑫亿盛互联网科技 广州互联网络科技有限公司 老年人脱离互联网科技的作文 彤创互联网科技有限公司 上海万顺科技互联网有限公司招聘 马化腾互联网科技教学 恒生科技互联网指数十大成分股
0