Cách lưu trữ PHP trên Windows với IIS

Thứ hai - 22/03/2021 10:59
Chạy PHP trên IIS có vẻ không phải là một lựa chọn hợp lý, nhưng nó có thể có ý nghĩa. May mắn thay, để PHP chạy trên IIS không quá khó và cho phép bạn truy cập vào tất cả các tác phẩm PHP tuyệt vời mà cộng đồng này đã tạo ra.
Cách lưu trữ PHP trên Windows với IIS

Theo dòng sự kiện

Hướng dẫn Cài đặt IIS và PHP trên máy chủ Windows

Trong các bước xây dựng trang web PHP, bạn cài đặt IIS và FastCGI, tải xuống và cài đặt PHP cũng như...

Những tin cũ hơn

Hướng dẫn Cài đặt IIS và PHP trên máy chủ Windows

Trong các bước xây dựng trang web PHP, bạn cài đặt IIS và FastCGI, tải xuống và cài đặt PHP cũng như...

PHP là gì?

PHP ban đầu là từ viết tắt của trang chủ cá nhân, nhưng giờ đây nó là viết tắt của PHP:
Hypertext Processor. PHP là một ngôn ngữ lập trình  được sử dụng để phát triển web. Nó cũng được sử dụng làm tên cho công cụ cơ bản chạy ứng dụng đó. Thông thường, đây là Zend Engine. Mặc dù có các lựa chọn thay thế, Zend Engine là cách triển khai tiêu chuẩn và là ứng dụng duy nhất được coi là “tính năng hoàn chỉnh”.
Zend Engine thông dịch mã PHP và biên dịch nó nhanh chóng thành một định dạng mà nó có thể thực thi. Điều này có vẻ không hiệu quả và sẽ là nếu động cơ phải làm như vậy cho mọi yêu cầu, nhưng một số người thông minh đã tạo ra các tối ưu hóa như là giải pháp thay thế đủ cho hầu hết các trường hợp sử dụng. Thật tình cờ, chúng ta sẽ xem xét một giải pháp như vậy (WinCache) trong bài viết này. Những ưu điểm của PHP (như một cộng đồng tuyệt vời và kết quả nhanh) vượt trội hơn rất nhiều so với nhược điểm về hiệu suất có thể có mà hầu hết người dùng sẽ không nhận thấy.

IIS là gì?

IIS (Internet Information Services) là máy chủ web của Microsoft và xuất hiện từ năm 1995. Phiên bản mới nhất, IIS 10, đi kèm với Windows và do đó, IIS là một sản phẩm miễn phí.
Có một phiên bản nhẹ của IIS được gọi là IIS Express có thể được cài đặt riêng, nhưng chỉ dành cho mục đích phát triển. IIS Express chỉ hỗ trợ các giao thức HTTP và HTTPS và theo mặc định, chỉ hỗ trợ các yêu cầu cục bộ. Trong bài viết này, tôi sẽ sử dụng phiên bản đầy đủ của IIS 10.
Kể từ phiên bản 7, IIS đã có kiến ​​trúc mô-đun, cho phép chúng tôi chỉ thêm chức năng chúng tôi cần. IIS 10 đã thêm hỗ trợ cho HTTP / 2, HSTS và vùng chứa. IIS là máy chủ web phổ biến thứ ba (sau Apache và Nginx), chạy khoảng 8,7% tổng số trang web.

Lý do nên chạy PHP trên IIS

Hầu hết các phiên bản ứng dụng PHP chạy trên máy chủ web Apache hoặc Nginx, nhưng có những lý do hợp lệ để chọn IIS thay vì các tùy chọn khác:
  • Các kỹ sư hệ thống của bạn có nhiều kinh nghiệm hơn với IIS. Bạn có một hợp đồng hỗ trợ tuyệt vời với Microsoft.
  • Bạn phải chạy ASP.NET hoặc các ứng dụng ASP cổ điển.
  • Bạn phát triển cục bộ các giải pháp chỉ dành cho Windows trên IIS và cũng cần phải làm việc trên các giải pháp PHP.
  • Bạn cần tích hợp với các dịch vụ Windows khác như Active Directory, chia sẻ tệp Windows hoặc Microsoft Exchange.
IIS chỉ chạy trên Windows, nhưng hãy nhớ rằng chạy PHP trên IIS không giống như chạy PHP trên Windows. Có các tùy chọn để chạy PHP trên Windows như XAMPP hoặc WampServer . Tuy nhiên, hai tùy chọn này tạo ra một số lựa chọn bổ sung cho bạn. Họ chạy Apache như một máy chủ web và sử dụng MySQL hoặc MariaDB làm máy chủ cơ sở dữ liệu.
Điều này có thể không phù hợp với nhu cầu của bạn. Nếu bạn đã có các trang web đang chạy trong IIS, bạn cũng nên chạy các trang web PHP của mình ở đó. Bằng cách này, tất cả chúng ở một nơi. Có thể bạn thậm chí muốn sử dụng một công nghệ cơ sở dữ liệu khác. Hoặc bạn thích độ tin cậy của giải pháp được cung cấp bởi công ty lớn như Microsoft. Chúng ta sẽ xem xét việc cài đặt PHP trên IIS và bạn sẽ thấy rằng nó không quá khó.

Cài đặt IIS

Nếu máy của bạn chưa chạy IIS, bạn cần phải kích hoạt nó. Cách thực hiện tùy thuộc vào phiên bản Windows cụ thể mà bạn có. Trên phiên bản Windows không dành cho máy chủ, điều này thường được thực hiện trong hộp thoại “Bật hoặc tắt các tính năng của Windows”. Cách dễ nhất để mở hộp thoại này (trên Windows 8 trở lên) là mở menu Bắt đầu và tìm kiếm “các tính năng của cửa sổ”. Ở đó, bạn sẽ có thể mở hộp thoại này. Khi hộp thoại mở ra, hãy kiểm tra “Dịch vụ thông tin Internet” và “CGI”.
image 6
Trên Windows Server, có nhiều bước liên quan hơn. Mở ứng dụng Trình quản lý máy chủ và đi qua trình hướng dẫn “Thêm vai trò và tính năng”. Trên trang Vai trò máy chủ, chọn “Máy chủ web (IIS)”:
image 7

Khi bạn được nhắc chọn vai trò máy chủ, hãy đảm bảo bật CGI:
image 7
Khi bạn đã cài đặt IIS, điều hướng đến http: // localhost sẽ hiển thị trang IIS mặc định:
image 14

CGI / FastCGI là gì?

CGI là viết tắt của Common Gateway Interface, và là một giao thức tiêu chuẩn cho các máy chủ web để thực thi các ứng dụng trên máy chủ. Điều quan trọng là bạn phải bật CGI trong phiên bản IIS của mình. Trong trường hợp của chúng tôi, điều này có nghĩa là IIS nhận được yêu cầu web đến và sau đó chuyển nó đến công cụ PHP của chúng tôi (một công cụ thực thi Windows đơn giản). Sau đó, công cụ PHP sẽ trả về kết quả đầu ra mà IIS sẽ trả về cho máy khách.
CGI bắt đầu và dừng ứng dụng cho mọi yêu cầu. Điều này có thể trở nên khá tốn kém về mặt hiệu suất nếu bạn nhận được nhiều yêu cầu. CGI cũng không thể xử lý rất tốt việc tái sử dụng kết nối cơ sở dữ liệu hoặc bộ nhớ đệm trong bộ nhớ. FastCGI là một phiên bản mới hơn và tốt hơn của CGI được tạo ra vào giữa những năm 90 để giải quyết những vấn đề này. FastCGI có thể giữ cho các quy trình tồn tại qua nhiều yêu cầu và có thể tái sử dụng các tài nguyên khác, làm cho nó trở thành một giải pháp thay thế nhanh hơn và hiện đại hơn cho CGI “cổ điển”.
Khi bạn bật CGI cho IIS, nó sẽ bao gồm FastCGI theo mặc định. Sau đó IIS sẽ thực thi PHP qua FastCGI.

Cài đặt PHP trên IIS với Web PI

