Hướng dẫn iis not working with php - tôi không làm việc với php

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, bắt PHP để chạy trên IIS rất khó khăn và cho phép bạn truy cập vào tất cả các công việc PHP tuyệt vời mà cộng đồng này đã sản xuất.


Hướng dẫn iis not working with php - tôi không làm việc với php


PHP là gì?

PHP ban đầu là từ viết tắt của trang chủ cá nhân, nhưng bây giờ nó viết tắt của bộ xử lý PHP: siêu văn bản.

PHP là một ngôn ngữ lập trình & nbsp; đượ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à động cơ Zend. Mặc dù các lựa chọn thay thế tồn tại, Zend Engine là triển khai tiêu chuẩn và là sản phẩm duy nhất được coi là tính năng hoàn chỉnh.

Động cơ Zend diễn giải mã PHP và biên dịch nó trên đị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 tối ưu hóa như là cách giải quyết đủ cho hầu hết các trường hợp sử dụng. Ngẫu nhiên, chúng tôi sẽ xem xét một giải pháp như vậy (Wincache) trong bài viết này. Những lợi thế của PHP (như một cộng đồng tuyệt vời và kết quả nhanh) vượt xa mức độ hạn chế hiệu suất có thể mà hầu hết người dùng đã giành được thông báo.

Iis là gì?

IIS (Dịch vụ thông tin Internet) là máy chủ web Microsoft, và đã có từ năm 1995. Phiên bản mới nhất, IIS 10, đi kèm với Windows và như vậy, IIS là một sản phẩm miễn phí.

Có một phiên bản nhẹ của IIS có tên 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ó một 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à container. IIS là máy chủ web phổ biến thứ ba (sau Apache và Nginx), chạy khoảng 8,7% của tất cả các trang web.

Lý do để chạy php trên IIS

Hầu hết các trường hợp của các ứ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 hơn 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 các ứng dụng ASP.NET hoặc Cổ điển ASP.
  • Bạn phát triển các giải pháp chỉ dành cho Windows tại địa phương 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, Windows File chia sẻ hoặc Microsoft Exchange.

IIS chỉ chạy trên Windows, nhưng hãy nhớ rằng việc 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 làm cho 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 chạy trong IIS, thì đó là một ý tưởng tốt để chạy các trang web PHP của bạn ở đó. Bằng cách này, tất cả họ ở 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 một giải pháp được cung cấp bởi công ty lớn mà Microsoft là. Chúng tôi sẽ xem xét việc cài đặt PHP trên IIS và bạn sẽ thấy rằng đó là điều khó khăn.

Hãy thử Stackify Code Profiler miễn phí, tiền tố, để viết mã tốt hơn trên máy trạm của bạn. Tiền tố hoạt động với .NET, Java, PHP, Node.js, Ruby và Python.

Cài đặt IIS

Nếu máy của bạn chưa chạy IIS, bạn sẽ cần phải kích hoạt nó. Cách làm phụ thuộc vào phiên bản cụ thể của Windows mà bạn có. Trên phiên bản không phải máy chủ của Windows, điều này thường được thực hiện trong hộp thoại Tắt Windows Turn Windows trên hoặc TẮT. 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 Windows Windows. Ở đó, sau đó bạn sẽ có thể mở hộp thoại này. Khi hộp thoại được mở, hãy kiểm tra các dịch vụ thông tin Internet trên Internet và CGI.

Hướng dẫn iis not working with php - tôi không làm việc với php

Trên Windows Server, có nhiều bước liên quan. Mở ứng dụng Trình quản lý máy chủ và xem qua các vai trò và tính năng của Wikips Wizard. Trên trang Vai trò máy chủ, chọn Máy chủ web (IIS).

Hướng dẫn iis not working with php - tôi không làm việc với php

Khi bạn được nhắc chọn vai trò máy chủ, hãy chắc chắn bật CGI:

Hướng dẫn iis not working with php - tôi không làm việc với php

Khi bạn đã cài đặt IIS, điều hướng đến http: // localhost sẽ hiển thị trang IIS mặc định:

Hướng dẫn iis not working with php - tôi không làm việc với php

CGI/fastcgi là gì?

