Відповіді:
Примітка : додайте, 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
Або будь-який еквівалент у вашій системі.
brew services restart php56
(якщо ви отримаєте помилку щодо недоступної формули, спробуйте іншу версію, наприклад, php5 або php55). Якщо у вас немає встановлених служб пивоваріння, вони повинні встановити його для вас з першого запуску.
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
, і PIDs дійсно змінюються! У мене не було файлів чи служб-плістів, щоб скористатися згаданими іншими відповідями.
Для 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 працює як user _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 та @ Keeth вище; коротше і простіше.
Щоб дозволити роботі сценарію перезапуску PHP-FPM, потрібно використовувати у файлі php-fpm.conf файл PID. тобто
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
На Alpine з nginx це працює тут:
Щоб знищити всі процеси php-fpm7:
kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')
Щоб запустити php-fpm7:
php-fpm7
Для переліку системних служб на 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.
php-fpm
, швидше за все, запустить його під невірним користувачем; ігнорування повідомлень про помилки ніколи не є хорошою ідеєю.
which php-fpm
дає/usr/local/sbin/php-fpm
.