PHP-FPM không tự động khởi động sau khi khởi động lại


15

Tôi đang chạy PHP-FPM và Nginx, đôi khi, vì bất kỳ lý do gì, tôi phải khởi động lại máy chủ. Khi máy chủ đang chạy lại, dịch vụ nginx sẽ tự động khởi động, tuy nhiên, PHP-FPM thì không. Điều này có thể được nhìn thấy khi tôi chạy lệnh sudo /etc/init.d/php-fpm restartngay sau khi khởi động lại và nhận được kết quả:

$ sudo /etc/init.d/php-fpm restart
Stopping php-fpm:                                          [FAILED]
Starting php-fpm:                                          [  OK  ]

Đây có phải là hành vi dự kiến? Cách tốt nhất để làm cho PHP-FPM tự động bắt đầu là gì? Có một tùy chọn cấu hình ở bất cứ đâu, hoặc tôi phải thêm lệnh vào một trong các tập lệnh khởi động Linux?

Cảm ơn.


Bạn đang sử dụng bản phân phối linux nào? Bạn đã cài đặt php-fpm như thế nào? Từ một gói hoặc từ các nguồn?
Tonin

Nó đang chạy trên một phiên bản Amazon EC2 Linux, PHP-FPM đã được cài đặt bằng cách sử dụngyum install -y php-fpm
SteveEdson

Câu trả lời:


27

Vì vậy, thiết lập nó để bắt đầu lúc khởi động:

chkconfig php-fpm on

1
Đơn giản như thế, rực rỡ! Chúc mừng
SteveEdson

4

Tôi vừa gặp vấn đề này trên Ubuntu 16.04 và tôi để lại câu trả lời của mình cho những người dùng tương lai từ Google, người vấp phải vấn đề này. Vì chkconfighầu hết là dành riêng cho CentOS, rõ ràng nó không tồn tại trên Ubuntu. Rõ ràng, để có được một PHP ( php-fpmSAPI) được xây dựng tùy chỉnh để bắt đầu khởi động systemd, vốn mới đối với Ubuntu 16.04 (trước đây, Upstart), nó cần phải được đăng ký với hệ thống ngoài việc bỏ init.dtập lệnh vào /etc/init.d/. Để đăng ký kịch bản, tôi chạy:

update-rc.d php-fpm defaults

A rebootvà sau đó ps auxxác nhận rằng php-fpmthực sự bắt đầu lúc khởi động. Nó cũng đã được thêm vào /etc/init.d/.depend.start.

Những suy nghĩ khác: Ubuntu Upstart đủ tốt để tôi không bao giờ phải chạy update-rc.dsau khi đặt tập lệnh init.d - nó chỉ hoạt động. Hoàn toàn quên mất lệnh đó.


2
Câu hỏi ban đầu là về Amazon Linux, tôi không thể nói có bao nhiêu người dùng Ubuntu sẽ thấy nó. Đối với 16.04 và systemd, điều cần làm là sử dụng một đơn vị systemd thích hợp thay vì tập lệnh khởi động kiểu cũ hoặc tập lệnh init cổ. Bạn nên có thể tìm thấy một đơn vị systemd có thể sử dụng với gói distro hoặc ở nơi khác.
Michael Hampton

Tôi là người dùng Ubuntu 14.04 và điều này đã giúp tôi, cảm ơn bạn! PS: sudocó thể cần thiết cho lệnh đó.
Edson Horacio Junior
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.