ฉันต้องโหลด php.ini ใหม่และไม่มีอะไรในกล่องโต้ตอบความช่วยเหลือเกี่ยวกับการเริ่มต้นใหม่
ฉันต้องโหลด 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
ใช้พุ่งพรวด (เช่น 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 ของคุณ
จากนั้นเพียงแค่เรียกมันจาก terminal 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
การทำให้ไดเรกทอรีบางอย่างภายใต้ที่มันต้องการและตามที่ @Kyo ได้ระบุไว้pkill -USR2 -o php-fpm
ตรวจสอบกับpgrep -l fpm
และ PIDs จะเปลี่ยนแน่นอน! ฉันไม่มีไฟล์ plist หรือบริการใด ๆ เพื่อใช้ประโยชน์จากคำตอบอื่น ๆ
ฉันมีปัญหาในการรีสตาร์ท php7-fpm เพราะฉันไม่รู้ว่าบริการชื่อนั้นเป็นอย่างไร ฟังก์ชั่นนี้ให้คำตอบกับฉัน:
service --status-all
บริการ php7-fpm ใน Ubuntu ของฉันถูกเรียกใช้php7.0-fpm
ดังนั้นฉันจึง:
service php7.0-fpm restart
service --status-all
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 ...
คำตอบและความคิดเห็นของ @ Keeth ด้านบนมากกว่านี้; สั้นและเรียบง่าย
สำหรับฉันฉันเพิ่งอัพเกรดผ่าน apt และการรีสตาร์ทเซอร์วิสไม่ทำงาน ฉันต้องการฆ่ากระบวนการที่มีอยู่ก่อนที่จะทำงานโดยใช้: killall php5-fpm
เพื่อให้สคริปต์รีสตาร์ท PHP-FPM ทำงานคุณต้องใช้ระบุไฟล์ PID ในไฟล์ php-fpm.conf ของคุณ กล่าวคือ
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
บน Ubuntu 16 ด้วย php 5.6 fpm
/etc/init.d/php5.6-fpm restart
ใน 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:
เปิดบริการใน Management Console:
Start -> Run -> "services.msc" -> OK
เลือกphp-fpm
จากรายการ
สำหรับเดเบียนเวอร์ชั่นเก่า & ubuntu - php 5.6 จะเป็นเช่นนั้น
/etc/init.d/php-fpm56 restart
service php-fpm56 restart
บนอัลไพน์ด้วย nginx นี่ทำงานได้ที่นี่
หากต้องการฆ่ากระบวนการ php-fpm7 ทั้งหมด:
kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')
ในการเริ่ม php-fpm7:
php-fpm7
ในการแสดงรายการ systemd services บน CentOS / RHEL 7.x + ให้ใช้
systemctl
ในการแสดงรายการบริการทั้งหมด:
systemctl list-unit-files
ที่ซึ่งคุณสามารถค้นหาบริการชื่อ * php-fpm * คัดลอกชื่อบริการแล้วเรียกใช้คำสั่งต่อไปนี้
systemctl รีสตาร์ท ea-php72-php-fpm.service
หมายเหตุ: ea-php72-php-fpm.serviceใช้ชื่อบริการของคุณ
วิธีอื่นสำหรับ MaxOS
เปิด ActivityMonitor ค้นหา php-fpm ค้นหา pid
เปิดเทอร์มินัลใช้kill [pid]
เพื่อหยุด php-fpm
จากนั้นphp-fpm
ใน terminal เพื่อเริ่มต้นมัน
หากมีข้อมูลข้อผิดพลาดที่ 127.0.0.1:9000 มีการใช้งานอยู่แล้วให้เพิกเฉย
รีเฟรชหน้า Nginx ควรเห็นการเปลี่ยนแปลง php.ini มีผล
php-fpm
อาจเป็นการรันภายใต้ผู้ใช้ที่ไม่ถูกต้อง การเพิกเฉยต่อข้อความผิดพลาดไม่ใช่ความคิดที่ดี
which php-fpm
/usr/local/sbin/php-fpm