Ответы:
Примечание : добавьте, sudo
если не root
Использование сценариев 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
Использование Upstart (например, Ubuntu):
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
Или любой другой эквивалент в вашей системе.
brew services restart php56
(если вы получаете сообщение об ошибке из-за отсутствия формулы, попробуйте другую версию, например php5 или php55). Если у вас не установлены службы brew, он должен установить его для вас при первом запуске.
service php-fcgi-mydomain-com restart
и мне пришлось повторять это для каждого домена с включенными сайтами
systemctl reload php70-php-fpm
systemctl restart php5.6-fpm.service
Для 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 и BOOM !!
homebrew.mxcl.php*.plist
если это не сработает
Как правило, все service php5-fpm restart
будет в порядке, на современном распространении.
Но иногда это терпит неудачу, говоря вам restart: Unknown instance:
(или тому подобное).
Теперь, если вы не любите перезагружать свой сервер, просто убейте процессы и начните все сначала (отредактировано здесь):
$ sudo pkill php5-fpm; sudo service php5-fpm start
stop: Unknown instance:
)
Это должно работать:
pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm
killall php-fpm
php-fpm --prefix /usr/local
, создаю несколько каталогов под той, которая им нужна, и, как заявил @Keeth, pkill -USR2 -o php-fpm
проверка с помощью pgrep -l fpm
и PID действительно меняются! У меня не было файлов или сервисов plist, чтобы воспользоваться упомянутыми в некоторых других ответах.
Для Mac OSX brew services restart php56
работал для меня.
php-fpm перезапустится, если вы отправите сигнал USR2 основному процессу:
sudo kill -USR2 php-fpm_main_process_id
Так что нам просто нужно дать php-fpm команду записать свой pid. В этом примере я предполагаю, что вы хотите сохранить его в /etc/private/php-fpm.pid
, а php-fpm работает как пользователь _php. Сначала добавьте эту строку в файл конфигурации:
pid = /etc/php-fpm.pid
Затем создайте файл /etc/php-fpm.pid
и убедитесь, что php-fpm имеет разрешение на его изменение:
$ cd /etc
$ sudo touch php-fpm.pid
$ sudo chown _php php-fpm.pid
$ sudo chmod 644 php-fpm.pid
Теперь, когда в следующий раз запустится php-fpm, вы сможете получить его pid и перезапустить его так:
$ cat /etc/php-fpm.pid
815
$ sudo kill -USR2 815
Или вы можете объединить их в одну команду:
$ sudo kill -USR2 `cat /etc/private/php-fpm.pid`
pkill ...
ответы и комментарии @ dialt0ne's и @ Keeth выше; короче и проще.
Чтобы скрипт перезапуска PHP-FPM работал, вы должны указать PID-файл в вашем файле php-fpm.conf. т.е.
pid = /var/run/php-fpm/php-fpm.pid
Значение по умолчанию для pid в php-fpm.conf - ничто, что означает не создавать файл PID, что означает, что скрипт перезапуска не может сказать, какой процесс завершить во время перезапуска.
На 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
На 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
Самый простой способ найти имя сервиса php-fpm - это найти его:
systemctl -l --type service --all | grep fpm
systemctl list-units *fpm*
В Windows:
Откройте Сервисы в Консоли управления:
Start -> Run -> "services.msc" -> OK
Выберите php-fpm
из списка
Для старых версий Debian & Ubuntu - PHP 5.6 это будет
/etc/init.d/php-fpm56 restart
service php-fpm56 restart
Для получения списка системных служб в CentOS / RHEL 7.x + используйте
systemctl
Чтобы перечислить все услуги:
systemctl list-unit-files
Где вы можете найти службу с именем * php-fpm *, скопировать имя службы и выполнить следующую команду
Перезапуск systemctl ea-php72-php-fpm.service
ПРИМЕЧАНИЕ: ea-php72-php-fpm.service пользователь ваше имя службы
Еще один метод для MaxOS
Откройте ActivityMonitor, найдите php-fpm, найдите pid.
Откройте терминал, используйте kill [pid]
для остановки php-fpm
Затем php-fpm
на терминале, чтобы запустить его.
Если есть информация об ошибке, которая уже используется 127.0.0.1:9000, просто игнорируйте ее.
Обновите страницу Nginx, чтобы изменения в php.ini вступили в силу.
php-fpm
, скорее всего, запустит его не от того пользователя; игнорирование сообщений об ошибках никогда не бывает хорошей идеей.
which php-fpm
дает/usr/local/sbin/php-fpm
.