CentOS 6上编译安装LAMP
一、编译httpd-2.4
1、准备好开发环境
# yum groupinstall “development tools”
# yum install pcre-devel
2、准备源码包
apr-1.5.0-tar.gz
apr-util-1.5.3-tar.gz
httpd-2.4.10-tar.gz
3、编译apr-1.5
# tar xvf apr-1.5.0-tar.gz
# cd apr-1.5.0
# ./configure –prefix=/usr/local/apr
# make && make install
4、编译apr-util-1.5.3
# tar xvf apr-util-1.5.3-tar.gz
# cd apr-util-1.5.3
# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
# make && make install
5、编译httpd-2.4.10
# tar httpd-2.4.10-tar.gz
# cd httpd-2.4.10
# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd24
–enable-so nable-cgi –enable-rewrite –with-zlib –with-pcre
–with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util
–enable-modules=most –enable-mpms-shared=all –with-mpm=event
# make && make install
6、提供服务脚本/etc/rc.d/init.d/httpd24
拷贝http-2.2的服务脚本并把如下路径改为编译后httpd-2.4的路径即可,pid文件的位置也需要修改
apachectl=/usr/local/apache/bin/apachectl
httpd=/usr/local/apache/bin/httpd
prog=httpd
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
加入服务列表
# chkconfig –add httpd24
7、配置环境变量并重读此配置文件
# vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
# . /etc/profile.d/httpd.sh
8、启动服务
# service httpd24 start
二、编译MariaDB-5.5.43
1、准备源码包
MariaDB-5.5.43-tar.gz
2、创建数据存放目录
# mkdir -pv /mydata/data
3、创建系统用户及其系统组并修改其属主、属组
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql.mysql /mydata/data
4、安装并初始化MariaDB
# tar xf MariaDB-5.5.43-tar.gz -C /usr/local
# cd /usr/local
# ln -sv MariaDB-5.5.43 mysql
# cd mysql
# chown -R root.mysql ./*
初始化:
# scripts/mysql_install_db –datadir=/mydata/data/ –user=mysql
5、为mysql提供主配置文件
# mkdir /etc/mysql
# cp support-files/my-large.cnf /etc/mysql/my.cnf
编辑主配置文件如并添加如下内容
# vim /etc/mysql/my.cnf
datadir = /mydata/data
innodb_file_per_table = on
skip_name_resolve = on
6、为mysql提供服务脚本
# cd /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
7、添加至服务列表并启动服务
# chkconfig –add mysqld
# service mysqld start
8、安装初始化给root帐号添加密码以及删除空帐号
# /usr/local/bin/mysql_secure_installation
三、编译php-5.4.40
1、准备源码包
php-5.4.40-tar.gz
2、解决依赖关系
# yum -y install bzip2-devel libmcrypt-devel libxml2-devel
3、编译并安装php-5.4.40
# tar xf php-5.4.40
# cd php-5.4.40
# ./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql
–with-openssl –with-mysqli=/usr/local/mysql/bin/mysql_config
–enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir
–with-zlib –with-libxml-dir=/usr –enable-xml –enable-sockets
–with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt
–with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d
–with-bz2 –enable-maintainer-zts(prefork模块不需要此项)
# make && make install
4、为php提供配置文件:
拷贝源码目录下的php.ini-production文件到/etc目录并改名为php.ini
# cp php.ini-production /etc/php.ini
5、编辑apache配置文件httpd.conf,让apache支持php
# vim /etc/httpd24/httpd.conf
添加如下两行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
并定位至DirectoryIndex index.html将其修改为:
DirectoryIndex index.php index.html
6、提供index.php测试页面
默认目录:/usr/local/apache/htdocs
测试页面index.php示例如下:
<?php
$link = mysql_connect(‘127.0.0.1′,’root’,”);
if ($link)
echo “successfully”;
else
echo “failure”;
mysql_close;
phpinfo();
?>
7、重新启动httpd服务,测试其是否可正常访问
# service httpd24 restart
四、编译安装xcache,为php加速
1、准备源码包
xcache-3.2.tar.gz
2、编译安装xcache
# tar xf xcache-3.2
# /usr/local/php/bin/phpize 生成./configure脚本
# ./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config
# make && make install
安装结束后,会出现类似如下行:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
3、编辑php.ini,整合php和xcache:
将xcache源码目录中提供的样例配置导入php.ini
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d
# vim /etc/php.d/xcache.ini
定位至extension开头的行,将修改为如下内容:
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
五、重新编译httpd以fpm方式与php结合
1、删除之前解压的目录并重新解压
# rm -f php-5.4.0
# tar xf php-5.4.0
2、编译安装
# cd php-5.4.0
# ./configure –prefix=/usr/local/php5 –with-mysql=/usr/local/mysql
–with-openssl –with-mysqli=/usr/local/mysql/bin/mysql_config
–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/php5
–with-config-file-scan-dir=/etc/php5.d –with-bz2
# make && make install
3、为php提供配置文件
# mkdir /etc/php5{,.d}
# cp php.ini_production /etc/php5/php.ini
4、为php-fpm提供服务脚本并添加至服务列表
# cp spai/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
5、为php-fpm提供配置文件并编辑:
# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
# vim /usr/local/php5/etc/php-fpm.conf
作如下修改:
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php5/var/run/php-fpm.pid
6、启动php-fpm
# service php-fpm start
7、验证php-fpm是否启动成功
# ps aux | gerp fpm
默认情况下,fpm监听在127.0.0.1的9000端口,可使用#
netstat -tnlp | grep php-fpm验证是否已经在监听相关的套接字上
8、配置httdp.conf,以实现fcgi
1、启用相关的模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
2、配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行:
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.0:9000/PATH/TO/DOCUMENT_ROOT/$1
提示:/PATH/TO/DOCUMENT_ROOT:为网页存放的位置
ProxyRequests Off:关闭正向代理
ProxyPassMatch 把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。
例:
<VirtualHost *:80>
DocumentRoot “/web/htdocs/www1”
ServerName rzt.com
ServerAlias www.rzt.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000web/htdocs/www1/$1
<Directory “/web/htdocs/www1”>
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
3、让apache能识别php格式的页面
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
让其支持php格式的主页
DirectoryIndex index.php index.html

浙公网安备 33010602011771号