Cấu hình httpd PHP

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

  • có thể sử dụng một phiên bản PHP duy nhất của mod_php
  • mod_php chạy trong quy trình httpd mà 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 quyền thực thi tập lệnh PHP cho phần phụ trợ bằng cách sử dụng giao thức FastCGI, cách sử dụng phiên bản PHP mới 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

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

Bạn nên xóa hoặc tắt mod_php để giảm dung lượng bộ nhớ của mỗi quy trình httpd

Bạn có thể xóa gói php chỉ cung cấp mô-đun này

 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. mô-đun. 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à kích hoạt dịch vụ của nó

 yum install php-fpm
 systemctl start php-fpm
 systemctl enable php-fpm

Lưu ý. gói php-fpm có sẵn trong kênh tùy chọn, kênh này phải được bật

Để định cấu hình thực thi tập lệnh PHP, hãy chỉnh sửa hoặc tạo /etc/httpd/conf. d/php. tập tin conf

Các dòng sau đây ngăn chặn. người sử dụng. ini không bị các máy khách Web xem

  
    Require all denied
  

Cho phép php xử lý Multiviews

  AddType text/html .php

Thêm chỉ mục. php vào danh sách các tệp sẽ được dùng làm chỉ mục thư mục

  DirectoryIndex index.php

Dòng sau, bật tiêu đề ủy quyền http

  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ố lệnh php_value trong tệp này, bạn cần xóa chúng, chúng chỉ dành cho mod_php

Bây giờ bạn có thể [khởi động lại] máy chủ web và một trang kiểm tra PHP đơn giản với;

________số 8_______

nó sẽ hiển thị bạn hiện đang chạy PHP thông qua chương trình phụ trợ FatCGI

PHP Version 5.4.16
Server API= FPM/FastCGI

1. 3. điều chỉnh PHP

Tệp cấu hình FPM chính là /etc/php-fpm. conf, có rất nhiều bình luận giải thích từng tùy chọn

FPM có thể chạy nhiều nhóm khác nhau, mỗi nhóm chạy các tập lệnh PHP có thể có các tùy chọn khác nhau, tệp cấu hình nhóm [www] mặc định là /etc/php-fpm. d/www. conf, cũng có rất nhiều bình luận

1. 3. 1. php_value, php-flag

Tùy chọn PHP có thể được đặt bằng cách sử dụng các chỉ thị php_value, php_admin_value, php_flag và php_admin_flag

  • với mod_php, trong tệp cấu hình httpd của Apache
  • với FPM, trong tệp cấu hình nhóm

1. 3. 2. . htaccess

Các tùy chọn bổ sung có thể được đặt trong một thư mục cụ thể

  • với mod_php, sử dụng một. tập tin htaccess
  • với FPM, sử dụng một. người sử dụng. ini [không cần từ khóa php_*]

1. 3. 3. điều chỉnh quy trình

FPM chạy dưới dạng daemon và khởi chạy nhiều quy trình khác nhau để có thể xử lý đồng thời nhiều yêu cầu khác nhau và cung cấp nhiều chế độ khác nhau

  • pm = theo yêu cầu, con chỉ bắt đầu khi kết nối mở và dừng khi không hoạt động, phù hợp với môi trường phát triển
  • pm = động, một tập hợp các quy trình nhàn rỗi luôn chạy, có thể bắt đầu nhiều quy trình hơn nếu cần, phù hợp cho sản xuất
  • pm = tĩnh, một bộ quy trình cố định luôn chạy, thích hợp cho sản xuất, có thể tốt hơn cho hiệu suất

1. 4. Điều chỉnh Máy chủ HTTP Apache

1. 4. 1. MPM có ren

Theo mặc định, Máy chủ HTTP Apache sử dụng một tập hợp các quy trình để quản lý các yêu cầu đến [MPM prefork]

Vì bây giờ chúng tôi không sử dụng mod_php nên chúng tôi có thể chuyển sang MPM theo luồng [nhân viên của một sự kiện] để một tập hợp các luồng sẽ quản lý các yêu cầu, giảm số lượng quy trình đang chạy và dung lượng bộ nhớ cũng như cải thiện hiệu suất, đặc biệt là khi nhiều

Chuyển đổi MPM đã sử dụng trong /etc/httpd/conf. mô-đun. d/00-mpm. tập tin cấu hình conf

 # disabled # LoadModule php5_module modules/libphp5.so
0

1. 4. 2. Ổ cắm tên miền Unix

Theo mặc định, FPM lắng nghe các yêu cầu đến trên ổ cắm mạng nhưng có thể sử dụng Ổ cắm miền Unix, điều này có thể cải thiện một chút hiệu suất

Trong cấu hình nhóm FPM

 # disabled # LoadModule php5_module modules/libphp5.so
1

Trong cấu hình Apache httpd

 # disabled # LoadModule php5_module modules/libphp5.so
2

1. 4. 2. Máy chủ frontend và backend riêng biệt

Theo mặc định, FPM lắng nghe các yêu cầu đến trên ổ cắm mạng cục bộ. Tất nhiên nó có thể chạy trên server riêng, máy ảo khác hoặc container [docker instance]

Trong cấu hình nhóm FPM

 # disabled # LoadModule php5_module modules/libphp5.so
3

Trong cấu hình Apache httpd

 # disabled # LoadModule php5_module modules/libphp5.so
4

1. 4. 3 Nhiều chương trình phụ trợ php

Để có thể xử lý nhiều yêu cầu đồng thời hơn, chúng tôi có thể muốn cân bằng tải giữa các chương trình phụ trợ PHP khác nhau, điều này thật dễ dàng

