nginx 和 php5-fpm 仅适用于 ip 地址

Posted

技术标签:

【中文标题】nginx 和 php5-fpm 仅适用于 ip 地址【英文标题】:nginx and php5-fpm works only with ip address 【发布时间】:2014-09-27 19:08:16 【问题描述】:

我使用的是 Ubuntu 13,并且我已经安装了 nginxphp5-fpm;在此之前我安装了 PHP5 和 apache;我删除了

/etc/php5/fpm/pool.d/www.conf

user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /

nginx 配置文件:

upstream php 
    server unix:/var/run/php5-fpm.socket;


server 
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.html index.htm index.php;

# Make site accessible from http://localhost/
server_name localhost;

location / 
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules



location ~ \.php$ 
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;


当我尝试时

http://local.host/info.php

它下载 info.php 文件而不是执行该文件

但是当我尝试时:

http://my.ip.address/info.php

它显示了phpinfo() 函数

问题出在哪里?

【问题讨论】:

我会说你有2台具有相同根的服务器,尝试将local.host添加到server_name并重新加载nginx,看看它是否仍然发生 可能相关:***.com/q/23443398/2010467 可能交叉发布:askubuntu.com/q/507025/40581 【参考方案1】:

你可以试着改变你的配置:

server 
   listen 80;
   server_name localhost;

   root /usr/share/nginx/html;
   index index.html index.htm index.php;

   location ~ \.php$ 
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      //fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_pass localhost:9000;
      fastcgi_index index.php;
      include fastcgi_params;
   


还有你的 www.conf:

listen = localhost:9000
;listen = /var/run/php5-fpm.sock

【讨论】:

【参考方案2】:

换行到server_name localhost local.host 127.0.0.1;(你确定http://local(dot)host不是错字吗?)

检查/etc/hostnames,如果它与上面不同,也添加它。还要检查您是否没有另一个条目 server ... 监听相同的端口 80。

查看文件夹/etc/nginx/sites-enabled/default文件名也包含server...参数。 http... 块位于 /etc/nginx/nginx.conf 中,有时可能包含 server... 块。

【讨论】:

以上是关于nginx 和 php5-fpm 仅适用于 ip 地址的主要内容,如果未能解决你的问题,请参考以下文章

Vagrant 和 NGINX 仅适用于 80 以外的端口

在 ubuntu 上使用 nginx 和 php5-fpm 进行配置帮助

关于 PHP5-FPM 和 NginX 的 MediaWiki PHP 会话

Debian 8 上的 nginx 1.6 别名 + php5-fpm = 404

nginx + php5-fpm 中的错误 502

又一个 FastCGI Primary Script Unknown 错误(nginx、php5-fpm)