PHP-FPM - Error 503 - Attempt to connect to Unix domain socket failed

41,882

Solution 1

This is potentially caused by systemd configuration on Apache, on Centos 7 for example by default the service is configured with :

PrivateTmp=true

Which means it gets its own subdirectory in /tmp visible as /tmp so it can't see files in /tmp added by other programs. The solution would be to not use /tmp for your php-fpm sockets (more secure than setting the above to false).

(I realise that in at least one case a Debian derivative is in use, but it uses systemd too!)

paulie.

Solution 2

I just had the same problem after updating apache from 2.4.10 to 2.4.24. With old apache the connection to fcgi worked with a socket in /tmp, while the new apache gave error (2)No such file or directory. Moving the socket to /var/run solved the problem.

Looking at the source code for mod_proxy, I found that on newer apache the path should be relative to the one specified as DefaultRuntimeDir. In my configuration, this is set in /etc/apache2/apache2.conf and it also uses some definition from /etc/apache2/envvars.

Solution 3

change user and group to your current apache user

/etc/php-fpm.d/www.conf 

** user and group must be the same in /etc/http/conf/http.conf

Then execute

chown -R user.user /run/php-fpm/www.conf

** change to your user

Share:
41,882

Related videos on Youtube

Pavel Novák
Author by

Pavel Novák

Updated on September 18, 2022

Comments

  • Pavel Novák
    Pavel Novák over 1 year

    I get on server this errors (CentOs 7):

    [proxy:debug] proxy_util.c(2209): [client 80.251.245.153:61902] AH00944: connecting fcgi://127.0.0.1/data/webs/dev/index.php to 127.0.0.1:8000
    [proxy:debug] proxy_util.c(2246): [client 80.251.245.153:61902] AH02545: fcgi: has determined UDS as /tmp/php56-fpm.sock
    [proxy:debug] proxy_util.c(2418): [client 80.251.245.153:61902] AH00947: connected /data/webs/dev/index.php to httpd-UDS:0
    [proxy:error] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /tmp/php56-fpm.sock (*) failed
    [proxy_fcgi:error] AH01079: failed to make connection to backend: httpd-UDS
    [proxy:debug] proxy_util.c(2171): AH00943: FCGI: has released connection for (*)
    

    Socket Exists, i'm tried change permissions to 777, but not working:

     ls -l /tmp/php56-fpm.sock
    -rw-rw----. 1 apache apache 0 Feb 17 16:11 /tmp/php56-fpm.sock
    

    PHP-FPM www.conf listen setting (full file is here: https://pastebin.com/uD5GsMna):

    listen=/tmp/php56-fpm.sock

    Virtualhost:

    <VirtualHost *:80>
       ServerName dev.stavebninyfranek.com
       DocumentRoot "/data/webs/dev"
       <FilesMatch "\.php$">
         SetHandler  "proxy:unix:/tmp/php56-fpm.sock|fcgi://127.0.0.1"
       </FilesMatch> 
     </VirtualHost>
    

    My config files is (httpd.conf): https://pastebin.com/XS6cDuFQ

    Im tryed change socket, change permission to apache:apache user, but I dont know where is problem.

    Thanks

  • dortegaoh
    dortegaoh about 6 years
    There are selinux permissions on that file (indicated by the dot after the permissions). You can see them with ls -Z. Most probably the file had the wrong selinux context.