Odpowiedzi:
Uwaga : dodaj, sudo
jeśli nie root
Korzystanie bezpośrednio ze skryptów 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
Korzystanie ze skryptu opakowania usługi
service php-fpm restart # typical
service php5-fpm restart # debian-style
service php7.0-fpm restart # debian-style PHP 7
Korzystanie z Upstart (np. Ubuntu):
restart php7.0-fpm # typical (ubuntu is debian-based) PHP 7
restart php5-fpm # typical (ubuntu is debian-based)
restart php-fpm # uncommon
Za pomocą systemd (nowsze serwery):
systemctl restart php-fpm.service # typical
systemctl restart php5-fpm.service # uncommon
systemctl restart php7.0-fpm.service # uncommon PHP 7
Lub cokolwiek równoważnego jest w twoim systemie.
brew services restart php56
(jeśli pojawi się błąd związany z brakiem dostępnej formuły, wypróbuj inną wersję, np. php5 lub php55). Jeśli nie masz zainstalowanych usług browarniczych, powinien zainstalować je dla Ciebie przy pierwszym uruchomieniu.
service php-fcgi-mydomain-com restart
stało : I musiałem to powtórzyć dla każdej domeny z włączonymi witrynami
systemctl reload php70-php-fpm
systemctl restart php5.6-fpm.service
W Mac OS X robię to:
Stwórz skrypt /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
Następnie:
chmod ug+x /usr/local/etc/php/fpm-restart
cd /usr/local/sbin
ln -s /usr/local/etc/php/fpm-restart
upewnij się, że / usr / local / sbin znajduje się w $ PATH
następnie po prostu wywołaj to z terminala fpm-restart i BOOM !!
homebrew.mxcl.php*.plist
jeśli to nie zadziała
Zazwyczaj service php5-fpm restart
będzie dobrze, na aktualnej dystrybucji.
Ale czasami zawodzi, mówiąc ci restart: Unknown instance:
(lub coś takiego).
Teraz, jeśli nie chcesz ponownie uruchamiać serwera, po prostu zabij procesy i zacznij od nowa (edytowane od tego momentu):
$ sudo pkill php5-fpm; sudo service php5-fpm start
stop: Unknown instance:
)
To powinno działać:
pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm
killall php-fpm
php-fpm --prefix /usr/local
tworzenia niektórych katalogów w ramach tego, którego potrzebuje, a jak stwierdził @Keeth pkill -USR2 -o php-fpm
, sprawdzanie za pomocą pgrep -l fpm
i identyfikatory PID naprawdę się zmieniają! Nie miałem plików plist ani usług, z których można by skorzystać, o których wspominały niektóre inne odpowiedzi.
Na Mac OSX brew services restart php56
działało dla mnie.
Miałem problem z ponownym uruchomieniem php7-fpm, ponieważ nie wiedziałem, jak dokładnie została nazwana ta usługa. Ta funkcja dała mi odpowiedź:
service --status-all
Wywołano usługę php7-fpm w moim Ubuntu php7.0-fpm
, więc zrobiłem:
service php7.0-fpm restart
service --status-all
php-fpm uruchomi się ponownie, jeśli wyślesz sygnał USR2 do głównego procesu:
sudo kill -USR2 php-fpm_main_process_id
Musimy więc po prostu poinstruować php-fpm, aby gdzieś nagrał swój pid. W tym przykładzie /etc/private/php-fpm.pid
założę, że chcesz go zapisać , i że php-fpm działa jako użytkownik _php. Najpierw dodaj ten wiersz do pliku konfiguracyjnego:
pid = /etc/php-fpm.pid
Następnie utwórz plik /etc/php-fpm.pid
i upewnij się, że php-fpm ma uprawnienia do jego modyfikacji:
$ cd /etc
$ sudo touch php-fpm.pid
$ sudo chown _php php-fpm.pid
$ sudo chmod 644 php-fpm.pid
Teraz następnym razem, gdy uruchomi się php-fpm, będziesz mógł uzyskać jego pid i zrestartować go w następujący sposób:
$ cat /etc/php-fpm.pid
815
$ sudo kill -USR2 815
Lub możesz połączyć je w jedno polecenie:
$ sudo kill -USR2 `cat /etc/private/php-fpm.pid`
pkill ...
odpowiedź i komentarz @ dialt0ne i @ Keeth powyżej; krótszy i prostszy.
Aby zezwolić na działanie skryptu restartu PHP-FPM, musisz użyć pliku PID w pliku php-fpm.conf. to znaczy
pid = /var/run/php-fpm/php-fpm.pid
Domyślna wartość dla pid w php-fpm.conf to nic, co oznacza, że nie można utworzyć pliku PID, co oznacza, że skrypt restartu nie może powiedzieć, który proces zakończyć podczas restartu.
Na 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
Na RedHat / CentOS 7 przy użyciu PHP 7 z 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
lub jeśli używasz 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
Najprostszym sposobem na znalezienie nazwy usługi php-fpm jest jej wyszukanie:
systemctl -l --type service --all | grep fpm
systemctl list-units *fpm*
W systemie Windows:
Otwórz usługi w konsoli zarządzania:
Start -> Run -> "services.msc" -> OK
Wybierz php-fpm
z listy
Dla starych wersji debian i ubuntu - php 5.6
/etc/init.d/php-fpm56 restart
service php-fpm56 restart
Aby wyświetlić listę usług systemowych na CentOS / RHEL 7.x + użyj
systemctl
Aby wyświetlić listę wszystkich usług:
systemctl list-unit-files
Gdzie można znaleźć usługę o nazwie * php-fpm * skopiuj nazwę usługi i uruchom następujące polecenie
systemctl restart ea-php72-php-fpm.service
UWAGA: ea-php72-php-fpm.service użytkownik nazwa usługi
Kolejna metoda dla MaxOS
Otwórz ActivityMonitor, wyszukaj php-fpm, znajdź pid.
Otwórz terminal, użyj, kill [pid]
aby zatrzymać php-fpm
Następnie php-fpm
na terminalu, aby go uruchomić.
Jeśli istnieją informacje o błędzie, które 127.0.0.1:9000 są już w użyciu, po prostu zignoruj to.
Odśwież stronę Nginx, zobaczysz, że zmiany w php.ini zaczną działać.
php-fpm
najprawdopodobniej uruchomi go pod niewłaściwym użytkownikiem; ignorowanie komunikatów o błędach nigdy nie jest dobrym pomysłem.
which php-fpm
daje/usr/local/sbin/php-fpm
.