Cách dễ nhất để cài đặt PHP trên IIS là sử dụng Trình cài đặt nền tảng web của Microsoft  . Web PI là một công cụ quản lý gói miễn phí để cài đặt các công cụ phát triển web phi thương mại và các công cụ phụ thuộc của chúng. Khi chạy công cụ này, bạn có thể chọn phiên bản PHP mới nhất trong phần Khung của tab Sản phẩm:
image 15
Web PI sẽ thêm một số mục vào danh sách cài đặt (trong trường hợp của tôi là ba mục); sau đó nhấp vào nút Cài đặt lớn ở dưới cùng. Tiếp theo, bạn sẽ cần phải chấp nhận các điều khoản cấp phép của các thành phần khác nhau. Nếu bất kỳ thành phần nào không cài đặt được, bạn có thể phải cài đặt chúng theo cách thủ công. Trong trường hợp của tôi, đã xảy ra sự cố với Trình quản lý PHP cho IIS, sau đó tôi chỉ cần tải xuống (từ  đây ) và cài đặt.
Cũng có thể cài đặt PHP theo cách thủ công, nếu bạn muốn kiểm soát nhiều hơn.

Cài đặt PHP trên IIS theo cách thủ công

Cài đặt PHP cho IIS với Web PI sẽ cài đặt nó vào “C: \ Program Files.” Bạn có thể muốn kiểm soát điều này nhiều hơn, điều này hoàn toàn có thể xảy ra và cũng không quá khó.
Đầu tiên,  tải xuống PHP  từ trang web PHP. Đảm bảo tải xuống phiên bản an toàn không theo chuỗi. PHP không cần thiết phải kiểm tra an toàn luồng, vì FastCGI đảm bảo một môi trường đơn luồng. Loại bỏ các kiểm tra này sẽ cải thiện hiệu suất.
Giải nén các tập tin vào thư mục bạn chọn; ví dụ: “C: \ PHP.” Ngoài ra, hãy thêm thư mục này vào biến Hệ thống Đường dẫn.
Tiếp theo, mở màn hình Bản đồ xử lý trong Trình quản lý IIS:
image 16
Trong ngăn Tác vụ, bạn sẽ có thể chọn “Thêm ánh xạ mô-đun”. Nhập các chi tiết cần thiết để cho IIS biết rằng các tệp * .php nên được chạy bằng php-cgi.exe thông qua FastCGI:
image 8
Bây giờ, chọn máy chủ của bạn trong ngăn Kết nối của Trình quản lý IIS và chọn “Tài liệu mặc định”. Trong ngăn Tác vụ tiếp theo, nhấp vào “Thêm…” và thêm “index.php”. Bạn cũng có thể thêm các tệp khác, chẳng hạn như “Default.php.” Điều này yêu cầu IIS tìm kiếm một tệp như vậy, nếu không có tệp nào được chỉ định trong URL.
Cuối cùng, chuyển đến thư mục PHP của bạn (ví dụ: “C: \ PHP”) và đổi tên “php.ini-development” hoặc “php.ini-production” thành “php.ini,” tùy thuộc vào môi trường của bạn.

Cấu hình PHP trên IIS

Nếu bạn đã cài đặt PHP trên IIS bằng cách sử dụng Web PI, mặc định có thể sẽ ổn, nhưng bạn không cần phải kiểm tra. Nếu bạn đã cài đặt PHP theo cách thủ công, bạn chắc chắn sẽ muốn kiểm tra cấu hình. Bạn có thể mở tệp “php.ini” và chỉnh sửa nó nếu bạn đã quen với việc cấu hình PHP. Bạn cũng có thể mở Trình quản lý PHP trong Trình quản lý IIS.
Nếu bạn chưa có, hãy cài đặt Trình quản lý PHP cho IIS từ  đây . Sau đó, bạn sẽ thấy nó trong IIS Manager:
image 12
Khi bạn mở nó, bạn sẽ thấy ngay cảnh báo về tệp php.ini của mình. Nhấp vào liên kết "Xem đề xuất" sẽ cung cấp cho bạn một cách dễ dàng để khắc phục bất kỳ vấn đề nào:
image 10

WinCache và các phần mở rộng

