Câu trả lời:
Lưu ý : trả trước sudo
nếu không root
Sử dụng tập lệnh SysV init trực tiếp:
/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
Sử dụng tập lệnh bao bọc dịch vụ
service php-fpm restart # typical
service php5-fpm restart # debian-style
service php7.0-fpm restart # debian-style PHP 7
Sử dụng Upstart (ví dụ: Ubuntu):
restart php7.0-fpm # typical (ubuntu is debian-based) PHP 7
restart php5-fpm # typical (ubuntu is debian-based)
restart php-fpm # uncommon
Sử dụng systemd (máy chủ mới hơn):
systemctl restart php-fpm.service # typical
systemctl restart php5-fpm.service # uncommon
systemctl restart php7.0-fpm.service # uncommon PHP 7
Hoặc bất cứ điều gì tương đương là trên hệ thống của bạn.
brew services restart php56
(nếu bạn gặp lỗi về việc không có công thức có sẵn, hãy thử một phiên bản khác, ví dụ: php5 hoặc php55). Nếu bạn chưa cài đặt dịch vụ pha chế, bạn nên cài đặt nó cho bạn ngay lần chạy đầu tiên.
service php-fcgi-mydomain-com restart
Và tôi đã phải lặp lại nó cho mọi tên miền từ các trang web được kích hoạt
systemctl reload php70-php-fpm
systemctl restart php5.6-fpm.service
Đối với Mac OS X, đây là những gì tôi làm:
Tạo một kịch bản /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
Sau đó:
chmod ug+x /usr/local/etc/php/fpm-restart
cd /usr/local/sbin
ln -s /usr/local/etc/php/fpm-restart
đảm bảo / usr / local / sbin nằm trong $ PATH của bạn
sau đó chỉ cần gọi nó từ thiết bị đầu cuối fpm-restart và BOOM !!
homebrew.mxcl.php*.plist
nếu nó không hoạt động
Thông thường, service php5-fpm restart
sẽ làm tốt, trên một phân phối cập nhật.
Nhưng đôi khi, nó thất bại, nói với bạn restart: Unknown instance:
(hoặc như vậy).
Bây giờ, nếu bạn không muốn khởi động lại máy chủ của mình, chỉ cần hủy các tiến trình và có một khởi đầu mới (được chỉnh sửa tại đây):
$ sudo pkill php5-fpm; sudo service php5-fpm start
stop: Unknown instance:
)
Điều này sẽ làm việc:
pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm
killall php-fpm
php-fpm --prefix /usr/local
, tạo một số thư mục theo thư mục mà nó cần, và như @Keeth đã tuyên bố pkill -USR2 -o php-fpm
, kiểm tra pgrep -l fpm
và các PID thực sự thay đổi! Tôi không có tập tin hay dịch vụ nào để tận dụng được đề cập bởi một số câu trả lời khác.
Đối với Mac OSX brew services restart php56
làm việc cho tôi.
Tôi gặp sự cố khi khởi động lại php7-fpm, vì tôi không biết chính xác dịch vụ được đặt tên như thế nào. Hàm này đã cho tôi câu trả lời:
service --status-all
Dịch vụ php7-fpm trong Ubuntu của tôi đã được gọi php7.0-fpm
, vì vậy tôi đã làm:
service php7.0-fpm restart
service --status-all
php-fpm sẽ khởi động lại nếu bạn gửi tín hiệu USR2 đến quy trình chính:
sudo kill -USR2 php-fpm_main_process_id
Vì vậy, chúng ta chỉ cần hướng dẫn php-fpm để ghi lại pid của nó ở đâu đó. Trong ví dụ này, tôi sẽ giả sử bạn muốn lưu nó tại /etc/private/php-fpm.pid
và php-fpm chạy dưới dạng người dùng _php. Đầu tiên, thêm dòng này vào tệp cấu hình:
pid = /etc/php-fpm.pid
Sau đó tạo tệp /etc/php-fpm.pid
và đảm bảo php-fpm có quyền sửa đổi nó:
$ cd /etc
$ sudo touch php-fpm.pid
$ sudo chown _php php-fpm.pid
$ sudo chmod 644 php-fpm.pid
Bây giờ, khi php-fpm tiếp theo bắt đầu, bạn sẽ có thể lấy pid và khởi động lại như thế này:
$ cat /etc/php-fpm.pid
815
$ sudo kill -USR2 815
Hoặc bạn có thể kết hợp chúng thành một lệnh duy nhất:
$ sudo kill -USR2 `cat /etc/private/php-fpm.pid`
pkill ...
câu trả lời và nhận xét của @ dialt0ne và @ Keeth hơn ở trên; ngắn hơn và đơn giản hơn
Để cho phép tập lệnh khởi động lại PHP-FPM hoạt động, bạn phải sử dụng chỉ định tệp PID trong tệp php-fpm.conf của mình. I E
pid = /var/run/php-fpm/php-fpm.pid
Giá trị mặc định cho pid trong php-fpm.conf là không có nghĩa là không tạo tệp PID, điều đó có nghĩa là tập lệnh khởi động lại không thể cho biết quá trình nào sẽ kết thúc trong quá trình khởi động lại.
Trên 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
Trên RedHat / CentOS 7 bằng PHP 7 từ 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
hoặc nếu bạn đang sử dụng 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
Cách đơn giản nhất để tìm tên của dịch vụ php-fpm là tìm kiếm nó:
systemctl -l --type service --all | grep fpm
systemctl list-units *fpm*
Trên Windows:
Dịch vụ mở trong Bảng điều khiển quản lý:
Start -> Run -> "services.msc" -> OK
Chọn php-fpm
từ danh sách
Đối với các phiên bản cũ của debian & ubfox - php 5.6, nó sẽ là
/etc/init.d/php-fpm56 restart
service php-fpm56 restart
Trên núi Alps với nginx điều này đang hoạt động ở đây:
Để tiêu diệt tất cả các quy trình php-fpm7:
kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')
Để bắt đầu php-fpm7:
php-fpm7
Để liệt kê các dịch vụ systemd trên CentOS / RHEL 7.x + sử dụng
hệ thống
Để liệt kê tất cả các dịch vụ:
danh sách đơn vị systemctl
Nơi bạn có thể tìm thấy dịch vụ có tên * php-fpm * sao chép tên dịch vụ và chạy lệnh sau
systemctl khởi động lại ea-php72-php-fpm.service
LƯU Ý: ea-php72-php-fpm.service người dùng tên dịch vụ của bạn
Một phương pháp khác cho MaxOS
Mở ActivityMonitor, tìm kiếm php-fpm, tìm pid.
Mở terminal, sử dụng kill [pid]
để dừng php-fpm
Sau đó php-fpm
trên thiết bị đầu cuối để bắt đầu nó.
Nếu có thông tin lỗi 127.0.0.1:9000 Đã sử dụng, chỉ cần bỏ qua.
Làm mới trang Nginx, sẽ thấy các thay đổi php.ini có hiệu lực.
php-fpm
có thể sẽ chạy nó theo người dùng sai; bỏ qua các thông báo lỗi không bao giờ là một ý tưởng tốt.
which php-fpm
cho/usr/local/sbin/php-fpm
.