CGI viết tắt cho giao diện Gateway chung và là giao thức tiêu chuẩn cho các máy chủ web để thực hiện các ứng dụng trên máy chủ. Điều quan trọng là bạn có thể kích hoạt CGI trong ví dụ IIS của bạn. 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ó cho công cụ PHP của chúng tôi (một Windows có thể thực thi đơn giản). Động cơ PHP sau đó sẽ trả về đầu ra mà IIS sẽ trở lại 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ề hiệu suất nếu bạn nhận được nhiều yêu cầu. CGI cũng có thể xử lý việc tái sử dụng kết nối cơ sở dữ liệu hoặc bộ nhớ đệm trong bộ nhớ rất tốt. Fastcgi là phiên bản CGI mới hơn và tốt hơn được tạo vào giữa những năm 90 để giải quyết các vấn đề này. Fastcgi có thể giữ các quy trình tồn tại qua nhiều yêu cầu và có thể sử dụng lại các tài nguyên khác, làm cho nó trở thành một sự 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. IIS sau đó 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 Microsoft & NBSP; 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à phụ thuộc của chúng. Khi bạn chạy công cụ này, bạn có thể chọn phiên bản mới nhất của PHP trong phần Khung của tab Sản phẩm:

Hướng dẫn iis not working with php - tôi không làm việc với php

Web Pi sẽ thêm một số mục vào danh sách cài đặt (ba trong trường hợp của tôi); Sau đó nhấp vào nút cài đặt lớn ở phía dưới. Tiếp theo, bạn sẽ cần 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, 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, có một vấn đề với Trình quản lý PHP cho IIS, sau đó tôi vừa tải xuống (từ & nbsp; ở đây) và được 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ác tệp chương trình C C: \. Bạn có thể muốn một số quyền kiểm soát hơn đối với điều này, điều này là hoàn toàn có thể và cũng không khó khăn.

Đầu tiên, & nbsp; Tải xuống PHP & NBSP; từ trang web PHP. Hãy chắc chắn để tải xuống một phiên bản an toàn không có luồng. Nó không cần thiết cho PHP để kiểm tra an toàn chủ đề, bởi vì FastCGI đảm bảo môi trường đơn luồng. Loại bỏ những kiểm tra này cải thiện hiệu suất.

Trích xuất các tệp vào thư mục bạn chọn; Ví dụ, C C: \ Php. Ngoài ra, 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 ánh xạ xử lý trong IIS Manager:

Hướng dẫn iis not working with php - tôi không làm việc với php

Trong khung hành động, bạn sẽ có thể chọn bản đồ mô -đun Thêm. Nhập các chi tiết cần thiết để nói với IIS rằng các tệp *.php nên được chạy bởi php-cgi.exe thông qua fastcgi:

