PHP与PHP-FPM的安装
下载安装包
从www.php.net官网下载php源码包,这里下载的是php-5.2.17.tar.bz2,
从http://php-fpm.org/downloads/下载对应的PHP-FPM源码包,这里下载的是php-5.2.17-fpm-0.5.14.diff.gz
2.开始编译安装PHP和PHP-FPM
[root@localhost ~]# tar jxf php-5.2.17.tar.bz2
[root@localhost ~]# gzip -cd php-5.2.17-fpm-0.5.14.diff.gz |patch -d php-5.2.17 -p1
[root@localhost ~]# cd php-5.2.17
[root@localhost php-5.2.17]# ./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm
[root@localhost php-5.2.17]# make &&make install
[root@localhost php-5.2.17]# cp php.ini-dist /usr/local/php/lib/php.ini
3.配置PHP-FPM的默认配置文件
[root@localhost php-5.2.17]# vim /usr/local/php/etc/php-fpm.conf
Unix user of processes
<value name="user">nobody</value>
Unix group of processes
<value name="group">nobody</value>
Process manager settings
大概62行,去掉这两行的注释
4.启动FastCGI进程
[root@localhost php-5.2.17]# /usr/local/php/bin/php-cgi --fpm
或
[root@localhost php-5.2.17]# /usr/local/php/sbin/php-fpm start
查看端口和进程是否启动
[root@localhost php-5.2.17]# netstat -antl| grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
[root@localhost php-5.2.17]# ps -ef | grep php-cgi
root 6922 1 0 16:44 ? 00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
nobody 6923 6922 0 16:44 ? 00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
nobody 6924 6922 0 16:44 ? 00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
nobody 6925 6922 0 16:44 ? 00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
nobody 6926 6922 0 16:44 ? 00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
nobody 6927 6922 0 16:44 ? 00:00:00 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.con
5.配置Nginx支持PHP
[root@localhost php-5.2.17]# vim /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name 192.168.8.64;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
index index.html index.php;
}
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
重新启动Nginx进程
[root@localhost php-5.2.17]# ps -ef | grep nginx
root 6946 1 0 16:49 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 6947 6946 0 16:49 ? 00:00:00 nginx: worker process
[root@localhost php-5.2.17]# kill 6946
[root@localhost php-5.2.17]# /usr/local/nginx/sbin/nginx
到此为止,Nginx+PHP已配置完成
6.测试Nginx对PHP的解析功能
在/usr/local/nginx/html目录下创建一个phpinfo.php文件,内容如下:
<?php phpinfo(); ?>
在浏览器中访问 http://192.168.8.64/phpinfo.php,如果能正常解析,会出现PHP安装配置以及功能列表统计信息。