不可能在服务器重启时运行php-fpm(Ubuntu 12.04 x64)

我在ubuntu 12.04 LTS(x64)上用nginx + php-fpm(5.4.11)设置服务器,

我从存储库安装了nginx,并自己编译了PHP。 当我启动php-fpm和nginx时,所有东西都可以正常工作

sudo /etc/init.d/php-5.4.11-fpm start sudo service nginx start 

我可以在网页上显示一个phpinfo,到目前为止还不错。

pid在/etc/php-5.4.11/php-fpm.conf中是这样设置的

 pid = /var/run/php-5.4.11/php-fpm.pid 

和/ etc / nginx / sites-available / default

 location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-5.4.11/php-fpm.sock; fastcgi_index index.php; include fastcgi_params; } 

现在,我想在服务器重新启动时启动PHP,所以我做了:

 update-rc.d php-5.4.11-fpm defaults 

但是,当我重新启动服务器,我得到这个日志文件中的错误:

 ERROR: unable to bind listening socket for address '/var/run/php-5.4.11/php-fpm.sock': No such file or directory (2) 

实际上,我自己创build的目录/var/run/php-5.4.11/已经消失了。 如果我再次创build它,并执行sudo /etc/init.d/php-5.4.11-fpm start,它将起作用。 但是,如果我重新启动服务器,目录将被删除,php-fpm将无法启动。

怎么了,我不明白 非常感谢你!

tmpfs可能会挂载到/ var / run。 换句话说,这是一个RAM磁盘,它在OS启动时是干净的。

在这种情况下,你应该把你的php-fpm池configuration的“pid”和“listen”指令直接指向/ var / run:

 pid = /var/run/php-fpm.pid [www] listen = /var/run/php-fpm.sock