服务器重启时无法运行 php-fpm(Ubuntu 12.04 x64)

服务器重启时无法运行 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)

确实,我自己创建的目录 /var/run/php-5.4.11/ 消失了。如果我再次创建它并执行 sudo /etc/init.d/php-5.4.11-fpm start,它可以工作。但是如果我重新启动服务器,该目录将被删除,php-fpm 将不会启动。

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

答案1

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

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

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

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

相关内容