Я настраиваю сервер с nginx + php-fpm (5.4.11) на ubuntu 12.04 LTS (x64)
Я установил 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-диск, чистый при старте ОС.
В этом случае вы должны указать директивы pid и listen вашей конфигурации пула php-fpm прямо в / var / run:
pid = /var/run/php-fpm.pid
[www]
listen = /var/run/php-fpm.sock