首页 > 代码库 > 部署环境:基于fastcgi的主机服务分离的LAMP
部署环境:基于fastcgi的主机服务分离的LAMP
一、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 //配置线程池,并提供pid
d).启动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