![无法使用 nginx 运行 php 脚本](https://linux22.com/image/613082/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20nginx%20%E8%BF%90%E8%A1%8C%20php%20%E8%84%9A%E6%9C%AC.png)
我使用以下命令在 Lubuntu 13.04 32 位上安装了 nginx:
sudo apt-get install php5-fpm
sudo apt-get install mercurial libpcre3-dev libssl-dev
hg clone -r stable-1.4 http://hg.nginx.org/nginx nginx
cd nginx
auto/configure --with-http_ssl_module
make
sudo make install
之后我禁用了 Apache:
sudo kill $(pidof apache2)
sudo update-rc.d -f apache2 remove
我编辑了 nginx.conf,现在是:
worker_processes 1;
events
{
worker_connections 1024;
}
http
{
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server
{
listen 80;
server_name localhost;
index index.html index.php;
location /
{
root html;
index index.html index.php;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$
{
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root html;
}
}
}
所以我启动了 nginx,我在 html 目录中编写了一个 test.php 脚本,其中只有
<?php
echo 'OK!';
我在浏览器中打开了它,但是不起作用。错误是:
[错误] 2886#0:*1 connect()失败(111:连接被拒绝)连接到上游时,客户端:127.0.0.1,服务器:localhost,请求:“GET /test.php HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“localhost”
php5-fpm 似乎已经启动了,因为如果我尝试 sudo php5-fpm,我会收到此错误:
ERROR: An another FPM instance seems to already listen on /var/run/php5-fpm.sock
答案1
您的 PHP-FPM 安装设置为使用套接字而不是 TCP。
更改此行:
fastcgi_pass fastcgi_pass 127.0.0.1:9000;
到:fastcgi_pass unix:/var/run/php5-fpm/php5-fpm.sock;
或者,您可以修改 nginx.conf 文件listen =
以使用端口而不是套接字。