Назад | Перейти на главную страницу

Невозможно запустить php-fpm при перезагрузке сервера (Ubuntu 12.04 x64)

Я настраиваю сервер с 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