nginx虚拟机配置,支持php

由于本人水平有限,以下记录仅作参考。

下面贴出我的一份正常运行的nginx服务器虚拟机配置。/usr/local/nginx/conf/vhost/www.xsll.com.conf

 1 server {
 2     listen       80;              #虚拟主机监听端口
 3     server_name  www.xsll.com;        #虚拟主机名称
 4 
 5     #charset koi8-r;
 6     #access_log  /var/log/nginx/log/host.access.log  main;
 7 
 8     root  /home/wwwroot/default/discuz/upload;  #你的项目目录
 9     index index.php index.html index.htm;     #默认寻找的文件
10 
11     location / {
12         try_files $uri $uri/ =404;
13     if (!-e $request_filename){
14         rewrite ^/(.*)?$ /$1.php?last;
15       }
16     }
17 
18     error_page  404              /404.html;
19 
20     # redirect server error pages to the static page /50x.html
21     #
22     error_page   500 502 503 504  /50x.html;
23     location = /50x.html {
24         root   /usr/share/nginx/html;
25     }
26 
27     # proxy the PHP scripts to Apache listening on 127.0.0.1:80
28     #
29     #location ~ \.php$ {
30     #    proxy_pass   http://127.0.0.1;
31     #}
32 
33     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
34     #
35     location ~ \.php$ {
36         #root          html;
37     try_files      $uri = 404;
38         fastcgi_pass   unix:/tmp/php-cgi.sock;  #这一行很重要,路径要与PHP配置文件中的监听路径相同,但前面要加unix:/
39         fastcgi_index  index.php;
40         fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
41     #fastcgi_param SCRIPT_FILENAME  /scripts$fastcgi_script_name;
42         include        fastcgi_params;
43     }
44 
45     # deny access to .htaccess files, if Apache's document root
46     # concurs with nginx's one
47     #
48     #location ~ /\.ht {
49     #    deny  all;
50     #}
51 }

下面我贴出我的php的配置文件/user/local/php/etc/php-fpm.conf

 1 [global]
 2 pid = /usr/local/php/var/run/php-fpm.pid
 3 error_log = /usr/local/php/var/log/php-fpm.log
 4 log_level = notice
 5 
 6 [www]
 7 listen = /tmp/php-cgi.sock
 8 listen.backlog = -1
 9 listen.allowed_clients = 127.0.0.1
10 listen.owner = www
11 listen.group = www
12 listen.mode = 0666
13 user = www
14 group = www
15 pm = dynamic
16 pm.max_children = 10
17 pm.start_servers = 2
18 pm.min_spare_servers = 1
19 pm.max_spare_servers = 6
20 request_terminate_timeout = 100
21 request_slowlog_timeout = 0
22 slowlog = var/log/slow.log

可以看到在虚拟主机配置的38行:fastcgi_pass unix:/tmp/php-cgi.sock;这个路径正式php配置文件中第7行:listen = /tmp/php-cgi.sock;这样nginx虚拟机就支持了PHP程序解析了。