Tôi muốn hỏi bạn về các phương thức cấu hình PHP / Apache mà bạn biết, ưu và nhược điểm của chúng. Tôi sẽ tự bắt đầu:
---------------- PHP là mô-đun Apache ----------------
Ưu điểm : tốc độ tốt vì bạn không cần phải khởi động exe mỗi lần, đặc biệt là ở chế độ mpm-worker . Bạn cũng có thể sử dụng các trình tăng tốc PHP khác nhau trong chế độ này như APC hoặc eAccelerator.
Nhược điểm : nếu bạn đang chạy apache trong chế độ MPM nghiệp, bạn có thể phải đối mặt với các vấn đề ổn định vì mỗi trục trặc trong bất kỳ kịch bản php sẽ dẫn đến bất ổn cho toàn hồ bơi thread về điều đó quá trình apache. Cũng trong chế độ này, tất cả các tập lệnh được thực hiện thay mặt cho người dùng apache. Điều này là xấu cho an ninh. Cấu hình mpm-worker yêu cầu PHP được biên dịch trong chế độ an toàn luồng. Ít nhất các kho lưu trữ mặc định của CentOS và RedHat không có phiên bản PHP an toàn luồng, vì vậy trên các HĐH này, bạn cần phải tự biên dịch ít nhất PHP (có một cách để kích hoạt worker mpm trên Apache). Việc sử dụng các nhị phân PHP an toàn luồng được coi là thử nghiệm và không ổn định. Thêm vào đó, nhiều phần mở rộng PHP không hỗ trợ chế độ an toàn luồng hoặc không được kiểm tra tốt ở chế độ an toàn luồng.
---------------- PHP là CGI ----------------
Đây có vẻ là cấu hình mặc định chậm nhất dường như là chính "con";)
---------------- PHP là CGI thông qua mod_suphp ----------------
Ưu điểm : suphp cho phép bạn thực hiện các scip php thay mặt cho chủ sở hữu tệp tập lệnh. Bằng cách này, bạn có thể tách các trang web khác nhau một cách an toàn trên cùng một máy. Ngoài ra, suphp cho phép sử dụng các tệp php.ini khác nhau trên mỗi máy chủ ảo.
Nhược điểm : PHP trong chế độ CGI có nghĩa là hiệu suất thấp hơn. Trong chế độ này, bạn không thể sử dụng các trình tăng tốc php như APC vì mỗi lần tiến trình mới được sinh ra để xử lý tập lệnh khiến bộ đệm của quá trình trước đó trở nên vô dụng. BTW, bạn có biết cách áp dụng một số máy gia tốc trong cấu hình này không? Tôi đã nghe một cái gì đó về việc sử dụng shm cho bộ đệm cache bytecode php. Ngoài ra, bạn không thể định cấu hình PHP thông qua các tệp .htaccess trong chế độ này. Bạn sẽ cần cài đặt htscanner P ECL cho việc này nếu bạn cần đặt nhiều tùy chọn cho mỗi tập lệnh thông qua .htaccess (chỉ thị php_value / php_flag)
---------------- PHP là CGI qua suexec ----------------
Cấu hình này trông giống như với suphp, nhưng tôi nghe nói, nó chậm hơn và kém an toàn hơn. Hầu như cùng một ưu và nhược điểm áp dụng.
---------------- PHP là FastCGI ----------------
Ưu điểm : Tiêu chuẩn FastCGI cho phép quy trình php đơn xử lý một số tập lệnh trước khi quy trình php bị hủy. Bằng cách này bạn có được hiệu suất do không cần phải quay quá trình php mới cho mỗi tập lệnh. Bạn cũng có thể sử dụng các trình tăng tốc PHP trong cấu hình này (xem phần khuyết điểm để bình luận). Ngoài ra, FCGI gần giống như suphp cũng cho phép các quy trình php được thực hiện thay mặt cho một số người dùng. mod_fcgid dường như có sự hỗ trợ và linh hoạt fcgi đầy đủ nhất cho apache.
Nhược điểm : Việc sử dụng trình tăng tốc php trong chế độ fastcgi sẽ dẫn đến mức tiêu thụ bộ nhớ cao bởi vì mỗi quy trình PHP sẽ có bộ đệm mã byte riêng (trừ khi có một trình tăng tốc nào đó có thể sử dụng bộ nhớ dùng chung cho bộ đệm của mã byte. Có như vậy không?). FastCGI cũng hơi phức tạp để cấu hình. Bạn cần tạo các tệp cấu hình khác nhau và thực hiện một số sửa đổi cấu hình.
Dường như, fastcgi là cấu hình PHP ổn định, an toàn, nhanh chóng và linh hoạt nhất, tuy nhiên, hơi khó để được cấu hình. Nhưng, có thể, tôi đã bỏ lỡ một cái gì đó?
Bình luận được chào đón!