आप php-fpm को कैसे पुनः आरंभ करते हैं?


184

मुझे अपना php.ini पुनः लोड करने की आवश्यकता है और इसे पुनः आरंभ करने के बारे में सहायता संवाद में कुछ भी नहीं है।

जवाबों:


335

नोट : 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
    
  • उपस्टार्ट का उपयोग करना (उदा ubuntu):

    restart php7.0-fpm         # typical (ubuntu is debian-based) PHP 7
    restart php5-fpm           # typical (ubuntu is debian-based)
    restart php-fpm            # uncommon
    
  • सिस्टमड (नए सर्वर) का उपयोग करना:

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

या आपके सिस्टम पर जो भी समकक्ष है।


2
मैक के बारे में क्या? php-fpm होमब्रे का उपयोग करके स्थापित किया गया था। which php-fpmदेता है /usr/local/sbin/php-fpm
hobbes3

6
@ hobbes3 कोशिश करते हैं brew services restart php56(यदि आपको कोई उपलब्ध सूत्र के बारे में कोई त्रुटि मिलती है, तो एक अलग संस्करण आज़माएं जैसे कि php5 या php55)। यदि आपके पास काढ़ा सेवाएँ स्थापित नहीं हैं, तो इसे आपके लिए पहले रन पर स्थापित करना चाहिए।
डॉकटोर जे

: उपरोक्त में से कोई मेरे लिए काम किया, लेकिन ऐसा किया service php-fcgi-mydomain-com restartऔर मैं साइटों सक्षम से हर डोमेन के लिए यह दोहराने के लिए किया था
इलिच

यह मेरे लिए अच्छा था (सेंटो):systemctl reload php70-php-fpm
4wk_

मैं उबंटू 16.04 पर हूँ और यह काम करने के लिए लग रहा था: systemctl restart php5.6-fpm.service
relipse

30

मैक ओएस एक्स के लिए, यह वही है जो मैं करता हूं:

एक स्क्रिप्ट बनाएं /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 / स्थानीय / sbin आपके $ पेट में है

तो बस टर्मिनल fpm-पुनरारंभ और बूम से इसे बुलाओ !!


4
homebrew.mxcl.php*.plistअगर यह काम नहीं करता है तो उपयोग करें
Daniil Ryzhkov

github.com/Homebrew/homebrew-php#installing-multiple-versions मामला है कि आप th .plist फ़ाइल नहीं पा सकते हैं।
फ्रैंक फेंग

काढ़ा सेवा मूल रूप से आपकी स्क्रिप्ट क्या करती है।
किउलंग

22

आमतौर पर, service php5-fpm restartअप-टू-डेट वितरण पर ठीक होगा।

लेकिन सोमटाइम्स, यह आपको restart: Unknown instance:(या ऐसे) बताने में विफल रहता है ।

अब, यदि आप अपने सर्वर को रिबूट करना पसंद नहीं करते हैं, तो बस प्रक्रियाओं को मारें और एक नई शुरुआत करें (जैसा कि यहां बताया गया है):

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

धन्यवाद, यह निश्चित रूप से मेरा मुद्दा है। ( stop: Unknown instance:)
निलोक

13

यह काम करना चाहिए:

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

3
Mac पर homebrew के माध्यम से पीएचपी-एफ पी एम स्थापित किया है, पहले आदेश अनलोड plist load'ing + की तुलना में बहुत बेहतर काम करता है
एलन Ivey

OSX:killall php-fpm
ptim

OSX पर उपरोक्त ने मुझे "अज्ञात उपयोगकर्ता SR2" एक त्रुटि दी। तर्कों को उलटते हुए यह तय किया: "pkill -USR2 -o php-fpm"
कीथ

वास्तव में क्या मुझे एक कंटेनर में FPM को पुनः आरंभ करने की आवश्यकता थी, धन्यवाद!
एड्रियन गुंटर

मैं पूर्व-स्थापित, या किसी कारण से xcode, php के संस्करण और इसके संबद्ध -fpm के साथ बंडल का उपयोग कर रहा हूं, और Homebrew के माध्यम से नहीं। बस मैंने सोचा कि मुझे वहां पहले से ही उपयोग करना चाहिए। मैं एक संयोजन का उपयोग कर रहा हूं php-fpm --prefix /usr/local, इसके तहत कुछ निर्देशिकाएं बना रहा हूं , और जैसा कि @Keeth ने कहा है, के pkill -USR2 -o php-fpmसाथ जाँच pgrep -l fpm, और पीआईडी ​​वास्तव में बदलते हैं! मेरे पास कुछ अन्य जवाबों के द्वारा उल्लेखित लाभ उठाने के लिए कोई फाइल या सेवाएं नहीं थीं।
पिसिस


