我正在 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 将不会启动。
怎么了,我不明白?非常感谢!
tmpfs 可能已挂载到 /var/run。换句话说,这是一个 RAM 磁盘,在操作系统启动时它是干净的。
在这种情况下,您应该将 php-fpm 池配置的“pid”和“listen”指令直接指向 /var/run: