Cum reporniți php-fpm? (Administrarea sistemului, Nginx, Php, Php Fpm, Php5)

Galen a intrebat.

Trebuie să reîncarc php.ini și nu există nimic în dialogul de ajutor despre repornirea lui.

18 răspunsuri
tylerl

Notă: predau sudo dacă nu este root

  • Folosind scripturile SysV Init direct:

    /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
    
  • Utilizarea scriptului de înfășurare a serviciului

    service php-fpm restart    # typical
    service php5-fpm restart   # debian-style
    service php7.0-fpm restart # debian-style PHP 7
    
  • Folosind Upstart (de exemplu, Ubuntu):

    restart php7.0-fpm         # typical (ubuntu is debian-based) PHP 7
    restart php5-fpm           # typical (ubuntu is debian-based)
    restart php-fpm            # uncommon
    
  • Utilizarea systemd (servere mai noi):

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

Sau oricare ar fi echivalentul pe sistemul dvs.

Comentarii

  • Dar pe un Mac? php-fpm a fost instalat folosind homebrew. which php-fpm oferă /usr/local/sbin/php-fpm. –  > Por hobbes3.
  • @hobbes3 încercați brew services restart php56 (dacă primiți o eroare despre faptul că nu există o formulă disponibilă, încercați o versiune diferită, de exemplu, php5 sau php55). Dacă nu aveți instalate serviciile brew, ar trebui să le instaleze pentru dvs. la prima rulare. –  > Por Doktor J.
  • Niciuna dintre cele de mai sus nu a funcționat pentru mine, dar asta a funcționat: service php-fcgi-mydomain-com restart Și a trebuit să o repet pentru fiecare domeniu de la sites-enabled –  > Por Ilyich.
  • Acesta a fost cel mai bun pentru mine (centOs) : systemctl reload php70-php-fpm –  > Por 4wk_.
  • Eu sunt pe Ubuntu 16.04 și asta părea să funcționeze: systemctl restart php5.6-fpm.service –  > Por relipse.
Diego Antunes

Pentru Mac OS X, iată ce fac eu:

Faceți un script /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

Apoi:

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

asigurați-vă că /usr/local/sbin este în $PATH-ul dvs.

apoi apelați-l din terminal fpm-restart și BOOM!!!

Comentarii

BurninLeo

De obicei, service php5-fpm restart se va descurca bine, pe o distribuție actualizată.

Dar, uneori, dă greș, spunându-vă restart: Unknown instance: (sau așa ceva).

Acum, dacă nu vă place să vă reporniți serverul, doar omorâți procesele și aveți un nou început (editat de aici):

$ sudo pkill php5-fpm; sudo service php5-fpm start

Comentarii

  • Mulțumesc, asta a rezolvat exact problema mea. (stop: Unknown instance:) –  > Por Nilloc.
dialt0ne

Acest lucru ar trebui să funcționeze:

pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm

Comentarii

  • Dacă ați instalat PHP-FPM prin homebrew pe un Mac, prima comandă funcționează mult mai bine decât descărcarea+încărcarea plistului –  > Por Alan Ivey.
  • OSX: killall php-fpm –  > Por ptim.
  • Pe OSX, comanda de mai sus mi-a dat o eroare „Unknown user SR2”. Inversarea argumentelor a rezolvat problema: „pkill -USR2 -o php-fpm”.  > Por Keeth.
  • Exact ceea ce aveam nevoie pentru a reporni FPM într-un container, mulțumesc! –  > Por Adrian Günter.
  • Folosesc versiunea preinstalată, sau inclusă cu xcode, a php și versiunea asociată -fpm din anumite motive, și nu prin Homebrew. M-am gândit că ar trebui să folosesc ceea ce este deja acolo. Folosesc o combinație de php-fpm --prefix /usr/local, , făcând câteva directoare sub cea de care are nevoie și, așa cum a declarat @Keeth, pkill -USR2 -o php-fpm, , verificând cu pgrep -l fpm, , iar PID-urile se schimbă într-adevăr! Nu am avut nici un fișier plist sau servicii de care să profit menționate de unele dintre celelalte răspunsuri. –  > Por Pysis.
Blake Frederick

Pentru Mac OSX brew services restart php56 a funcționat pentru mine.

Comentarii

  • yup, funcționează și pentru mine. Mac osx –  > Por Mike Nguyen.
Gediminas

Am avut o problemă cu repornirea php7-fpm, pentru că nu știam cum anume se numește serviciul. Această funcție mi-a dat răspunsul:

service --status-all

