Как Вы перезапускаете php-fpm?

Кажется, что проблема была связана с полномочиями. Мы перемещали DB от одного домена до другого. В первый раз, когда мы переместили их, мы не беспокоились полномочиями, поскольку мы просто хотели видеть, присоединят ли они правильно. Они сделали, но превратились в снимки, когда мы перезагрузили сервер.

В прошлый раз, когда мы переместили DB, мы удалили всех пользователей от старых пользователей домена и добавленных пользователей от нового домена, который, казалось, предотвратил проблему.

Спасибо за справку все.

Маршалл

184
задан 25 March 2014 в 10:29
18 ответов

Примечание: предварительно ожидать sudo если не корень

  • Используя сценарии SysV Init непосредственно:

    /etc/init.d/php-fpm restart    # typical
    /etc/init.d/php5-fpm restart   # debian-style
    /etc/init.d/php7.0-fpm restart # debian-style PHP 7
    
  • Используя сервисный сценарий обертки

    service php-fpm restart    # typical
    service php5-fpm restart   # debian-style
    service php7.0-fpm restart # debian-style PHP 7
    
  • Используя Выскочку (например, человечность):

    restart php7.0-fpm         # typical (ubuntu is debian-based) PHP 7
    restart php5-fpm           # typical (ubuntu is debian-based)
    restart php-fpm            # uncommon
    
  • Используя systemd (более новые серверы):

    systemctl restart php-fpm.service    # typical
    systemctl restart php5-fpm.service   # uncommon
    systemctl restart php7.0-fpm.service # uncommon PHP 7
    

Или независимо от того, что эквивалент находится в Вашей системе.

335
ответ дан 16 December 2019 в 22:45

Это должно работать:

pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm
13
ответ дан 16 December 2019 в 22:45

Для разрешения сценария перезапуска PHP-FPM для работы необходимо указать файл PID в файле php-fpm.conf. т.е.

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

Значение по умолчанию для pid в php-fpm.conf ничего, что означает, что файл PID не создается, а это означает, что сценарий перезапуска не может определить, какой процесс завершить во время перезапуска.

2
ответ дан 16 December 2019 в 22:45

Я только что обновился через apt, и перезапуск службы не работал. В конце концов мне пришлось убить существующие процессы, прежде чем они заработали, используя: killall php5-fpm

3
ответ дан 16 December 2019 в 22:45

Для Mac OS X я делаю следующее:

Создаю сценарий / usr / local / etc / php / fpm-restart :

#!/bin/sh

echo "Stopping php-fpm..."
launchctl unload -w ~/Library/LaunchAgents/homebrew-php*.plist

echo "Starting php-fpm..."
launchctl load -w ~/Library/LaunchAgents/homebrew-php*.plist

echo "php-fpm restarted"
exit 0

Затем :

chmod ug+x /usr/local/etc/php/fpm-restart
cd /usr/local/sbin
ln -s /usr/local/etc/php/fpm-restart

убедитесь, что / usr / local / sbin находится в вашем $ PATH

, затем просто вызовите его с терминала fpm-restart и БУМ !!

30
ответ дан 16 December 2019 в 22:45

php-fpm will restart if you send a USR2 signal to the main process:

sudo kill -USR2 php-fpm_main_process_id

So we just need to instruct php-fpm to record its pid somewhere. In this example, I'll assume you want to save it at /etc/private/php-fpm.pid, and that php-fpm runs as user _php. First, add this line to the configuration file:

pid = /etc/php-fpm.pid

Then create the file /etc/php-fpm.pid, and make sure php-fpm has permission to modify it:

$ cd /etc
$ sudo touch php-fpm.pid
$ sudo chown _php php-fpm.pid
$ sudo chmod 644 php-fpm.pid

Now, next time php-fpm starts, you'll be able to get its pid and restart it like this:

$ cat /etc/php-fpm.pid
815
$ sudo kill -USR2 815

Or you can combine these into a single command:

