我刚刚启动了一个新的 Rackspace 云服务器并运行了以下命令:
apt-get install php5 nginx php-fpm
Run Code Online (Sandbox Code Playgroud)
当我导航到 IP 地址时,我会看到默认的 Nginx 消息。然后我/etc/nginx/sites-available/default从另一个工作设置复制了我的文件:
server {
listen 80;
server_name localhost;
root /srv/www;
index index.php;
location / {
try_files $uri $uri/ /controllers$uri.php;
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我创建index.php的/srv/www,并开始nginx和php-fpm:
/etc/init.d/nginx start
/etc/init.d/php5-fpm start
Run Code Online (Sandbox Code Playgroud)
我收到 502 Bad Gateway 错误。难道我做错了什么?
就我而言,解决方案是:
1-像@David一样更改列表:
sudo nano /etc/php/7.0/fpm/pool.d/www.conf
Run Code Online (Sandbox Code Playgroud)
在文件搜索中listen =,注释 ...sock 并添加 127.0.0.1:9000
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
Run Code Online (Sandbox Code Playgroud)
2- 更改 Nginx 站点配置(例如 /etc/nginx/sites-available/mysite.com)
server {
.
.
.
location ~ \.php$ {
.
.
.
#fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
.
.
.
Run Code Online (Sandbox Code Playgroud)
3-增加超时和 max_children:
/etc/php/7.0/fpm/php.ini => default_socket_timeout = 60000
/etc/php/7.0/fpm/php.ini => pm.max_children = 20
/etc/php/7.0/fpm/pool.d/www.conf => request_terminate_timeout = 60000
Run Code Online (Sandbox Code Playgroud)
4-增加 /etc/nginx/nginx.conf 的超时:
keepalive_timeout 65000;
Run Code Online (Sandbox Code Playgroud)
重启 php-fpm 和 nginx 后:
sudo service php7.0-fpm restart
sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)
我建议在重新启动 nginx 之前测试一下是否一切正常:
sudo service nginx configtest
Run Code Online (Sandbox Code Playgroud)
小智 5
由于我无法添加评论,我会将其发布为答案...
检查/etc/php5/fpm/pool.d/www.conf(或那里的文件)它是否设置为在 TCP 或 UNIX 套接字上运行。还要检查 PHP 是否实际运行。并查看日志文件/var/log/php5-fpm.log或/var/log/php5-fpm/*和/var/log/nginx/*(取决于设置)。
您应该在那里找到错误的原因。
| 归档时间: |
|
| 查看次数: |
37389 次 |
| 最近记录: |