📌  相关文章
📜  NGINX: connect() to unix: var run php7.2-fpm.sock failed (2: No such file or directory) - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:44:35.870000             🧑  作者: Mango

NGINX: connect() to unix: var run php7.2-fpm.sock failed (2: No such file or directory)

当使用NGINX与PHP-FPM时,你可能会遇到上述错误。这通常意味着 NGINX connector 无法找到PHP-FPM套接字。这可能是由于许多原因引起的。在接下来的部分中,我们将探讨这个问题的可能原因,并提供解决方案。

可能的原因
  1. PHP-FPM套接字不存在

PHP-FPM套接字可能没有启动或已被删除。在这种情况下,请使用以下命令启动PHP-FPM:sudo systemctl restart php7.2-fpm

  1. 套接字路径错误

NGINX connector 可能未能找到正确的PHP-FPM套接字路径。检查NGINX配置文件中的PHP-FPM套接字设置。路径应该类似于:fastcgi_pass unix:/var/run/php7.2-fpm.sock;. 如果其路径不正确,则报错No such file or directory

  1. 权限问题

当PHP-FPM套接字属于其他用户或组时,NGINX将无法访问文件。在这种情况下,请将PHP-FPM套接字的用户名更新为NGINX用户,并更新PHP-FPM配置文件:

sudo chown nginx:nginx /var/run/php7.2-fpm.sock
sudo service php7.2-fpm restart
解决方案
  1. 确保PHP-FPM套接字已启动并存在:

    sudo systemctl status php7.2-fpm
    
  2. 检查NGINX配置文件中的套接字路径是否正确:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass unix:/var/run/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    
  3. 更新PHP-FPM套接字的所有权以保证权限正确:

    sudo chown nginx:nginx /var/run/php7.2-fpm.sock
    sudo service php7.2-fpm restart
    

如果你按照上述步骤操作并仍无法解决问题,请检查NGINX和PHP-FPM的日志以获取更多信息。