一、FastCgi与PHP-fpm
参考: http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/
二、LAMP分离架构
资源规划:
静态层:172.16.1.1,httpd服务器
动态层:172.16.1.2,PHP服务器,启动php-fpm
数据层:172.16.1.3, mysql服务器,lvm
三、数据库服务器搭建
略,参考上一篇:部署环境:LAMP+Xcache
四、httpd服务器的搭建
略,参考上一篇:部署环境:LAMP+Xcache
五、php服务器的搭建
1.编译安装php
略,参考上一篇:部署环境:LAMP+Xcache
2.配置php-fpm
a).为php提供配置文件
# cd /php-5.4.26 # cp php.ini-produciton /etc/php.ini
b).为php-fpm提供服务启动脚本(编译安装默认不会生成)
# cd /php.5.4.26
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
//ph默认提供有脚本文件
# chmod +x /etc/rc.d/init.d/php-fpm
//赋予执行权限
# chkconfig --add php-fpm
//将php-fpm进程添加为系统服务进程
# chkconfig php-fpm on
//开机启动
# chkconfig --list php-fpm
//查看启动情况c).为php-fpm脚本提供配置文件
# cp /usr/local/php/php-fpm.conf.default /usr/local/php/php-fpm.conf
# vim /usr/local/php/php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
//配置线程池,并提供pidd).启动php-fpm服务进程
# service php-fpm start # ps aux | grep php-fpm #ss -ntl | grep ":9000"
六、http服务器与php-fpm相关配置
1.启动httpd中fastcgi相关模块
#httpd2.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
2.配置虚拟主机支持使用fastcgi
# vim /etc/httpd/httpd.conf
//先禁用主配置文件的DocumentRoot项,同时启用httpd-vhost.conf配置文件
#DocumentRoot /usr/local/apache/htdocs
Include /etc/httpd/extra/httpd-vhosts.conf
#vim /etc/httpd/extra/httpd-vhosts.conf //配置虚拟主机
<VirtualHost *:80>
DocumentRoot "/www/hoo.com"
ServerName hoo.com
ServerAlias www.hoo.com
Errolog "logs/www.hoo.com_error_log"
Customlog "logs/www.hoo.com_access_log" common
ProxyRequsts Off //关闭正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.1.2:9000/www/hoo.com/$1
// apache服务器把以.php结尾的文件请求通过fasftcgi协议发送给PHP服务器的php-fpm进程去处理,因此php服务器上的php-fpm服务进程至少需要知道网页文件运行的目录和URI
<Directory "www/hoo.com">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
// 172.16.1.2 为规划中的PHP服务器ip地址 3.测试
a).mysql授权测试用户
参考上一篇:部署环境:LAMP+Xcache 中mysql配置
b).新建测试页面
#vim /www/jungege.com/index.php <?php $link = mysql_connect(‘172.16.1.3‘,‘test‘,‘testpass‘); if ($link) echo "Success..."; else echo "Failure..."; mysql_close(); phpinfo(); ?>
七、xcache配置
略,参考上一篇:部署环境:LAMP+Xcache
本文出自 “狐狸胡” 博客,请务必保留此出处http://7944938.blog.51cto.com/7934938/1405387
部署环境:基于fastcgi的主机服务分离的LAMP,布布扣,bubuko.com
原文地址:http://7944938.blog.51cto.com/7934938/1405387