原文鏈接:https://www.apachelounge.com/viewtopic.php?t=2394
注:這是在某Apache論壇上看到的教程,內容是關於如何在Windows操作系統鍾設置Apache和PHP,最終使PHP得以在Apache這一Web服務器軟件上運行。下文的許多內容是對上述鏈接內容的翻譯,目的是為大家提供參考。
該安裝教程針對Windows系統,目的是為了建立本地服務器(可理解為localhost)。
能讓PHP在Apache上成功運行的方法有很多鍾,網上能找到許多,據原文的作者稱,他所介紹的方法屬於比較簡單直接的配置方法。
對於Apache 2.4.x版本,在開始前,先下載安裝VC++ redistribute,下載地址:
64位:https://aka.ms/vs/15/release/VC_redist.x64.exe
32位:https://aka.ms/vs/15/release/VC_redist.x86.exe
一、刪除原有的Apache和PHP
由於原文作者使用解壓壓縮包的方式安裝Apache,為保證后續安裝不出錯,在此建議:如果之前你已經通過運行MSI安裝包的方式安裝了Apache,請通過以下步驟刪除Apache服務並卸載(或刪除)Apache軟件和PHP:
1. 以管理員身份運行命令提示符(或Windows Powershell),將目錄定位至Apache安裝目錄的bin子目錄下;
2. 用以下命令刪除Apache服務:
httpd -k uninstall
3. 最后再卸載或刪除Apache和PHP的文件夾即可。
二、安裝Apache
1. 下載Apache壓縮包,可在此下載:http://www.apachelounge.com/download/
2. 將壓縮包解壓縮到諸如C:\Apache或D:\Apache的目錄下;
3. 以管理員身份運行命令提示符,將目錄定位至Apache安裝目錄的bin子目錄下;
4. 輸入如下命令並回車:
httpd
如無意外,在輸入命令后,Apache將會啟動。在瀏覽器上輸入http://localhost會顯示"It Works!"字樣。如此,Apache的安裝已經完成,下一步是配置PHP於Apache上。在此之前,先在剛剛啟動Apache的命令行中長按Ctrl再按C,松開后即可關閉Apache服務。
三、配置PHP
1. 下載PHP7,可從以下地址下載: http://windows.php.net/download/,同樣也是下載壓縮包;
2. 將壓縮包解壓縮,將其中的內容放在諸如C:\PHP7或D:\PHP7鍾,盡量不要在Apache的根目錄下建立文件夾存放PHP的解壓文件;
3. 在這里,PHP是通過mod_fcgid模塊配置的(也可以說是通過mod_fcgid模塊將Apache和PHP"連接"起來)。在用到mod_fcgid模塊之前,我們先對PHP做一些配置上的改動:
(1)找到剛才解壓縮的PHP文件夾,用文本編輯器打開里面的php.ini-production文件,找到以";extension_dir"開頭的那一行,如下圖所示:
我這里已經把注釋符號";"刪掉了,在等號后面加上PHP文件夾中ext文件夾的絕對路徑,我這里是把PHP解壓到了D盤,因此,我的路徑就是"D:\php\ext"。
(2)在這個文件里還能激活數據庫MySQL和MySQLi插件,激活的方法就是把最前面的";"刪掉,這里建議把數據庫的插件激活,分別是:
extension=mbstring extension=mysqli extension=pdo_mysql
同時建議把op cache也激活,可在文件中添加以下語句:
zend_extension=php_opcache.dll
然后找到下面的文本,等號后面改成"On"或者1:
opcache.enable=On opcache.cli_enable=On
(3)最后,將這個文件另存為php.ini,保存的位置不變。
將命令行定位置PHP文件的根目錄下,運行:
php -m
如無意外,PHP將運行,你會看到被載入的模塊列表。
四、用mod_fcgid模塊將Apache和PHP連接起來
(1)先下載mod_fcgid模塊,下載地址:
64位:https://www.apachelounge.com/download/VC15/modules/mod_fcgid-2.3.9-win64-VC15.zip
32位:https://www.apachelounge.com/download/VC15/modules/mod_fcgid-2.3.9-win32-VC15.zip
(2)將其中的mod_fcgid.so放到Apache根目錄下的modules文件夾中;
(3)編輯httpd.conf文件,該文件位於Apache根目錄下的conf文件夾中。在文件的末尾續上:
LoadModule fcgid_module modules/mod_fcgid.so <IfModule fcgid_module> FcgidMaxProcesses 300 FcgidMaxProcessesPerClass 300 FcgidOutputBufferSize 65536 FcgidConnectTimeout 10 FcgidProcessLifeTime 0 FcgidMaxRequestsPerProcess 0 FcgidMinProcessesPerClass 0 FcgidFixPathinfo 0 FcgidProcessLifeTime 0 FcgidZombieScanInterval 20 FcgidMaxRequestLen 536870912 FcgidIOTimeout 120 FcgidTimeScore 3 FcgidPassHeader Authorization FcgidInitialEnv PHPRC "C:\\php7" # 改成你的PHP根目錄,這條注釋一定要刪除,不然會出錯 FcgidInitialEnv PATH "C:\\php7;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;" # 改成你的PHP根目錄,這條注釋一定要刪除,不然會出錯 FcgidInitialEnv SystemRoot "C:\\Windows" FcgidInitialEnv SystemDrive "C:" FcgidInitialEnv TEMP "C:\\WINDOWS\\TEMP" FcgidInitialEnv TMP "C:\\WINDOWS\\TEMP" FcgidInitialEnv windir "C:\\WINDOWS" <Files ~ "\.php$"> Options Indexes FollowSymLinks ExecCGI AddHandler fcgid-script .php FcgidWrapper "C:/php7/php-cgi.exe" .php # 改成你的PHP根目錄,這條注釋一定要刪除,不然會出錯 </Files> </IfModule>
然后保存,開啟Apache服務。
(4)另外,在上面的httpd.conf文件中,還能更改Apache服務的端口,只要在如下位置,改成你想要的設置的端口即可:
改成這樣以后,如果是本地服務器,開啟Apache服務后,可以通過localhost:8181看到"It Works"字樣。
(5)在PHP文件夾中的php.ini中,查找並激活下面的一行,后保存:
cgi.fix_pathinfo = 1
五、安裝Apache服務
為了方便,不妨將httpd.exe添加到系統路徑中,這樣就不用每次都將命令符定位至Apache根目錄下。
在命令行中運行以下命令安裝Apache服務:
httpd -k install
如此,含有PHP代碼的html文件就可以在依托Apache服務運行了。當然,html文件要存放在Apache根目錄下的htdocs文件夾下才行。例如,如果完全按照上面的設置,要訪問hello.html頁面,則可以在瀏覽器的地址欄中輸入localhost:8181/hello.html即可訪問。
關於如何在此基礎上安裝MySQL和phpMyadmin將在后續更新。