Solution to the problem that nginx cannot access php: 1. Use a text editor to open the php-fpm.conf configuration file; 2. Modify the configuration [listen = /tmp/php-cgi.sock]; 3. Restart nginx That’s it.
Problem description:
A new index.php file was created in the root directory of nginx, but an error 502 was always reported when accessing the php file. . After testing, it was found that except for php files, everything else can be accessed directly.
(Recommended tutorial: nginx tutorial)
Solution:
First determine whether php-fpm has been installed. If not, you need to first Install php-fpm.
After confirming that the server has installed php-fpm, check whether it has been started or restart directly
[root@localhost ~]# /usr/local/php/sbin/php-fpm start
After the startup is completed, restart nginx:
[root@localhost ~]# service nginx restart
But the above operation does not work Solve the problem.
Look for the nginx error log. My log is in:/var/log/nginx/error.log. Open all similar errors:
2019/11/28 06:06:13 [error] 1640#0: *579 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.56.1, server: _, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.56.101"
Probably means that the connection cannot be reached 9000 port.
Now you need to check whether there is listening port 9000:
[root@localhost ~]# netstat -ant | grep 9000 发现并没有监听(php-fpm已经启动)
Specific solution:
Open
vi /usr/local/php/etc/php-fpm.conf #不知道安装在哪里的话 可以 find / -name php-fpm.conf 搜索一下
Find listen
We will copy the listen = /tmp/php-cgi.sock under [www] and paste it into the nginx configuration file
Note: In the past, I would write fastcgi_pass as 127.0.0.1:9000. Now we need to change it to unix:/tmp/php-cgi.sock.
Finally restart nginx.
Related recommendations: php training
The above is the detailed content of What should I do if nginx cannot access php?. For more information, please follow other related articles on the PHP Chinese website!