Hướng dẫn iis not working with php - tôi không làm việc với php

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 khung hành động tiếp theo, hãy nhấp vào Thêm Thêm vào đó và thêm Chỉ mục. Bạn cũng có thể thêm các tệp khác, như mặc định.php. Điều này bảo 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, hãy chuyển đến thư mục PHP của bạn (ví dụ: C:

Định 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 nó không bị tổn thương khi 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 thuộc với việc định 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 đã không có, hãy cài đặt trình quản lý PHP cho IIS từ & nbsp; ở đây. Sau đó, bạn sẽ thấy nó trong IIS Manager:

Hướng dẫn iis not working with php - tôi không làm việc với php

Khi bạn mở nó, bạn sẽ ngay lập tức thấy cảnh báo về tệp PHP.INI của bạn. Nhấp vào liên kết Khuyến nghị của Xem xem 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:

Hướng dẫn iis not working with php - tôi không làm việc với php

Wincache và phần mở rộng

PHP cho phép các tiện ích mở rộng được cài đặt và bật. 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 tiện ích mở rộng PHP trong thư mục ext ext trong thư mục cài đặt PHP của bạn. 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 các hệ thống Windows. Nó bao gồm các cơ chế lưu trữ 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ẽ thắng cần phải làm bất cứ điều 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ừ & nbsp; SourceForge & nbsp; và lưu nó vào một số thư mục tạm thời. Hãy chắc chắn & nbsp; Tải xuống từ thư mục & nbsp; phát triển, bởi vì các tệp khác dành cho phiên bản Web Pi của Wincache. Thực hiện tệp EX EXE và sau đó sao chép tệp php_wincache.dll vào thư mục ext ext ext trong thư mục cài đặt PHP của bạn.download from the development folder, because the other files are for the Web PI version of WinCache. Execute the “exe” file and then copy the “php_wincache.dll” file to the “ext” folder in your PHP installation folder.

Trong trình quản lý PHP, sau đó bạn có thể nhấp vào Bật hoặc tắt liên kết mở rộng và bật Wincache:

Hướng dẫn iis not working with php - tôi không làm việc với php

Tùy chọn khác là thêm tiện ích mở rộng = php_wincache.dll, ở cuối tệp php.ini của bạn.

Hãy chắc chắn rằng 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 viết này, Wincache chỉ được hỗ trợ lên đến Php 7.2, mặc dù Php 7.3 đã được phát hành. Trong các diễn đàn & nbsp; Wincache, bạn có thể đọc hỗ trợ đó cho 7.3 là 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:

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. Hãy chắc chắn chạy trình chỉnh sửa của bạn với tư cách là quản trị viên hoặc bạn đã giành chiến thắng để có 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 của tất cả các cài đặt PHP hiện tại:

Hướng dẫn iis not working with php - tôi không làm việc với php

Đ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 trang web công cộng là một thực tiễn bảo mật xấu. Nó phơi bày 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 & nbsp; gần 80% các trang web & nbsp; trên Internet, theo ước tính. Nó cũng đã đứng trên & nbsp; kiểm tra thời gian & nbsp; 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 đã thử và thử nghiệm như WordPress và Drupal.

IIS là máy chủ web có thị phần quan trọng 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á lâu. Nếu bạn đã có các trang web chạy trong IIS, giờ đây 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.

Trong ví dụ trên, chúng tôi đã thêm trang web PHP (một tệp nhỏ) của chúng tôi vào thư mục wwwroot. Bản đồ này đến trang web mặc định trên mạng 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. Nó là một thực hành tốt nhất.

Ví dụ, tôi đã trích xuất các tệp Drupal trên máy cục bộ của mình và chỉ IIS vào thư mục đó:

Hướng dẫn iis not working with php - tôi không làm việc với php

Lưu ý: Có thể điều này không làm việc cho bạn. Tôi đã phải làm thêm một số công việc vì web.config mặc định được tạo bởi IIS bao gồm một phần viết lại không hoạt động cho tôi. Tôi đã phải xóa 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:

Hướng dẫn iis not working with php - tôi không làm việc với php

Đâ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 muốn tính đến một số thứ 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ỉ để nhận dạng nhóm ứng dụng truy cập thư mục và các tệp thuộc về trang web.
  • Xem xét có & nbsp; một tệp php.ini trên mỗi trang web, thay vì một tệp php.ini toàn cầu.
  • Cân nhắc cài đặt PHP trong một thư mục biểu thị phiên bản (C C: \ Php7.2, thay vì của C: \ PHP) để các trang web khác nhau có thể dựa vào các phiên bản khác nhau của PHP.

Có rất nhiều điều để 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à & nbsp; retrace & nbsp; sẽ sớm hỗ trợ chạy php trên IIS. Lấy lại đã hỗ trợ nhiều nền tảng và khung mà & nbsp; 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ẽ biến nó thành một giải pháp tuyệt vời cho nhu cầu APM PHP 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à mức độ đơn giản của việc thiết lập nó. Sử dụng Web Pi, bạn có thể có nó hoạt động chỉ trong vài lần nhấp. Cài đặt nó theo cách thủ công là quá khó, và nó cung cấp cho bạn một số điều khiển thêm.

Linux và Apache hoặc Nginx dường như là lựa chọn mặc định cho PHP, nhưng chỉ trong một vài bước, bạn có thể có các ứng dụng PHP của mình chạy trên máy chủ web & nbsp của bạn. Nếu vì bất kỳ lý do gì, bạn không có tùy chọn chạy apache hoặc nginx và cảm thấy bị mắc kẹt với IIS, hoặc bạn chỉ thích IIS, nó không nên ngăn bạn sử dụng sức mạnh của PHP, vẫn là ngôn ngữ phổ biến nhất trên Internet.

  • Thông tin về các Tác giả
  • Bài viết mới nhất

Làm thế nào để tôi có được PHP hoạt động trong IIS?

Tải xuống PHP và tiện ích mở rộng Wincache ..
Cài đặt PHP và Wincache ..
Thêm thư mục cài đặt PHP vào biến môi trường đường dẫn ..
Thiết lập ánh xạ xử lý cho PHP ..
Thêm các mục nhập tài liệu mặc định cho PHP ..
Kiểm tra cài đặt PHP của bạn ..

Làm thế nào cài đặt IIS Trình quản lý PHP?

Đăng ký PHP với IIS Lưu ý rằng bạn cũng có thể cài đặt PHP bằng cách sử dụng Trình cài đặt nền tảng web hoặc Trình cài đặt Windows từ http://windows.php.net/ - Trình quản lý PHP cũng có thể được sử dụng để quản lý các cài đặt PHP đó.Sau khi nhấp vào OK, phiên bản PHP mới sẽ được đăng ký với IIS và sẽ hoạt động.

IIS trong PHP là gì?

Dịch vụ thông tin Internet (IIS) là một máy chủ web có mục đích linh hoạt, linh hoạt từ Microsoft, chạy trên Windows Systems để phục vụ các trang hoặc tệp HTML được yêu cầu.Một máy chủ web IIS chấp nhận các yêu cầu từ các máy khách từ xa và trả về phản hồi thích hợp.a flexible, general-purpose web server from Microsoft that runs on Windows systems to serve requested HTML pages or files. An IIS web server accepts requests from remote client computers and returns the appropriate response.