Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm trying to follow this Ansible tutorial while adjusting it for Ubuntu 16.04 with php7. Below this message you'll find my Ansible file. After running it and trying to visit the page in the browser I get a 404, and the following in the nginx error logs:

2016/10/15 13:13:20 [crit] 28771#28771: *7 connect() to unix:/var/run/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 93.xxx.xxx.xx, server: 95.xx.xx.xx, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7.0-fpm.sock:", host: "95.xx.xx.xx"

So I checked if the socket file exists, and it seems to exist, but ls behaves weird:

$ sudo ls -l /var/run/php total 4 -rw-r--r-- 1 root     root     5 Oct 15 13:00 php7.0-fpm.pid srw-rw---- 1 www-data www-data 0 Oct 15 13:00 php7.0-fpm.sock $ sudo ls -l /var/run/php7 ls: cannot access '/var/run/php7': No such file or directory $ sudo ls -l /var/run/php7.0-fpm.sock ls: cannot access '/var/run/php7.0-fpm.sock': No such file or directory 

Why can ls find the socket file if I search it by part of the name php while it cannot find the socket file when I list more than that php7 or even the full name php7.0-fpm.sock?

And most importantly, how can I make this work with nginx? All tips are welcome!

below I pasted my Ansible file

--- - hosts: php   become: true    tasks:   - name: install packages     apt: name={{ item }} update_cache=yes state=latest     with_items:       - git       - mcrypt       - nginx       - php-cli       - php-curl       - php-fpm       - php-intl       - php-json       - php-mcrypt       - php-mbstring       - php-sqlite3       - php-xml       - sqlite3    - name: enable mbstring     shell: phpenmod mbstring     notify:       - restart php7.0-fpm       - restart nginx    - name: create /var/www/ directory     file: dest=/var/www/ state=directory owner=www-data group=www-data mode=0700    - name: Clone git repository     git: >       dest=/var/www/laravel       repo=https://github.com/laravel/laravel.git       update=no     become: true     become_user: www-data     register: cloned    - name: install composer     shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer     args:       creates: /usr/local/bin/composer    - name: composer create-project     composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no     become: true     become_user: www-data     when: cloned|changed    - name: set APP_DEBUG=false     lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false    - name: set APP_ENV=production     lineinfile: dest=/var/www/laravel/.env regexp='^APP_ENV=' line=APP_ENV=production    - name: Configure nginx     template: src=nginx.conf dest=/etc/nginx/sites-available/default     notify:       - restart php5-fpm       - restart nginx    handlers:     - name: restart php7.0-fpm       service: name=php7.0-fpm state=restarted      - name: restart nginx       service: name=nginx state=restarted      - name: reload nginx       service: name=nginx state=reloaded 
like image 328
kramer65 Avatar asked Oct 15 '16 13:10

kramer65


2 Answers

Had the same problem. Solution is very easy.

In nginx conf file you are trying upstreaming to

unix:/var/run/php7.0-fpm.sock

Correct path is

unix:/var/run/php/php7.0-fpm.sock


There is a mention about this in the documentation

Nginx communicates with PHP-FPM using a Unix domain socket. Sockets map to a path on the filesystem, and our PHP 7 installation uses a new path by default:

PHP 5 /var/run/php5-fpm.sock

PHP 7 /var/run/php/php7.0-fpm.sock

like image 95
nned Avatar answered Sep 19 '22 14:09

nned


In Ubuntu 18.04 the problem for me was that it's currently using PHP 7.2, but the sites-available default file has:

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

Updating the version on that line so that it's the 7.2 instead of 7.0 fixed the issue for me.

fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

like image 31
Infineight Avatar answered Sep 21 '22 14:09

Infineight