12

मुझे php7-fpm को पुनः आरंभ करने में समस्या थी, क्योंकि मुझे नहीं पता था कि सेवा का नाम वास्तव में कैसे था। इस समारोह ने मुझे जवाब दिया:

service --status-all

मेरे Ubuntu में php7-fpm सेवा को कॉल किया गया था php7.0-fpm, इसलिए मैंने किया:

service php7.0-fpm restart


5
+1 के लिएservice --status-all
JD

6

यदि आप मुख्य प्रक्रिया में USR2 सिग्नल भेजते हैं, तो php-fpm पुनः आरंभ होगा:

sudo kill -USR2 php-fpm_main_process_id

तो हमें बस इसके pid को कहीं रिकॉर्ड करने के लिए php-fpm को निर्देश देने की आवश्यकता है। इस उदाहरण में, मैं मान लूंगा कि आप इसे सहेजना चाहते हैं /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`

मैं @ dialt0ne का और @ केथ का pkill ...उत्तर और टिप्पणी अधिक पसंद कर रहा हूं ; छोटा और सरल।
पिसिस

यह बेहतर है, और अच्छी व्याख्या है। pkill जोखिम चलाता है, यदि आप प्रक्रियाओं को सही ढंग से मिलान नहीं करते हैं, तो अपने दूसरे PHP क्लस्टर्स को मारने के लिए यदि आप उन्हें उसी बॉक्स पर चल रहे हैं (हाँ यह बुरा अभ्यास है)।
रिच के।

3

मेरे लिए मैं सिर्फ एप्टीट्यूड के माध्यम से अपग्रेड हुआ था और सेवा पुनरारंभ काम नहीं कर रहा था। मैंने मौजूदा प्रक्रियाओं को मारने से पहले ही इसे समाप्त करने की आवश्यकता समाप्त कर ली थी: किलॉल php5-fpm


2

PHP-FPM पुनरारंभ स्क्रिप्ट को काम करने की अनुमति देने के लिए, आपको अपनी php-fpm.conf फ़ाइल में एक PID फ़ाइल निर्दिष्ट करना होगा। अर्थात

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

Php-fpm.conf में pid के लिए डिफ़ॉल्ट मान कुछ भी नहीं है, जिसका अर्थ है कि PID फ़ाइल न बनाएं, जिसका अर्थ है कि पुनरारंभ स्क्रिप्ट पुनः आरंभ के दौरान कौन सी प्रक्रिया को समाप्त नहीं कर सकती।


2

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


1

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


0

विंडोज पर:

  1. प्रबंधन कंसोल में खुली सेवाएं:

    Start -> Run -> "services.msc" -> OK
    
  2. php-fpmसूची से चयन करें

  3. राइट क्लिक करें और पुनः आरंभ करें


0

एल्गिन के साथ अल्पाइन पर यह यहाँ काम कर रहा है:

सभी php-fpm7 प्रक्रियाओं को मारने के लिए:

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

Php-fpm7 शुरू करने के लिए:

php-fpm7


0

CentOS / RHEL 7.x + उपयोग पर सिस्टमड सेवाओं को सूचीबद्ध करने के लिए

systemctl

सभी सेवाओं को सूचीबद्ध करने के लिए:

systemctl सूची-यूनिट-फाइलें

जहाँ आप * php-fpm * सेवा नाम की प्रतिलिपि पा सकते हैं और निम्नलिखित कमांड को चला सकते हैं

systemctl ea-php72-php-fpm.service को पुनः आरंभ करता है

नोट: ea-php72-php-fpm.service उपयोगकर्ता आपकी सेवा का नाम


-2

मैक्सोस के लिए एक और तरीका

ActivMonitor खोलें, php-fpm खोजें, pid ढूंढें।

टर्मिनल खोलें, kill [pid]php-fpm को रोकने के लिए उपयोग करें

फिर php-fpmइसे शुरू करने के लिए टर्मिनल पर।

यदि त्रुटि जानकारी है कि 127.0.0.1:9000 पहले से ही उपयोग में है, तो बस इसे अनदेखा करें।

Nginx पृष्ठ को ताज़ा करें, php.ini परिवर्तनों को प्रभावी होना चाहिए।


मैक्सोस क्या है? बस चलाना php-fpmशायद सबसे गलत उपयोगकर्ता के तहत चलेगा; त्रुटि संदेशों को अनदेखा करना कभी भी अच्छा विचार नहीं है।
गेराल्ड श्नाइडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.