我尝试在nginx

时间:2016-05-27 17:25:10

标签: php nginx ubuntu-12.04

我一直试图在我的Ubuntu 12.04 / nginx服务器上运行php脚本。我知道12.04已经过时了,但我已经卡在那里了。

我已经看到了nginx / sites-available文件的大量不同配置。我已经尝试了很多。我也尝试将php切换到另一个端口(我随机选择8889和9001),我在该文件和etc / php5 / fpm / pool.d / www.conf中设置了这些。

我想注意,当我apt-get安装php5-fpm时,我注意到这个警告: update-rc.d:警告:php5-fpm stop runlevel arguments(0 1 6)与LSB Default-Stop值不匹配(无)

然而,它似乎没有表明fpm已经失败并且还有更多(安装输出中该行下方的非警告/错误输出)。

我还想提一下,这个服务器还在不同的虚拟主机上运行python django环境,该主机也监听端口9000,但我认为这并不重要,因为它们都是nginx进程?并且,就像我提到的,我尝试更改php的端口,但它没有解决问题。

我尝试运行的脚本所做的唯一事情是打印hello world,所以那里应该没有问题。

这是我的nginx / sites-available / myvirtualhost配置文件(你可以看到我的许多不同的php配置被注释掉 - 最上面一个来自我的网站 - 可用/默认文件(在那里注释掉,默认在网站中没有链接) - 启用):

    server {
        listen 80;
        listen [::]:80;
#
        server_name mag.somedomain.com;
#
        root /var/www/mag.somedomain.com/public_html;
        index index.html;
#
        location / {
                try_files $uri $uri/ =404;
        }
        #location ~ \.php$ {
        #        include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #        fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #}
        #location ~ \.php$ {
        #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       fastcgi_pass 127.0.0.1:9000;
        #       fastcgi_index index.php;
        #       include fastcgi_params;
        #}
        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/mag.somedomain.com/public_html/$fastcgi_script_name;
        }
}

当我查看nginx / error.log时(当端口设置为9000时):

2016/05/27 17:16:14 [error] 10689#0: *150 upstream sent unsupported FastCGI protocol version: 72 while reading response header from upstream, client: 99.3.19.77, server: mag.somedomain.com, request: "GET /version.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "mag.somedomain.com"

如果我更改端口,我会得到一个空白网页(而不是502),并且错误日志中没有任何内容。

当我使用netstat查看我得到的内容时(还有一些其他端口被收听):

tcp        0      0 127.0.0.1:8801          0.0.0.0:*               LISTEN      26768/python    
tcp        0      0 127.0.0.1:8802          0.0.0.0:*               LISTEN      8444/python     
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      10686/nginx -g daem

任何人都知道我需要做什么?我已经打了好几个小时。

1 个答案:

答案 0 :(得分:0)

好的,事实证明它确实是9000端口。我想我试过的两个备用端口不能正常使用(8999和9001)。当我检查php5-fpm错误日志时,它说端口9000已经在使用中。所以我选择了另一个随机端口 - 这次是8070 - 我的hello world脚本神奇地工作了。去图。