PHP cho phép cài đặt và kích hoạt các tiện ích mở rộng. Trong cài đặt mặc định của tôi, tôi đã cài đặt 40 tiện ích mở rộng. Bạn có thể cài đặt các phần mở rộng PHP trong thư mục “ext” trong thư mục cài đặt PHP của mình. Bạn cũng có thể cài đặt chúng thông qua Trình quản lý PHP. Tương tự như vậy, bạn có thể bật và tắt tiện ích mở rộng bằng cách chỉnh sửa tệp php.ini hoặc bằng cách sử dụng Trình quản lý PHP.
Ví dụ, WinCache là một phần mở rộng phổ biến để cải thiện tốc độ của PHP trên hệ thống Windows. Nó bao gồm các cơ chế lưu vào bộ nhớ đệm như bộ đệm dữ liệu người dùng, bộ đệm phiên, bộ đệm hệ thống tệp và bộ đệm đường dẫn tương đối.
Nếu bạn đã cài đặt PHP bằng cách sử dụng Web PI, bạn sẽ không cần phải làm gì ở đây. Nếu bạn đã cài đặt PHP theo cách thủ công, hãy tải xuống phiên bản chính xác từ  SourceForge  và lưu nó vào một thư mục tạm thời nào đó. Đảm bảo  tải xuống từ thư mục phát triển , vì các tệp khác dành cho phiên bản Web PI của WinCache. Thực thi tệp “exe” và sau đó sao chép tệp “php_wincache.dll” vào thư mục “ext” trong thư mục cài đặt PHP của bạn.
Trong Trình quản lý PHP, sau đó bạn có thể nhấp vào liên kết “bật hoặc tắt tiện ích mở rộng” và bật WinCache:
image 11
Tùy chọn khác là thêm “extension = php_wincache.dll” vào cuối tệp “php.ini” của bạn.
Đảm bảo bạn tải xuống phiên bản WinCache tương ứng với phiên bản PHP của bạn. Khi tôi viết bài này, WinCache chỉ được hỗ trợ tối đa PHP 7.2, mặc dù PHP 7.3 đã được phát hành. Trong các  diễn đàn WinCache , bạn có thể đọc rằng hỗ trợ cho 7.3 đã có trên radar, nhưng yêu cầu một số công việc.

Kiểm tra cài đặt của bạn

Bây giờ chúng tôi đã cài đặt PHP cho IIS, chúng tôi có thể kiểm tra nó một cách dễ dàng. Tạo một tệp mới trong trình soạn thảo văn bản yêu thích của bạn và chỉ thêm dòng sau:
<? php phpinfo (); ?>
Lưu tệp này vào C: \ inetpub \ wwwroot. Đây là nơi IIS sẽ lưu trữ các trang web của bạn. Đảm bảo chạy trình chỉnh sửa của bạn với tư cách Quản trị viên, nếu không bạn sẽ không thể lưu tệp vào thư mục đó.
Bây giờ, điều hướng đến http: //localhost/phpinfo.php trong trình duyệt của bạn và bạn sẽ thấy tổng quan dài về tất cả các cài đặt PHP hiện tại:
image 13
Điều này có nghĩa là mọi thứ đang hoạt động tuyệt vời!
Hãy nhớ rằng việc đặt tệp phpinfo.php trên một trang web công cộng là một phương pháp bảo mật không tốt. Nó tiết lộ quá nhiều thông tin về máy chủ của bạn mà tin tặc có thể sử dụng để tấn công bạn.

Kết hợp sức mạnh của IIS và PHP