Mẫu cấu hình Apache httpd, với 3 phụ trợ

 # disabled # LoadModule php5_module modules/libphp5.so
5

2. Chạy phiên bản PHP gần đây

RHEL cung cấp phiên bản PHP 5. 4 là phiên bản hiện tại khi RHEL-7 được phát hành, nhưng có thể quá cũ đối với một số dự án gần đây

Phiên bản PHP 5. 6 và 7. 0 được hỗ trợ trên RHEL ngày hôm nay như một phần của Bộ sưu tập phần mềm Red Hat [RHSCL] và phiên bản PHP 7. 1 hiện đang trong giai đoạn thử nghiệm Beta với 3. 0 bản cập nhật của RHSCL

Trong ví dụ bên dưới, chúng tôi sẽ sử dụng phiên bản 7. 0, nhưng nó có thể được sử dụng cho các phiên bản có sẵn khác

2. 1. Cài đặt

Cài đặt Bộ sưu tập phần mềm, sau khi đã bật kênh RHSCL

 # disabled # LoadModule php5_module modules/libphp5.so
6

Cài đặt dịch vụ FPM cho phiên bản này

 # disabled # LoadModule php5_module modules/libphp5.so
7

Cài đặt mọi tiện ích bổ sung cần thiết

 # disabled # LoadModule php5_module modules/libphp5.so
8

Lời khuyên. so sánh danh sách các tiện ích mở rộng có sẵn để đảm bảo mọi thứ cần thiết đều có sẵn

 # disabled # LoadModule php5_module modules/libphp5.so
9

Lời khuyên. không bao giờ dựa vào tên gói, nhưng thích tên mở rộng hơn [e. g. php-mysqli hoặc rh-php70-php-simplexml], vì bố cục gói có thể thay đổi giữa các phiên bản

2. 2. Chuyển sang các phiên bản PHP mới hơn

Khi chạy FPM, điều này đơn giản như việc dừng dịch vụ phiên bản cũ và bắt đầu dịch vụ mới

 yum install php-fpm
 systemctl start php-fpm
 systemctl enable php-fpm
0

2. 3. gói bổ sung

Bộ sưu tập phần mềm cung cấp cùng một bộ phần mở rộng PHP so với các gói tiêu chuẩn trong RHEL

Vì người dùng đã quen với việc tìm một số tiện ích mở rộng bổ sung, trong kho lưu trữ EPEL, bạn có thể tìm thấy tiện ích mở rộng bổ sung trong kho lưu trữ centos-sclo-sclo của cộng đồng, để biết thêm thông tin, hãy tìm kiếm sclo-php trên https. //www. bộ sưu tập phần mềm. tổ chức/

3. Chạy nhiều phiên bản PHP

Khi thực thi PHP được chuyển hướng đến dịch vụ FastCGI bằng cách sử dụng chỉ thị SetHandler, điều này có thể được đặt cho mỗi vhost, dự án hoặc thư mục

Trong ví dụ bên dưới, chúng ta sẽ chạy cả PHP phiên bản 5. 4 từ hệ thống cơ sở [đối với một số ứng dụng cũ, đã được định cấu hình ở trên] và phiên bản PHP 7. 1 đồng thời

3. 1. Cài đặt

Cài đặt Bộ sưu tập phần mềm, sau khi đã bật kênh RHSCL beta

 yum install php-fpm
 systemctl start php-fpm
 systemctl enable php-fpm
1

Định cấu hình FPM để nghe một cổng khác với cổng được sử dụng bởi dịch vụ php-fpm mặc định, trong /etc/opt/rh/rh-php71/php-fpm. d/www. conf

Làm cách nào để bật PHP trên httpd?

Định cấu hình Apache để cung cấp các trang PHP từ thư mục người dùng. .
Bước 1. Chỉnh sửa tệp cấu hình PHP. sudo gedit /etc/apache2/mods-enabled/php5. conf. .
Bước 2. Lưu các thay đổi và thoát emacs. điều khiển-x, điều khiển-s
Bước 3. Khởi động lại Apache, và bạn đã hoàn tất. sudo /etc/init. khởi động lại d/apache2

Làm cách nào để cài đặt PHP trên httpd?

Cài đặt PHP .
Bước 1. Tải xuống các tệp PHP. Nhận gói ZIP an toàn chủ đề PHP x64 mới nhất từ ​​https. //các cửa sổ. php. mạng/tải xuống/
Bước 2. Giải nén các tập tin. .
Bước 3. định cấu hình php. .
Bước 4. Thêm C. \php vào biến môi trường PATH. .
Bước 5. Định cấu hình PHP làm mô-đun Apache. .
Bước 6. Kiểm tra tệp PHP

Làm cách nào để định cấu hình PHP trong Apache Linux?

Bạn cần. .
Cài đặt máy chủ HTTP Apache2, công cụ PHP5, MySQL 5. 0 máy chủ cơ sở dữ liệu và mô-đun PHP5-MySQL. .
Chỉ định gốc tài liệu cho máy chủ HTTP Apache2
Cấu hình máy chủ cơ sở dữ liệu MySQL
Cài đặt và kích hoạt XDebug 2. 0 trình gỡ lỗi

Làm cách nào để chạy PHP trong máy chủ Apache?

Định cấu hình Máy chủ web Apache để chạy PHP trên Windows .
Cài đặt PHP. PHP cần được tải xuống và cài đặt trước khi tiếp tục. .
Định cấu hình Apache để chạy PHP dưới dạng Mô-đun. Hướng dẫn này giả định rằng bạn đang sử dụng apache 2. 2. .
Khởi động lại Apache. Bây giờ, máy chủ web apache cần được khởi động lại. .
Chạy một trang PHP thử nghiệm

Chủ Đề