serviciul php7-fpm în Ubuntu-ul meu se numea php7.0-fpm, , așa că am făcut-o:

service php7.0-fpm restart

Comentarii

  • +1 pentru service --status-all –  > Por J.D..
Pitarou

php-fpm va reporni dacă trimiteți un semnal USR2 către procesul principal:

sudo kill -USR2 php-fpm_main_process_id

Deci, trebuie doar să instruim php-fpm să înregistreze undeva pid-ul său. În acest exemplu, voi presupune că doriți să îl salvați la /etc/private/php-fpm.pid, , și că php-fpm rulează ca utilizator _php. Mai întâi, adăugați această linie la fișierul de configurare:

pid = /etc/php-fpm.pid

Apoi creați fișierul /etc/php-fpm.pid, , și asigurați-vă că php-fpm are permisiunea de a-l modifica:

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

Acum, data viitoare când php-fpm va porni, veți putea obține pid-ul său și îl veți reporni astfel:

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

Sau puteți combina aceste comenzi într-o singură comandă:

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

Comentarii

  • Îmi plac cele ale lui @dialt0ne și @Keeth. pkill ... răspuns & comentariu de mai sus mai mult; mai scurt și mai simplu. –  > Por Pysis.
  • acest lucru este mai bun și o explicație bună. pkill riscă, dacă nu se potrivesc corect procesele, să vă omoare celelalte grupuri PHP dacă se întâmplă să le aveți rulând pe aceeași cutie (da, aceasta este o practică proastă). –  > Por Rich K..
Pooch

În cazul meu, tocmai făcusem actualizarea prin apt și repornirea serviciului nu funcționa. Am ajuns să trebuiască să omor procesele existente înainte de a funcționa folosind: killall php5-fpm

Danack

Pentru a permite scriptului de repornire PHP-FPM să funcționeze, trebuie să specificați un fișier PID în fișierul php-fpm.conf. de ex.

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

Valoarea implicită pentru pid în php-fpm.conf este „nothing”, ceea ce înseamnă că nu se creează un fișier PID, ceea ce înseamnă că scriptul de repornire nu poate ști ce proces să încheie în timpul repornirii.

Fokwa Best

Pe 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

MrPHP

Pe Ubuntu 16 cu php 5.6 fpm.

 /etc/init.d/php5.6-fpm restart

Jeremy Tarpley

Pe RedHat / CentOS 7 folosind PHP 7 de la 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

sau dacă folosiți 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

Saman Mohamadi

Cel mai simplu mod de a găsi numele serviciului php-fpm este să îl căutați:

systemctl -l --type service --all | grep fpm

Comentarii

  • Puteți simplifica acest lucru: systemctl list-units *fpm* –  > Por Michael Hampton.
Gerald Schneider

Pe Windows:

  1. Deschideți Services în Management Console:

    Start -> Run -> "services.msc" -> OK
    
  2. Selectați php-fpm din listă

  3. Faceți clic dreapta și selectați Restart

Nicolas Guérinet

Pentru versiunile vechi debian & ubuntu – php 5.6 va fi

 /etc/init.d/php-fpm56 restart
 service php-fpm56 restart

Junior Mayhé

Pe Alpine cu nginx acest lucru funcționează aici:

Pentru a ucide toate procesele php-fpm7:

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

Pentru a porni php-fpm7:

php-fpm7

Rj_Innocent_Coder

Pentru a lista serviciile systemd pe CentOS/RHEL 7.x+ folosiți

systemctl

Pentru a lista toate serviciile:

systemctl list-unit-files

În cazul în care puteți găsi serviciul numit * php-fpm * copiați numele serviciului și rulați următoarea comandă

systemctl restart ea-php72-php-fpm.service

NOTĂ : ea-php72-php-fpm.service user numele serviciului dvs.

Shark Deng

O altă metodă pentru MaxOS

Deschideți ActivityMonitor, căutați php-fpm, găsiți pid-ul.

Deschideți terminalul, utilizați kill [pid] pentru a opri php-fpm

Apoi php-fpm pe terminal pentru a-l porni.

Dacă apare o informație de eroare conform căreia 127.0.0.1:9000 este deja în uz, ignorați-o.

Actualizați pagina Nginx, ar trebui să vedeți că modificările din php.ini își fac efectul.

Comentarii

  • Ce este MaxOS? Doar rulează php-fpm îl va rula cel mai probabil sub un utilizator greșit; ignorarea mesajelor de eroare nu este niciodată o idee bună. –  > Por Gerald Schneider.