Trong khi xem qua hướng dẫn Zend , tôi bắt gặp tuyên bố sau:
Lưu ý rằng cài đặt php_flag trong .htaccess chỉ hoạt động nếu bạn đang sử dụng mod_php.
Ai đó có thể giải thích điều đó có nghĩa là gì?
Trong khi xem qua hướng dẫn Zend , tôi bắt gặp tuyên bố sau:
Lưu ý rằng cài đặt php_flag trong .htaccess chỉ hoạt động nếu bạn đang sử dụng mod_php.
Ai đó có thể giải thích điều đó có nghĩa là gì?
Câu trả lời:
mod_php
có nghĩa là PHP, như một mô-đun Apache .
Về cơ bản, khi tải mod_php
dưới dạng một mô-đun Apache, nó cho phép Apache thông dịch các tệp PHP (chúng được thông dịch bởi mod_php
) .
CHỈNH SỬA: Có (ít nhất) hai cách chạy PHP khi làm việc với Apache:
mod_php
) : trình thông dịch PHP sau đó được "nhúng" vào bên trong quy trình Apache: không có quy trình PHP bên ngoài - có nghĩa là Apache và PHP có thể giao tiếp tốt hơn.
Và chỉnh sửa lại, sau khi nhận xét : sử dụng CGI hay mod_php
là tùy bạn: vấn đề chỉ là cấu hình máy chủ web của bạn.
Để biết cách nào hiện đang được sử dụng trên máy chủ của bạn, bạn có thể kiểm tra đầu ra của phpinfo()
: phải có một cái gì đó cho biết liệu PHP đang chạy qua mod_php
(hoặc mod_php5
) hay qua CGI.
Bạn cũng có thể muốn xem php_sapi_name()
hàm: nó trả về kiểu giao diện giữa máy chủ web và PHP .
Nếu bạn kiểm tra các tệp cấu hình Apache của mình, khi sử dụng mod_php
, sẽ có một LoadModule
dòng như sau:
LoadModule php5_module modules/libphp5.so
(Tên tệp, ở bên phải, có thể khác - ví dụ: trên Windows, nó phải là a .dll
)
mod_php
cho đến nay là cấu hình phổ biến nhất.
mod_php
không phải là PHP thực; nó chỉ là một addon của Apache. Hay đúng hơn, tôi nghĩ bạn nên bắt đầu câu trả lời với định nghĩa về PHP chính xác nghĩa là gì?
Câu trả lời này được lấy từ TuxRadar :
Khi chạy PHP thông qua máy chủ web của bạn, có hai tùy chọn riêng biệt: chạy nó bằng CGI SAPI của PHP hoặc chạy nó như một mô-đun cho máy chủ web. Mỗi cái đều có những lợi ích riêng, nhưng nhìn chung, mô-đun thường được ưu tiên hơn.
Chạy PHP dưới dạng CGI có nghĩa là về cơ bản bạn cho máy chủ web của mình biết vị trí của tệp thực thi PHP và máy chủ chạy tệp thực thi đó, cung cấp cho nó tập lệnh mà bạn đã gọi, mỗi khi bạn truy cập một trang. Điều đó có nghĩa là mỗi khi bạn tải một trang, PHP cần đọc php.ini và thiết lập cài đặt của nó, nó cần tải tất cả các phần mở rộng của nó và sau đó nó cần bắt đầu công việc phân tích kịch bản - có rất nhiều công việc lặp lại.
Khi bạn chạy PHP dưới dạng mô-đun, PHP thực sự nằm bên trong máy chủ web của bạn - nó chỉ khởi động một lần, tải cài đặt và tiện ích mở rộng của nó một lần và cũng có thể lưu trữ thông tin qua các phiên. Ví dụ: các trình tăng tốc PHP dựa vào việc PHP có thể lưu dữ liệu được lưu trong bộ nhớ cache qua các yêu cầu, điều này là không thể sử dụng phiên bản CGI.
Lợi thế rõ ràng của việc sử dụng PHP làm mô-đun là tốc độ - bạn sẽ thấy tốc độ tăng đáng kể nếu chuyển đổi từ CGI sang mô-đun. Nhiều người, đặc biệt là người dùng Windows, không nhận ra điều này và tiếp tục sử dụng php.exe CGI SAPI, điều này thật đáng tiếc - mô-đun này thường nhanh hơn từ ba đến năm lần.
Tuy nhiên, có một lợi thế chính khi sử dụng phiên bản CGI và đó là PHP đọc cài đặt của nó mỗi khi bạn tải một trang. Với PHP đang chạy dưới dạng mô-đun, bất kỳ thay đổi nào bạn thực hiện trong tệp php.ini sẽ không bắt đầu cho đến khi bạn khởi động lại máy chủ web của mình, điều này làm cho phiên bản CGI thích hợp hơn nếu bạn đang thử nghiệm nhiều cài đặt mới và muốn xem phản hồi tức thì.
Máy chủ của bạn cần phải cài đặt các mô-đun php để nó có thể phân tích cú pháp mã php.
Nếu bạn đang sử dụng ubuntu, bạn có thể thực hiện việc này dễ dàng với
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
Nếu không, bạn có thể biên dịch apache bằng php: http://dan.drydog.com/apache2php.html
Chỉ định hệ điều hành máy chủ của bạn sẽ giúp người khác trả lời cụ thể hơn.
Điều đó có nghĩa là bạn phải cài đặt PHP như một mô-đun trong Apache, thay vì khởi động nó như một tập lệnh CGI.
Chỉ cần thêm vào những câu trả lời này là, mod_php là phương thức lâu đời nhất và chậm nhất có sẵn trong máy chủ HTTPD để sử dụng PHP. Nó không được khuyến khích, trừ khi bạn đang chạy các phiên bản Apache HTTPD và PHP cũ. php-fpm và proxy_cgi là những phương pháp được ưu tiên.