Мне нужно перезагрузить свой php.ini, а в диалоговом окне справки ничего не говорится о его перезапуске.
Заметка: prepend 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
Используя 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
Или любой другой эквивалент в вашей системе.
Для 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 и БУМ !!
Обычно, service php5-fpm restart
будет хорошо, на актуальном дистрибутиве.
Но иногда это не удается, говоря вам restart: Unknown instance:
(или такой).
Теперь, если вам не нравится перезагружать сервер, просто завершите процессы и начните заново (отредактировано здесь):
$ sudo pkill php5-fpm; sudo service php5-fpm start
Это должно работать:
pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm
Для Mac OSX brew services restart php56
работал у меня.
У меня возникла проблема с перезапуском php7-fpm, потому что я не знал, как именно была названа служба. Эта функция дала мне ответ:
service --status-all
Сервис php7-fpm в моем Ubuntu назывался php7.0-fpm
, так я и сделал:
service php7.0-fpm restart
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`
Для меня я только что обновился через apt, и перезапуск службы не работал. В итоге мне пришлось убить существующие процессы, прежде чем он заработал, используя: killall php5-fpm
На Ubuntu 16 с php 5.6 fpm.
/etc/init.d/php5.6-fpm restart
На 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
Чтобы сценарий перезапуска PHP-FPM работал, вы должны указать файл PID в файле php-fpm.conf. т.е.
pid = /var/run/php-fpm/php-fpm.pid
Значение по умолчанию для pid в php-fpm.conf ничего, что означает, что файл PID не создается, а это означает, что сценарий перезапуска не может определить, какой процесс завершить во время перезапуска.
Самый простой способ найти имя сервиса php-fpm - это найти его:
systemctl -l --type service --all | grep fpm
В 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
В Alpine с nginx это работает:
Чтобы убить все процессы php-fpm7:
kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')
Чтобы запустить php-fpm7:
php-fpm7
Для старых версий debian и ubuntu - php 5.6 это будет
/etc/init.d/php-fpm56 restart
service php-fpm56 restart
В Windows:
Откройте службы в консоли управления:
Start -> Run -> "services.msc" -> OK
Выбрать php-fpm
из списка
Чтобы вывести список сервисов systemd в CentOS / RHEL 7.x +, используйте
systemctl
Чтобы перечислить все услуги:
systemctl список-единиц-файлов
Где вы можете найти службу с именем * 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 вступают в силу.