【问题标题】:Trouble Installing Nginx and php5-fpm on Debian 7.3在 Debian 7.3 上安装 Nginx 和 php5-fpm 时遇到问题
【发布时间】:2014-01-24 02:50:05
【问题描述】:

我在虚拟机中安装了 Debian 7.3,我正在练习安装 Nginx 和 php5-fpm。我让 Nginx 工作,通过为其分配一个手动端口 :8080 并指向 /var/www/ 用于数据,并且该目录中有一个 index.htmlinfo.php 文件。

我的 Nginx 的配置文件位于 /etc/nginx/conf.d/default.conf,如下所示:

server {
    listen   8080;

    root /var/www;
    index index.php index.html index.htm;

    server_name localhost;

    location / {
            try_files $uri $uri/ /index.html;
    }

    location /doc/ {
            alias /usr/share/doc/;
            autoindex on;
            allow 127.0.0.1;
            allow ::1;
            deny all;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/www;
    }

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            #fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

    location ~ /\.ht {
            deny all;
    }
}

我尝试过两种方式更改fastcgi_pass

fastcgi_pass 127.0.0.1:9000;

还有:

fastcgi_pass unix:/var/run/php5-fpm.sock;

在我的/etc/php5/fpm/pool.d/www.conf 文件中,我有以下配置:

[www]

user = www-data
 group = www-data

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

在这里,我也取消了 Nginx default.conf 文件中要匹配的行的注释。

在我的php.ini 文件中,我对其进行了编辑,使其按照我见过的大多数指南的要求显示cgi.fix_pathinfo = 0

当我尝试加载 nginx 时,它运行正常。当我尝试运行 php5-fpm 时会发生这种情况:

root@debianx86:/# /etc/init.d/php5-fpm status
[FAIL] php5-fpm is not running ... failed!

root@debianx86:/# /etc/init.d/php5-fpm reload
[ ok ] Reloading PHP5 FastCGI Process Manager: php5-fpm.

root@debianx86:/# /etc/init.d/php5-fpm restart
[FAIL] Restarting PHP5 FastCGI Process Manager: php5-fpm failed!

root@debianx86:/# /etc/init.d/php5-fpm start
root@debianx86:/# /etc/init.d/php5-fpm status

[FAIL] php5-fpm is not running ... failed!
root@debianx86:/# 

然后我打开我的 VM 上的任何浏览器并将它们指向 127.0.0.1:8080localhost:8080,然后我得到了我制作的自定义 index.html 加载并且它工作正常!所以我尝试加载info.php 文件,然后我得到一个404 Not Found - nginx/1.4.4

我不明白我做错了什么。这一切有什么我遗漏的吗?

我也从sudo apt-get -y install nginxsudo apt-get -y install php5-fpm 安装了nginx。他们需要的任何依赖项都会随之安装。

是否有一个我可以在全新安装的 Debian 7.3 上运行的脚本,有人可以为我正确安装它,并进行所有修改,以便 nginx 和 php5-fpm 启动并运行?我查看了许多带有说明的网站,除了default-sitesenabled-sites 之外,我似乎做了他们所做的几乎所有事情,因为这些文件夹对我来说都不存在,我不想要像这样运行我的虚拟主机。我将使用 default.conf 文件中列出的它们自己的服务器来运行它们。

编辑:我什至尝试在DigitalOcean 关注这篇文章,但它仍然不起作用。

编辑#2:我还做了chown -R www-data:www-data /var/www 以确保用户和组匹配www.conf 文件中的信息。我也尝试将其更改回原来的 root:root 规格。还是什么都没有。

【问题讨论】:

    标签: php nginx debian


    【解决方案1】:

    我想可能 9000 端口已经被使用了,所以 php5-fpm 无法与该端口绑定并无法启动。

    在 fpm 池设置中,将端口 9000 的行与 sock 文件的行交换,然后尝试像以前一样启动 php5-fpm,如果它有效,那么您只需将 nginx 配置更新为代理通行证到 sock 文件而不是端口。

    【讨论】:

    • 两种方法都试过了,还是不行。我测试了端口 9000 以查看它上面是否有任何东西 - 什么也没有。 :-(
    • sudo service php5-fpm status 说什么?,您是否尝试在两种配置启动后运行它?
    • 我给了我同样的结果。我发现如果我先安装 mySQL,然后是 Nginx,然后是 php5-fpm,它会在第四次神奇地工作吗?我觉得这很奇怪,所以我清除了 mySQL 并且它仍然有效?好困惑。
    • 我将为此编写一个完全可安装的脚本。我在LowEndBox 上看到了一些东西,它在 Debian 6 上自动安装了 LEMP。我将为 Debian 7 升级它并将它放在 Github 上,这样就不会再出现了。