$ sudo kill -USR2 `cat /etc/private/php-fpm.pid`
6
ответ дан 16 December 2019 в 22:45

Обычно, перезагрузка службы php5-fpm работает нормально, на современном дистрибутиве.

Но иногда она не работает, говоря вам перезагрузка: Неизвестный экземпляр: (или такой).

Теперь, если вам не нравится перезагружать сервер, просто убейте процессы и запустите его заново (отредактировано здесь):

$ sudo pkill php5-fpm; sudo service php5-fpm start
22
ответ дан 16 December 2019 в 22:45

В Windows:

  1. Открытие служб в консоли управления:

     Пуск ->  Выполнить -> "services.msc" -> ОК
     
  2. Выберите php-fpm из списка

  3. Щелкните правой кнопкой мыши и выберите перезапуск
0
ответ дан 16 December 2019 в 22:45

Для старых версий debian & ubuntu - php 5.6 это будет

 /etc/init.d/php-fpm56 restart
 service php-fpm56 restart
0
ответ дан 16 December 2019 в 22:45

Для Mac OSX brew services перезапуск php56 работал у меня .

12
ответ дан 16 December 2019 в 22:45

В CentOS 7

sudo systemctl enable php-fpm // Just incase is disabled. Also ensures it starts automatically with the server

sudo systemctl start php-fpm  // Start the service

sudo systemctl stop php-fpm   // Stop the service

sudo systemctl status php-fpm  // View status
2
ответ дан 16 December 2019 в 22:45

В Ubuntu 16 с php 5.6 fpm.

 /etc/init.d/php5.6-fpm restart
2
ответ дан 16 December 2019 в 22:45

В Alpine с nginx это работает здесь:

Чтобы убить все процессы php-fpm7:

kill $ (ps - o pid, comm | grep php-fpm7 | awk '{print $ 1}')

Для запуска php-fpm7:

php-fpm7

0
ответ дан 16 December 2019 в 22:45

У меня возникла проблема с перезапуском php7-fpm, потому что я не знал, как именно была названа служба. Эта функция дала мне ответ:

service --status-all

служба php7-fpm в моем Ubuntu называлась php7.0-fpm , поэтому я сделал:

service php7. 0-fpm restart

12
ответ дан 16 December 2019 в 22:45

В RedHat / CentOS 7 с использованием PHP 7 с сайта softwarecollections.org

service rh-php70-php-fpm start
service rh-php70-php-fpm stop
service rh-php70-php-fpm reload
service rh-php70-php-fpm restart
service rh-php70-php-fpm status

или если вы используете systemctl:

systemctl start rh-php70-php-fpm
systemctl stop rh-php70-php-fpm
systemctl reload rh-php70-php-fpm
systemctl restart rh-php70-php-fpm
systemctl status rh-php70-php-fpm
1
ответ дан 16 December 2019 в 22:45

Для вывода списка системных служб в CentOS / RHEL 7.x + используйте

systemctl

Для вывода списка всех служб:

systemctl list-unit-files

Где можно найти служба с именем * php-fpm * скопируйте имя службы и выполните следующую команду

systemctl restart ea-php72-php-fpm.service

ПРИМЕЧАНИЕ: ea-php72-php-fpm.service пользователь название вашей службы

0
ответ дан 16 December 2019 в 22:45

Самый простой способ найти имя службы php-fpm - это найти ее:

systemctl -l --type service --all | grep fpm
1
ответ дан 16 December 2019 в 22:45

Другой метод для MaxOS

Откройте ActivityMonitor, выполните поиск по php-fpm, найдите pid.

Откройте терминал, используйте kill [pid] , чтобы остановить php-fpm

Затем php-fpm на терминале, чтобы запустить его.

Если есть информация об ошибке, 127.0.0.1:9000 Уже используется, просто игнорируйте это.

Обновите страницу Nginx, чтобы увидеть, как изменения php.ini вступают в силу.

-2
ответ дан 16 December 2019 в 22:45

Теги

Похожие вопросы