Apache đã chạy chậm trong sản xuất. Sau khi tìm kiếm câu trả lời một thời gian, cuối cùng tôi đã đến kênh #apache IRC và các chuyên gia đã cho tôi kiểm tra chế độ apache bằng lệnh này:
sudo apachectl -V
và đã được báo động để thấy rằng Máy chủ MPM là prefork . Họ dứt khoát nói KHÔNG SỬ DỤNG TRƯỚC KHI TRÊN MÁY CHỦ SẢN XUẤT. Hóa ra, các gói Ubuntu (có lẽ được kế thừa từ Debian?) Khăng khăng chạy apache ở chế độ prefork mặc dù thực tế là phương pháp được đề xuất để chạy PHP với Apache đề xuất rõ ràng proxy_fcgi và php-fpm, sau đó fcgid và cuối cùng nói rằng bạn không nên sử dụng prefork:
Tại sao bạn không nên sử dụng mod_php với mpm prefork nữa
- mod_php được tải vào mọi tiến trình httpd mọi lúc. Ngay cả khi httpd đang phục vụ nội dung tĩnh / không php, bộ nhớ đó vẫn được sử dụng.
- mod_php không phải là luồng an toàn và buộc bạn phải gắn bó với mpm prefork (đa tiến trình, không có luồng), đây là cấu hình chậm nhất có thể
Trang đó cũng chứa một số chi tiết về PHP-FPM nhưng điều này có vẻ hơi phức tạp và không rõ ràng và dường như liên quan đến rất nhiều cấu hình thủ công. Tôi thất vọng và ngạc nhiên khi Ubuntu 16 không có tùy chọn gói cho chế độ fastCGI hoặc thứ gì đó.
Tôi đã thử chuyển apache sang chế độ sự kiện bằng cách sử dụng a2enmod và khi tôi cố gắng kích hoạt apache sao lưu, tôi đã gặp một lỗi:
Apache đang chạy MPM theo luồng, nhưng Mô-đun PHP của bạn không được biên dịch thành luồng an toàn. Bạn cần biên dịch lại PHP
Ở mức độ nào, tôi đã tự hỏi liệu có ai có một số hướng dẫn từng bước tối thiểu để có được chế độ fastCGI chạy trên Ubuntu 16 với PHP 7.0 hay không bằng cách dựa vào các trình cài đặt gói càng nhiều càng tốt. Tôi hiện đang xem xét rất nhiều hướng dẫn kém, mơ hồ và tôi lo ngại về việc làm hỏng môi trường sản xuất của mình với những quyết định tồi.
Ngoài ra, ai đó nên thêm sự kiện mpm dưới dạng tùy chọn thẻ. Đó là những gì các chàng trai #apache IRC khuyên dùng.