##以FastCGI来编译php
1 | #./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-openssl --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config |
1 | cp php.ini-production /etc/php.ini |
配置php-fpm, 为php-fpm提供sysv.init脚本,并将其添加到服务列表:
1 | cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm |
为php-fpm提供配置文件:
1 | cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf |
编辑php-fpm的配置文件:
1 | # vi /usr/local/php/etc/php-fpm.conf |
配置fpm的相关选项为你所需要的值,并启用pid文件:
pm.max_children = 50
pm.start_servers = 5
pm.min_space_servers = 2
pm.max_space_servers = 8
pid = /usr/lcoal/php/var/run/php-fpm.pid
接下来就可以启动php-fpm了:
1 | service php-fpm start |
php-fpm 监听端口为9000;
3、启用httpd的相关模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
1 | # vi /etc/httpd/httpd.conf |
AddType application/x-httpd-php .php
Addtype application/x-httpd-php-source .phps
还有DirectoryIndex index.html改为index.php
(或者DirectoryIndex index.html index.php)
(二)、
配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行:
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT.ROOT/$1
如:
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/www/meiyun.com/$1
ProxyRequests Off:关闭正向代理;
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道
运行的目录和URL,所以这里直接在fcgi://127.0.0.1:9000后指明了
这两个参数,其他的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定;
例如:
<VirtualHost *:80>
DocumentRoot “www/unravel.com”
ServerName www.unravel.com
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi:127.0.0.1:9000/www/unravel.com/$1
<Directory “www/unravel.com”>
Options none
AllowOverride none
Require all granted
如果以FastCGI方式安装xcache,在安装上后service php-fpm restart即可。
最后说明:
1 | cp phpMyAdmin-version-all-language pma |
修改其中的随机数,可保证安全性。