我尝试使用本教程使用 FPM 安装 nginx 和 PHP7: https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04
当我尝试访问任何.php
文件时,都会出现502 Bad Gateway
。当我尝试重新启动时php7.0-fpm
,会出现以下信息:
sudo service php7.0-fpm restart
stop: Unknown instance:
php7.0-fpm start/running, process 5379
我的 nginx 配置:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
我的服务器是 Ubuntu Server 14.04
答案1
尝试检查你的 nginx 的 www.conf 文件,并确保套接字路径正确并且这些服务运行时套接字文件存在于该位置。
即
/var/run/php/php7.0-fpm.sock
或
/dev/shm/php-fpm-www.sock
尝试从 init.d 启动 php-fpm
/etc/init.d/php-7.0.0-fpm start
并检查你的 php.ini 文件
将以下内容添加到文件末尾
[apc]
apc.write_lock = 1
apc.slam_defense = 0
答案2
很可能安装了较旧的 libpcre3 并满足 php7.0 包中的依赖关系,但只有较新的库包提供了 pcre_jit_stack_free。
如果是这种情况,请执行apt-get install libpcre3
,然后您就可以开始了。
答案3
我花了好几天的时间才找到解决方案。这是/etc/nginx/sites-available/www
(最初从 ...sites-available/default 复制并修改) 中的一个拼写错误。
我忽略了文件本身和错误日志中的问题/var/log/nginx/error.log
——尽管错误日志很清楚
connect to unix: /var/run/php/php7.0-fpm-sock failed (2: No such file or directory)
连接线应已读取unix: /var/run/php/php7.0-fpm.sock
。
呃。
答案4
我按照使用 php7.0-fpm-sock 的指南进行安装,并将其复制粘贴到 nginx.conf 中。更改为 php7.2-fpm-sock 解决了我的问题。本来想发表评论,但目前还不能这么做。