Hầu hết chúng ta đều biết Apache là một phần mềm web server trong khi đó PHP là một ngôn ngữ kịch bản scripting language được sử dụng phổ biến trên server cùng với Apache. Tuy nhiên chính xác thì vai trò cũng như chức năng của Apache và PHP cụ thể như thế nào và chuyện gì xảy ra nếu chỉ server chỉ được cài đặt Apache hoặc PHP?
Trước tiên bạn cần nắm rõ được một request khi gửi tới server sẽ được xử lý như thế nào.
Vai Trò Của Apache
Khi một HTTP request được gửi tới server máy chủ thì nó sẽ được xử lý trước tiên bởi một phần mềm được gọi là HTTP web server (hay thường gọi vắn tắt là phần mềm web server hoặc web server) được cài đặt trên server. Hiện nay Apache là một trong những phần mềm web server được sử dụng phổ biến trên thế giới tuy nhiên không phải là phần mềm web server duy nhất, ngoài Apache chúng ta còn có thể sử dụng phần mềm web server khác cũng khá phổ biến có tên là NGINX (đọc là en-zin-iks).
Ví dụ sử dụng client (chẳng hạn như trình duyệt web) chúng ta thực hiện gửi một request tới server với địa chỉ http://localhost/index.html
, máy chủ khi nhận được request sẽ chuyển request này cho phần mềm web server để xử lý (trường hợp của chúng ta là Apache). Apache sẽ tìm kiếm tập tin index.html
trong thư mục gốc và trả về cho client. Trường hợp không tìm thấy tập tin index.html
Apache sẽ trả về lỗi 404 not found.
Tuy nhiên như bạn biết HTML là ngôn ngữ đánh dấu (markup language) và nó không thể thực hiện được các công việc như truy cập tới cơ sở dữ liệu, lưu trữ session, xử lý dữ liệu form… Để làm các công việc này chúng ta cần tới ngôn ngữ scripting như PHP (hoặc Ruby, Java…).
Vai Trò Của PHP
PHP là ngôn ngữ lập trình kịch bản giúp thực hiện các tác vụ mạnh mẽ như đã đề cập ở trên. Tuy nhiên PHP lại không phải là một phần mềm web server, nói cách khác việc xử lý HTTP request gửi tới server cần được xử lý bởi web server (Apache) như chúng ta đã tìm hiểu ở trên.
Để PHP có thể tham gia vào quá trình xử lý request của web server (Apache) thì chúng ta sẽ cần tích hợp một thư viện có tên là mô-đun PHP mod_php
vào trong Apache web server.
Sau khi Apahce được tích hợp và kích hoạt mod_php
thì lúc này khi server nhận được một request gửi tới từ phía client với địa chỉ URL là http://localhost/index.php
nó vẫn sẽ chuyển request này cho Apache để xử lý như thường lệ. Tuy nhiên lúc này Apache nhận thấy tập tin index.php
là một tập tin PHP và do đó nó sẽ thông qua mod_php
để nhờ PHP xử lý tập tin index.php
này và trả về kết quả. Sau khi nhận được kết quả xử lý từ PHP, Apache lúc này mới chuyển trả kết quả về cho client.
Leave a Reply