Hướng dẫn dùng apache av trong PHP

Hầu hết mọi hướng dẫn về cách cài đặt ngăn xếp LAMP [Linux, Apache, MySQL, PHP] sẽ khuyến nghị bạn sử dụng mô-đun Apache tích hợp để xử lý các tập lệnh PHP. Ví dụ: trong Ubuntu, bạn sẽ kích hoạt tính năng này khi bạn sử dụng một lệnh chẳng hạn như sudo apt install libapache2-mod-phpđể cài đặt một gói. Điều này sẽ buộc Apache sử dụng mpm_prefork. Mỗi khi khách truy cập vào trang web của bạn, một quy trình mới sẽ được khởi chạy để xử lý kết nối đó. Điều này hoạt động tốt khi lưu lượng truy cập thấp.

Tuy nhiên, nó sẽ trở thành một vấn đề lớn nếu bạn nhận được một lượng truy cập đột ngột. Ví dụ: một bài đăng trên Reddit có thể bao gồm trang web của bạn và nếu bài đăng đó trở nên phổ biến, bạn có thể nhận được hàng nghìn khách truy cập chỉ trong vài phút.

Trong trường hợp tốt nhất, nếu Apache có thể xử lý sự cố bùng nổ lưu lượng truy cập, một số khách truy cập không may mắn có thể phải đợi có lẽ từ 30 đến 60 giây cho đến khi trang được tải, điều này thật vô lý trong thế giới ngày thường. Trong trường hợp xấu nhất, máy chủ sẽ bắt đầu bị lag nặng và một số kết nối sẽ bị ngắt đơn giản vì thiếu tài nguyên. Trong trường hợp này, khách truy cập sẽ thấy lỗi trong trình duyệt của họ.

Đó cũng không phải là một kịch bản tốt, vì bạn có khả năng mất đi sự chú ý của hàng trăm hoặc hàng nghìn độc giả, khách hàng hoặc người hâm mộ quan tâm.

Thật không may, PHP là một nguồn tài nguyên khá lớn. Nhưng vơi mpm_event, Apache có thể xử lý lượng truy cập đột ngột theo cách hiệu quả hơn nhiều. Tuy nhiên, nó được khuyến nghị rằng máy chủ của bạn có ít nhất 2GB RAM và 2 lõi CPU, thực hoặc ảo, và thậm chí nhiều hơn nữa nếu bạn mong đợi có lưu lượng truy cập tăng đột biến, chẳng hạn như hơn mười người truy cập mỗi giây. Nếu bạn đang sử dụng máy chủ riêng ảo, hãy thêm nhiều lõi CPU ảo hơn vào tình huống của bạn và bộ nhớ SSD. RAM là thứ yếu.

Cách sử dụng sự kiện Apache MPM và PHP-FPM trên các bản phân phối dựa trên Debian

Trên Debian, Ubuntu hoặc các bản phân phối khác từ họ này, chỉ cần tránh cài đặt libapache2-mod-php Bưu kiện. Khi bạn cài đặt Apache, nó sử dụng sự kiện MPM theo mặc định. Nhưng khi cài đặt gói được đề cập, một tập lệnh sẽ vô hiệu hóa sự kiện MPM và bật chế độ làm việc trước MPM. Mô-đun Apache PHP chỉ có thể hoạt động [an toàn] với mpm_prefork. Tất nhiên, không có libapache2-mod-php, bạn không có bộ xử lý cho các tệp PHP. Vì vậy, bạn sẽ sử dụng PHP-FPM thay vì mô-đun PHP có trong Apache. Đây là cách bạn cài đặt một LAMP stack trên một máy chủ mới. Bạn có thể điều chỉnh các bước theo yêu cầu ứng dụng web của mình.

Đầu tiên, đăng nhập với quyền root. Sau đó, cài đặt Apache.

apt update && apt install apache2

Tại thời điểm này, bạn có thể thấy rằng Apache thực sự xuất xưởng với sự kiện MPM được bật theo mặc định.

Cài đặt PHP-FPM.

Bạn sẽ thấy hướng dẫn về cách bật bộ xử lý PHP trong Apache.

Bật giao thức FastCGI.

Bật cấu hình mặc định PHP-FPM cho Apache.

Ghi chú: trong các phiên bản tương lai của Debian / Ubuntu, lệnh này có thể thay đổi thành lệnh khác, ví dụ: a2enconf php7.6-fpm, bởi vì PHP-FPM sẽ là một phiên bản khác.

Khởi động lại Apache.

systemctl restart apache2

Cài đặt phần còn lại của các yêu cầu cho ứng dụng PHP của bạn. Đây là một ví dụ:

apt install mariadb-server php-mysql

Điều này sẽ cài đặt một máy chủ cơ sở dữ liệu và mô-đun PHP MySQL để ứng dụng PHP của bạn có thể kết nối với cơ sở dữ liệu.

Cách sử dụng sự kiện Apache MPM và PHP-FPM trên các bản phân phối dựa trên RedHat

Sự lựa chọn phân phối máy chủ phổ biến khác là RedHat hoặc CentOS. Theo cách tương tự như trên, một ví dụ về cài đặt Apache sạch với sự kiện MPM được kích hoạt và PHP-FPM sẽ được cung cấp.

Đăng nhập với quyền root và cài đặt Apache.

Không giống như các bản phân phối dựa trên Debian, ở đây bạn sẽ thấy rằng Apache sử dụng MPM prefork theo mặc định, ít nhất là trên CentOS 7 mới nhất có sẵn tại thời điểm viết bài.

Để kích hoạt sự kiện MPM, bạn phải chỉnh sửa tệp cấu hình.

sed -i '/mpm_prefork.so$/s/^/#/' /etc/httpd/conf.modules.d/00-mpm.conf

Điều này sẽ thêm một # ký để nhận xét [hủy kích hoạt] dòng LoadModule mpm_prefork_module modules/mod_mpm_prefork.so.

Bây giờ bỏ ghi chú [kích hoạt] dòng #LoadModule mpm_event_module modules/mod_mpm_event.so bằng cách loại bỏ phần trước # ký bằng lệnh tiếp theo.

sed -i '/mpm_event.so$/s/^#//' /etc/httpd/conf.modules.d/00-mpm.conf

Khởi động Apache và cho phép nó tự khởi động khi khởi động.

systemctl start httpd.service
systemctl enable httpd.service

Kiểm tra xem Apache có sử dụng sự kiện MPM hay không.

Cài đặt mô-đun PHP-FPM và FastCGI.

yum install php-fpm mod_fcgid

Tạo ra /etc/httpd/conf.d/php.conf để hướng dẫn Apache về cách xử lý tệp PHP. Sao chép TẤT CẢ nội dung bên dưới và dán tất cả nội dung đó cùng một lúc vào thiết bị đầu cuối, sau đó nhấn ENTER.

cat 

Chủ Đề