PHP được sử dụng bởi  gần 80% các trang web  trên internet, theo ước tính. Nó cũng đã đứng trước  thử thách của thời gian  rất tốt. Nó có một cộng đồng rộng lớn và sôi động và bao gồm một số sản phẩm đã được thử nghiệm và thử nghiệm như WordPress và Drupal.
IIS không phải là máy chủ web có thị phần đáng kể nhất, nhưng nó có sự hỗ trợ và cống hiến của Microsoft đằng sau nó, có nghĩa là nó sẽ tiếp tục được phát triển và hỗ trợ trong một thời gian khá dài. Nếu bạn đã có các trang web chạy trong IIS, bây giờ bạn có thể thêm các trang web PHP của mình vào đó, giữ mọi thứ ở một nơi.
rong ví dụ trên, chúng tôi đã thêm trang web PHP (một tệp nhỏ) vào thư mục wwwroot. Điều này ánh xạ tới “Trang web mặc định” trong IIS. Tuy nhiên, không có gì ngăn cản bạn sử dụng các khả năng của IIS và đưa các trang web của bạn vào các thư mục khác, sau đó chạy chúng trong các nhóm ứng dụng riêng biệt. Đó là một cách thực hành tốt nhất.
Ví dụ: tôi đã giải nén các tệp Drupal trên máy cục bộ của mình và trỏ IIS vào thư mục đó:
image 9
Lưu ý: có thể điều này không phù hợp với bạn. Tôi phải làm thêm một số công việc vì web.config mặc định do IIS tạo ra bao gồm phần viết lại không phù hợp với tôi. Tôi đã phải gỡ bỏ nó hoặc cài đặt mô-đun viết lại cho IIS.
Tại đây, bạn có thể thấy thiết lập Drupal đang chạy trên phiên bản IIS cục bộ của tôi:
image 17
Đây là Drupal và PHP chạy trên IIS 10 trên Windows 10!

Cân nhắc thêm

Cũng giống như bất kỳ ứng dụng nào khác chạy trên IIS, bạn cần lưu ý một số điều khi chạy các ứng dụng PHP trên IIS:
  • Cô lập các ứng dụng với nhau bằng cách chạy chúng trong các nhóm ứng dụng riêng biệt.
  • Chỉ cho phép danh tính nhóm ứng dụng truy cập vào thư mục và tệp thuộc trang web.
  • Cân nhắc sử dụng  một tệp php.ini trên mỗi trang web , thay vì một tệp php.ini chung.
  • Cân nhắc cài đặt PHP trong một thư mục cho biết phiên bản (“C: \ PHP7.2” thay vì “C: \ PHP”) để các trang web khác nhau có thể dựa vào các phiên bản PHP khác nhau.
Còn rất nhiều thứ để chạy PHP trên IIS, vì sức mạnh của cả hai nền tảng (giống như có nhiều khả năng khi chạy PHP trên Apache hoặc Nginx).
Một điều thú vị cần lưu ý là  Retrace  sẽ sớm hỗ trợ chạy PHP trên IIS. Retrace đã hỗ trợ nhiều nền tảng và khuôn khổ  chạy trên hoặc thường được liên kết với PHP .
Nhưng việc thêm hỗ trợ cho PHP trên IIS sẽ làm cho nó trở thành một giải pháp tuyệt vời cho nhu cầu PHP APM của bạn, bất kể máy chủ web nào đang chạy các ứng dụng PHP của bạn.

PHP và IIS: dễ dàng!

Không nhiều người biết IIS hỗ trợ chạy các ứng dụng PHP và việc thiết lập nó đơn giản như thế nào. Sử dụng Web PI, bạn có thể làm cho nó hoạt động chỉ trong vài cú nhấp chuột. Cài đặt nó theo cách thủ công không quá khó và nó cung cấp cho bạn thêm một số quyền kiểm soát.
Linux và Apache hoặc Nginx dường như là lựa chọn mặc định cho PHP, nhưng chỉ trong vài bước, bạn có thể chạy các ứng dụng PHP trên máy chủ web IIS của mình  . Nếu vì lý do gì đó, bạn không có tùy chọn chạy Apache hoặc Nginx và cảm thấy "mắc kẹt" với IIS hoặc bạn chỉ thích IIS hơn, thì điều đó sẽ không ngăn bạn sử dụng sức mạnh của PHP, ngôn ngữ vẫn phổ biến nhất trên mạng internet.

Tác giả bài viết: Văn Tề

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

Phần mềm - Tiện ích

Code - Website

Claim free virtual currency

The current Bitcoin (BTC) token is:
Get it for free right HERE
The current Ethereum (ETH) token is:
Get it for free right HERE
The current Litecoin (LTC) token is:
Get it for free right HERE
Top
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây