Switching from using a Socket to TCP/IP in PHP-FPM

By default, a TCP/IP connection is more scalable than a socket, but slightly slower


A couple of websites on our DigitalOcean VPS  have a great amount of traffic. Due to this traffic, I ran into the error below (edited for readability).

[crit] connect() to unix:/var/run/php5-fpm.socket failed 2 No such file or directory

This was because the amount of concurrent users was starting to get high. Instead of fiddling around too much, I thought it best to simply switch to a TCP/IP fast_param, as it’s more scalable by default than using a socket.

To do this, we need to edit a couple of files.

PHP5-FPM:

$ sudo nano /etc/php5/fpm/pool.d/www.conf

In this file, find the below line and uncomment it.

;listen = 127.0.0.1:9000

If you have already have listen = unix:/var/run/php5-fpm.socket; in there, or another file in the pool.d folder, comment it out or replace it with the TCP/IP.

Nginx:

Next, we’ll need to edit the Virtual Host config files, which may be located in /etc/nginx/sites-available. Hopefully, you’ve used one global file for all of your PHP sites, otherwise you’ll need to edit multiple files for each site. Look for:

fastcgi_pass unix:/var/run/php5-fpm.sock;

Comment it out or replace it with:

fastcgi_pass 127.0.0.1:9000;

Now we can get things reloaded.

$ sudo service nginx reload
$ sudo service php5-fpm reload