說說緣由,我的服務器是windows server2012,之前用IIS搭建了兩個項目,但是我現在想在服務器上搭建一個php的項目,於是用了phpstudy集成環境工具部署了php項目,但是發現apache 和IIS出現80端口衝突。網上那些IIS和apache做端口映射的方法太複雜不想用,所以想着直接在IIS上運行php程序。
非IIS環境下,要運行一個php項目,要有以下幾個環境:apache(或tomcat)+php+mysql;所以對於大部分人來說使用phpstudy或者寶塔服務器這種集成環境,可以一鍵安裝部署;
而如果想要在IIS環境下運行PHP項目,除了安裝IIS,還需要單獨安裝php以及mysql。所以我用了一個偷懶的方法,先安裝IIS,然後安裝phpstudy,接下來就開始在IIS中配置PHP環境了。
之前找了幾個不錯的IIS配置php的教程,但是都沒有完全解決我的問題,所以我重新彙總總結一下;
CSDN博客上找到的相關教程,具有參考意義:
2、安裝配置IIS+MySQL+PHP環境的詳細教程(之篇二PHP安裝);
我先在phpstudy集成工具裏面成功部署了我的php項目:
然後我開始按照上述教程配置了一遍,我的配置過程如下:
1、安裝php以及mysql:
先在php管網下載安裝包並解壓,然後複製php.ini-production並改名爲php.ini
php安裝包下載地址:https://windows.php.net/download/ window Server 64位系統請下載: x64 Non Thread Safe 版本。32位請下載 x86 Non Thread Safe版本;
(因爲我安裝的phpstudy已經自動安裝好了php程序(php7.3.4版本),所以我不需要再下載php和mysql,在集成工具中直接找到已安裝好的php目錄即可)
phpstudy下載地址:https://m.xp.cn/
2、IIS添加php項目網站
這一步不再詳細說明,就和常規部署網站一樣的。不會的請參照別的教程;
網站添加完成之後,必須要給網站添加默認文檔”index.php“。否則你直接點擊瀏覽網站,是會報錯的。
具體方法是,選中網站,點擊【默認文檔】進入後,在右上角點擊【添加】然後輸入index.php點擊確定。
3、IIS配置PHP運行環境
IIS左側選擇你剛剛添加的網站,然後雙擊【處理程序映射】
再單擊右側【添加模塊映射】按鈕,在彈出框中填寫如下信息並單擊【確定】按鈕保存。
在彈出的對話框中點擊【是】完成php程序映射的配置。
完成php模塊映射配置之後,還需要配置”FastCGI設置“的參數,IIS左側點擊主目錄進入IIS主頁,然後點擊【FastCGI設置】
然後選擇之前添加的映射模塊路徑,點擊【編輯】,然後再彈出的對話框中,找到【監視對文件所做的更改】項並選擇php程序目錄下的php.ini配置文件;
按照其他教程,按理說應該是完成了配置,於是乎我打開網站,發現報了一個404.3的錯誤,壓根就沒法訪問;
4、解決404.3報錯問題
於是乎我又按照我之前提到過的教程檢查了一遍。另一篇文章中提到需要修改php網站項目目錄下生成的web.config。於是我照着做,發現還是不對。經過反覆檢查,才發現原來web.config文件中少了個【*】;
原配置文件是這樣:
<handlers>
<add name="php" path=".php" verb="*" modules="FastCgiModule" scriptProcessor="C:\phpstudy_pro\Extensions\php\php7.3.4nts\php-cgi.exe" resourceType="File" />
</handlers>
只需要在path=".php"改爲path="*.php",加上一個【*】通配符即可;
如果你的web.config目錄下沒有下面這段配置,請添加上:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\php7.3.4\php-cgi.exe" resourceType="File" requireAccess="Script" />
</handlers>
<defaultDocument>
<files>
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
配置文件中對應的含義如下:
保存好web.config配置文件,然後再次打開網站就可以訪問了。
如果你的php網站項目涉及到僞URL規則的,可以把phpstudy中已生成好的配置拷貝到web.config中即可。