RHEL 7 cung cấp máy chủ Apache HTTP Phiên bản 2.4 và Php phiên bản 5.4. provides the Apache HTTP Server version 2.4 and PHP version 5.4.
Cấu hình phổ biến nhất cho Apache HTTPD và PHP sử dụng, nhưng điều này có một số hạn chế và nhược điểm:
- Một phiên bản PHP duy nhất của mod_php có thể được sử dụng
- mod_php chạy trong quy trình httpd, không có bất kỳ sự cô lập nào
- mod_phpis chỉ được hỗ trợ cho mpm prefork
Bài viết này sẽ giải thích cách định cấu hình Apache HTTPD để ủy thác thực thi tập lệnh PHP cho một phụ trợ bằng giao thức FastCGI, cách sử dụng phiên bản PHP gần đây hơn, cách chạy nhiều phiên bản PHP và cách cải thiện hiệu suất APACHE HTTPD.FastCGI protocol, how to use a more recent PHP version, how to run multiple PHP versions, and how to improve Apache httpd performance.
Gói Apache HTTPD có sẵn trong RHEL cung cấp tất cả các tính năng cần thiết để sử dụng cấu hình đó.
1. Chuyển sang PHP-FPM
1.1. Xóa mod_php
Nên loại bỏ hoặc vô hiệu hóa MOD_PHP để giảm dấu chân bộ nhớ của từng quy trình HTTPD.
Bạn có thể xóa gói PHP, chỉ cung cấp mô -đun này:php package, which only provides this module:
yum remove php
hoặc đơn giản là vô hiệu hóa nó bằng cách nhận xét Chỉ thị LoadModule trong /etc/httpd/conf.modules.d/10-php.conf.
# disabled # LoadModule php5_module modules/libphp5.so
1.2. Cài đặt PHP-FPM
Bây giờ bạn có thể cài đặt PHP-FPM và bật dịch vụ của nó.
yum install php-fpm systemctl start php-fpm systemctl enable php-fpm
Thông báo: Gói PHP-FPM có sẵn trong kênh tùy chọn, phải được bật.php-fpm package is available in the optional channel, which has to be enabled.
Để định cấu hình thực thi tập lệnh PHP, chỉnh sửa hoặc tạo tệp /etc/httpd/conf.d/php.conf:
Các dòng sau ngăn các tệp .user.ini không được xem bởi các máy khách web.
Require all denied
Cho phép PHP xử lý nhiều lượt xem:
AddType text/html .php
Thêm index.php vào danh sách các tệp sẽ được phục vụ làm chỉ mục thư mục:
DirectoryIndex index.php
Dòng sau, bật các tiêu đề ủy quyền
SetEnvIfNoCase ^Authorization$ "[.+]" HTTP_AUTHORIZATION=$1
Chuyển hướng thực thi tập lệnh PHP sang phụ trợ FPM.
SetHandler "proxy:fcgi://127.0.0.1:9000"
Nếu bạn có một số chỉ thị PHP_VALUE trong tệp này, bạn cần xóa chúng, chúng chỉ dành cho mod_php.php_value directive in this file, you need to remove them, they are only for mod_php.
Bây giờ bạn có thể [Re] khởi động máy chủ web và trang thử nghiệm PHP đơn giản với;