Trình xử lý Apache 2 SAPI trong PHP 8. 0 được đổi tên và có thể ảnh hưởng khi PHP được sử dụng làm mô-đun Apache
Nên sử dụng PHP-FPM với Apache mod_event
MPM. Tuy nhiên, PHP8. 0 vẫn hỗ trợ SAPI Trình xử lý Apache 2, được tích hợp với máy chủ web Apache 2 dưới dạng mô-đun Apache
Mã định danh mô-đun được đổi tên thành php_module
Trong PHP8. 0, mã định danh mô-đun Apache được đổi tên thành php_module
Trong PHP7. x, nó được đặt tên là
Can't locate API module structure `php8_module` in file ...
1, và trong PHP 5. x, nó được đặt tên là Can't locate API module structure `php8_module` in file ...
2Điều này có nghĩa là tất cả các tham chiếu đến cấu hình tải mô-đun Apache cần được cập nhật
- LoadModule php7_module "/usr/lib/apache2/modules/libphp7.4.so"
+ LoadModule php_module "/usr/lib/apache2/modules/libphp8.0.so"
Apache sẽ đưa ra một lỗi tương tự như lỗi bên dưới nếu tên mô-đun
Can't locate API module structure `php8_module` in file ...
3 được sử dụngCan't locate API module structure `php8_module` in file ...
Hướng dẫn đầy đủ về cài đặt và nâng cấp PHP 8. 0 trên Ubuntu
Chỉ thị Apache
Can't locate API module structure `php8_module` in file ...
0 và bất kỳ nơi nào khác mà tên mô-đun được sử dụng cũng phải được cập nhật thành tên mới của chúng-
+
DirectoryIndex index.html default.php index.php
AddHandler application/x-httpd-php .php
Thay đổi tên tệp Windows DLL
Trên Windows, tên tệp DLL được cập nhật cho PHP 8. Mã định danh mô-đun là php_module
- LoadModule php7_module "W:/php/php-8.0.0-Win32-vc15-x64/php7apache2_4.dll"
+ LoadModule php_module "W:/php/php-8.0.0-Win32-vc15-x64/php8apache2_4.dll"
Có thể cần phải cập nhật thủ công các gói môi trường phát triển như XAMPP, Wamp hoặc Laragon để phản ánh điều này
Tác động tương thích ngược
Do đổi tên mã định danh mô-đun, các lỗi tương tự như
Can't locate API module structure `php8_module` in file ...
2 có thể xảy ra, nhưng hầu hết các bản phân phối, bộ sưu tập phần mềm và PPA đều tự động định cấu hình Apache2Handler thay mặt người dùng, vì vậy khả năng người dùng cuối gặp phải sự cố này là không phổ biến Apache sử dụng httpd. conf cho cài đặt chung và. htaccess cho cài đặt truy cập theo từng thư mục. Các phiên bản cũ hơn của Apache tách httpd. conf thành ba tệp [truy cập. conf, httpd. conf và srm. conf] và một số người dùng vẫn thích cách sắp xếp này hơn
Máy chủ Apache có một hệ thống cấu hình rất mạnh nhưng hơi phức tạp của riêng nó. Tìm hiểu thêm về nó tại trang web Apache - www. apache. tổ chức
Phần sau đây mô tả cài đặt trong httpd. conf ảnh hưởng trực tiếp đến PHP và không thể đặt ở nơi khác. Nếu bạn cài đặt chuẩn thì httpd. conf sẽ được tìm thấy tại /etc/httpd/conf
Hết giờ
Giá trị này đặt số giây mặc định trước khi bất kỳ yêu cầu HTTP nào hết thời gian. Nếu bạn đặt thời gian max_execution_time của PHP dài hơn giá trị này, PHP sẽ tiếp tục hoạt động nhưng người dùng có thể thấy lỗi 404. Ở chế độ an toàn, giá trị này sẽ bị bỏ qua; . thay vào đó
Tài liệuRoot
DocumentRoot chỉ định thư mục gốc cho tất cả các quy trình HTTP trên máy chủ đó. Nó trông giống như thế này trên Unix -
DocumentRoot ./usr/local/apache_1.3.6/htdocs.
Bạn có thể chọn bất kỳ thư mục nào làm tài liệu gốc
ThêmType
Loại MIME PHP cần được đặt ở đây để các tệp PHP được phân tích cú pháp. Hãy nhớ rằng bạn có thể liên kết bất kỳ phần mở rộng tệp nào với PHP như. php3,. php5 hoặc. htm
AddType application/x-httpd-php .php AddType application/x-httpd-phps .phps AddType application/x-httpd-php3 .php3 .phtml AddType application/x-httpd-php .html
Hoạt động
Bạn phải bỏ ghi chú dòng này đối với phiên bản mô-đun Windows apxs của Apache với hỗ trợ đối tượng dùng chung -
Phạm vi của tài liệu này là liệt kê tất cả các kịch bản cấu hình có thể có để cho phép httpd phục vụ nội dung php
Sử dụng proxy_fcgi và php-fpm [cho 2. 4]
Phương pháp này được ưu tiên hơn tất cả các công thức nấu ăn khác và phù hợp với phiên bản 2. 4 và mới hơn. Nó không chỉ cho phép bạn phân biệt và chẩn đoán các vấn đề liên quan đến PHP nhanh hơn mà còn có thể sử dụng mpm luồng nhanh hơn và có khả năng mở rộng hơn chẳng hạn như sự kiện hoặc worker, điều này sẽ làm giảm đáng kể dung lượng bộ nhớ của máy chủ httpd của bạn
Mời bạn xem bài viết sau
Sử dụng php với fastcgi [cho 2. 2 tuổi trở lên]
Phương pháp này phù hợp với phiên bản 2. 2 tuổi trở lên. Nó cho phép một mpm theo luồng chẳng hạn như worker, điều này sẽ làm giảm đáng kể yêu cầu RAM trên máy chủ của bạn
Mời bạn xem bài viết sau
Sử dụng php với fcgid [cho 2. 2 tuổi trở lên]
Phương pháp này phù hợp với phiên bản 2. 0 hoặc 2. 2. Nó cho phép một mpm theo luồng chẳng hạn như worker, điều này sẽ làm giảm đáng kể yêu cầu RAM trên máy chủ của bạn. Và mod_fcgid là một mô-đun chính thức của Apache
Mời bạn xem bài viết sau
Thiết lập wordpress với php-fpm
Mời bạn xem bài viết sau
Sử dụng mod_php làm DSO với mpm theo luồng [2. 0 và mới hơn]
Cách tiếp cận này giống hệt với công thức tiếp theo, ngoại trừ một mpm theo luồng như sự kiện hoặc công nhân có thể được sử dụng. Yêu cầu chính là các thư viện hệ thống php và DSO phải được [tái] biên dịch với các cờ an toàn cho luồng
Nếu apache httpd 2. 0 hoặc cũ hơn được sử dụng, nó phải được biên dịch lại để thay đổi mpm. Dành cho 2. 4, tải mô-đun mpm thích hợp là đủ
Phải đặc biệt cẩn thận để đảm bảo rằng worker được khởi động lại đủ thường xuyên [MaxConnectionsPerChild > 0] vì các tiến trình con vẫn dễ bị rò rỉ bộ nhớ php và các tiến trình có khả năng tiêu thụ một lượng lớn RAM và làm cạn kiệt tài nguyên hệ thống có sẵn
Đây có lẽ là cách tiếp cận ít được sử dụng nhất, do vấn đề đau đầu trong việc duy trì thư viện php an toàn cho luồng và vì hầu hết các bản phân phối linux không gửi các gói đó
Sử dụng mod_php làm DSO [cũ]
Phương pháp này là cấu hình cũ nhất và chậm nhất có thể. Nó phù hợp với phiên bản 2. 2 trở lên và yêu cầu sử dụng prefork mpm