前言
最近有空整理一下php 在windows上面的環(huán)境配置。原因是發(fā)現(xiàn)網(wǎng)上大多數(shù)php環(huán)境配置的相關(guān)帖子內(nèi)容凌亂、多數(shù)是不能配置成功的。所以決定全部走一遍配置,以確保整個過程是成功的。并在此基礎(chǔ)上開個帖子記錄下這個完整的安裝和配置過程,以備忘和供有需要的同學(xué)參考。
1. PHP 的下載、安裝和配置
1.1 下載 php
官方下載地址:https://windows.php.net/downloads/releases/
我這里沒有下載最新版,而是 php-7.4.33-Win32-vc15-x64.zip
1.2 安裝 php
將下載的 zip 壓縮包解壓到安裝目錄: E:\Software\PHProgram\PHP
(我的位置)
1.3 配置 php 系統(tǒng)變量
將 PHP 的安裝目錄(如 E:\Software\PHProgram\PHP)添加到 系統(tǒng)變量 的 Path
變量中:
1.4 配置 php.ini
將 PHP 目錄下的php.ini-development
,復(fù)制一份并重命名為 php.ini
,作為PHP的配置文件。
編輯php.ini文件:
-
設(shè)置PHP擴(kuò)展包的具體目錄
找到:
; On windows: ; extension_dir = “ext”
修改為:
; On windows: extension_dir = “E:\Software\PHProgram\PHP\ext”
-
開啟相應(yīng)的庫功能
搜索 “
;extension=
”,定位并開啟所需的庫功能:
-
設(shè)置時區(qū)
找到
;date.timezone =
修改為:
date.timezone = Asia/Shanghai
-
檢查是否安裝成功
cmd 中輸入檢查版本的命令:
php -v
2. Apache 的下載、安裝和配置
2.1 下載 Apache
安裝包官方下載地址:https://www.apachelounge.com/download/VS16/
下載的 ZIP 文件是:httpd-2.4.57-win64-VS16.zip
2.2 安裝 Apache
將下載的zip 文件解壓到 E:\Software\PHProgram\Apache-2.4.57\Apache24
2.3 修改配置 Apache
找到 Apache24\conf
目錄下的 httpd.conf
文件,用記事本打開,并轉(zhuǎn)到 Define SRVROOT
“c:/Apache24”
修改為:
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
Define SRVROOT "E:\Software\PHProgram\Apache2.4.57\Apache24"
ServerRoot "${SRVROOT}"
#
# Mutex: Allows you to set the mutex mechanism and mutex file directory
2.4 指定服務(wù)端口(非必須)
定位到 Listen 80
,改為其它端口
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 8888
#
# Dynamic Shared Object (DSO) Support
Apache
默認(rèn)端口為80
,為避免端口沖突,可修改為其他端口。如使用默認(rèn)80端口,則通過http://localhost
即可訪問,如使用修改后的端口,則必須加端口號:如http://localhost:8888
2.5 配置系統(tǒng)變量
2.6 安裝服務(wù)
必須以 管理員身份 運行 cmd
,然后進(jìn)入 Apache\bin
目錄
C:\WINDOWS\system32> e:
E:\> cd Software\PHProgram\Apache-2.4.57\Apache24\bin
E:\Software\PHProgram\Apache-2.4.57\Apache24\bin> httpd -k install -n Apache2.4
如果要移除服務(wù):cmd 中輸入
sc delete Apache2.4
后回車
2.7 Apache 環(huán)境開啟 htaccess 偽靜態(tài)(可選)
-
什么是偽靜態(tài) ?
偽靜態(tài)其實是相對真實靜態(tài)來講的,偽靜態(tài)只是改變了URL的顯示形式,實際上還是一個動態(tài)的頁面。偽靜態(tài)的頁面后綴可以是html
、htm
或者是目錄格式等。像thinkphp
等框架的pathinfo
模式,也是偽靜態(tài)的一種。 -
為什么要用偽靜態(tài) ?
Ⅰ為了seo
優(yōu)化,偽靜態(tài)有利于搜索引擎的收錄,能夠增加網(wǎng)站優(yōu)化效果;
Ⅱ 為了讓URL
看起來更簡單,更加友好易讀,也給人一種專業(yè)性的感覺。
Apache 服務(wù)器上開啟和通過.htaccess
文件來配置偽靜態(tài):
1)在 Apache 配置文件httpd.conf
中啟用Rewrite
打開httpd.conf
,定位到代碼:
#LoadModule rewrite_module modules/mod_rewrite.so
2)把前面#
去掉。沒有則添加,但必須獨占一行,以使 apache 支持 mod_rewrite
模塊。
LoadModule rewrite_module modules/mod_rewrite.so
3)繼續(xù)在 httpd.conf
搜索定位 AllowOverride
,并把后面的參數(shù)從None
全部改成All
4)配置.htaccess
偽靜態(tài)規(guī)則
-
在要啟用偽靜態(tài)的項目的根目錄(如
www
)下建立.htaccess
文件 -
在
.htaccess
文件中輸入以下內(nèi)容(或開源項目本身指定的內(nèi)容)< IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f #RewriteRule RewriteRule index.html$ index.php #RewriteRule ^(.*?).html$ index.php?$1.html [QSA,PT,L] #RewriteRule ^/index([0-9]*).html$ /index.php?id=$1 #更多偽靜態(tài)規(guī)則 < /IfModule>
2.8 啟動服務(wù)
-
方式一
打開Apache/bin
目錄下的ApacheMonitor.exe
啟動Apache
; -
方式二
服務(wù) >> Apache 2.4 右鍵 啟動
測試是否安裝成功:
在瀏覽器中輸入HTTP://localhost:8888(此處8888是我選擇的端口)驗證服務(wù)是否成功搭建
或者查看系統(tǒng)服務(wù):
安裝成功!
3. 整合 PHP、Apache
3.1 配置 apache 支持 php
1)打開 Apache24\conf
目錄下的配置文件 httpd.conf
,并定位到:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
2)在下方添加:
LoadModule php7_module "E:/Software/PHProgram/PHP/php7apache2_4.dll"
PHPIniDir "E:/Software/PHProgram/PHP"
AddType application/x-httpd-php .php .html .htm
注:這里安裝的是
PHP7
,假如是PHP8
,則應(yīng)相應(yīng)地?fù)Q成php8_module
、php8apache2_4.dll
等
3.2 修改網(wǎng)站默認(rèn)首頁
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
4)改為:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
3.3 修改Apache 默認(rèn)的站點目錄
1)在 E:\Software\PHProgram
下,新建 一個名為 www
的文件夾,做為網(wǎng)站根目錄;
2)在 httpd.conf
中,找到如下代碼:
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
修改為:
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "E:\Software\PHProgram\www"
<Directory "E:\Software\PHProgram\www>
此目錄即為打開 http://localhost:8888
時的根目錄,可在該目錄創(chuàng)建index.php
,用于默認(rèn)訪問的 php
文件。
3.4 測試 php 網(wǎng)站
在 www
目錄下,新建文件index.php
,寫入以下內(nèi)容:
<?php
phpinfo();
?>
然后打開http://localhost:8888
,如果顯示PHP
版本及配置信息,則表示配置成功!
4. 安裝 php 依賴管理工具:Composer
Composer
是 PHP 開發(fā)必不可少的工具之一,可有效減少依賴包下載和管理的煩惱。
4.1 下載 Composer
官方下載地址:https://getcomposer.org/download/,
也可點擊 這里 直接下載(不打開下載頁)
4.2 安裝 Composer:方式一
1)檢查/修改配置文件
在 php 安裝目錄中找到 php.ini 文件,用記事本打后定位到
;extension=openssl
去掉前面的“;
”(分號)以啟用配置
extension=openssl
2)雙擊運行 Composer-Setup.exe
程序會在每次執(zhí)行時安裝最新的 Composer 版本,后面一步步安裝即可。
3)檢查是否安裝成功
然后等待安裝完成,重新打開 命令行窗口,輸入命令檢查是否安裝成功:
Microsoft Windows [版本 10.0.22621.1555]
(c) Microsoft Corporation。保留所有權(quán)利。
C:\Users\pro>composer --version
Composer version 2.5.5 2023-03-21 11:50:05
當(dāng)然,也可以按照官方文檔的方式進(jìn)行安裝,見方式二。
4.3 安裝 Composer:方式二
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01 eae') { echo '安裝程序驗證'; } else { echo '安裝程序損壞'; unlink('composer-setup. php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
4.4 更改 Composer 鏡像
因為國外網(wǎng)站訪問比較慢,這里介紹安裝Composer 鏡像。
1)阿里云 Composer 鏡像 【推薦
】
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
2)騰訊云 Composer 鏡像
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
3)華為云 Composer 鏡像
composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/
4)安暢云 Composer 鏡像
composer config -g repo.packagist composer https://php.cnpkg.org/
5. VsCode 配置
VsCode
是用的比較多的開發(fā) PHP 的工具,進(jìn)行配置之后要比Jerbrian
家的IDE
要方便很多。
5.1 安裝 vs code 插件
在vs code插件商店中,搜索并安裝相關(guān)的組件:
Composer
PHP 語言支持
-
PHP Debug
(后面需要做進(jìn)一步的設(shè)置) PHP Extendsion Pack
-
Php IntelliSense
注:Vs code 安裝 debug 插件后,需要在 settings.json
中進(jìn)行設(shè)置,即在最外層大括號下面,添加以下兩個php.exe
所在的路徑:
{
// "settingsSync.ignoredExtensions": [
// ],
"php.validate.executablePath": "E:/Software/PHProgram/PHP/php.exe",
"php.debug.executablePath": "E:/Software/PHProgram/PHP/php.exe"
}
5.2 下載和配置 Xdebug 庫
Xdebug
,是一個 PHP 插件,可用于單步調(diào)試 / 輸出調(diào)試等,配合VS Code的插件,功能十分強大,可滿足日常大多數(shù)環(huán)境需求。
插件功能包括:
- 遠(yuǎn)程監(jiān)聽調(diào)試
- 本地單文件調(diào)試
- 本地瀏覽器調(diào)試
一般前兩個功能使用較多,小腳本使用第二個功能,網(wǎng)站類代碼推薦監(jiān)聽調(diào)試。
準(zhǔn)備下載與當(dāng)前 php 版本、當(dāng)前系統(tǒng)相對應(yīng)的 Xdebug
版本
打開 版本選擇 網(wǎng)頁:
1) cmd 中運行以下命令
php -i
2)運行后,復(fù)制cmd中得到的 phpinfo()
的完整輸出信息:
phpinfo()
PHP Version => 7.4.33
$_SERVER['argv'] => Array
(
)
... ...
3)打開上面提供的這個 版本選擇 鏈接,并粘貼到此網(wǎng)頁中的多選文本框中,然后提交。
4)下載 Xdebug
提交后,網(wǎng)站會根據(jù)已提交的信息,自動為您推薦當(dāng)前PHP版本、系統(tǒng)環(huán)境匹配的Xdebug
庫。然后就可下載該 xdebug.dll
庫文件
5)將下載的 php_xdebug-3.1.6-7.4-vc15-x86_64.dll
復(fù)制到 E:\Software\PHP_Program\PHP\ext
擴(kuò)展目錄下
并將文件php_xdebug-3.1.6-7.4-vc15-x86_64.dll
重命名為 php_xdebug.dll
6)修改 E:\Software\PHProgram\PHP
目錄下的 php.ini
配置文件
在php.ini
文件末尾加上以下代碼并保存:
[XDebug]
zend_extension=php_xdebug.dll
xdebug.output_dir="E:\Software\PHProgram\tmp\xdebug"
; xdebug 監(jiān)聽地址(Xdebug3寫法,2的名稱為 remote_host)
xdebug.client_host="127.0.0.1"
xdebug.client_port=9003
xdebug.remote_handler=dbgp
xdebug.start_with_request = yes
xdebug.idekey = Vscode
xdebug.collect_return = On
xdebug.mode = debug
; 本機(jī)調(diào)試,Xdebug3新增設(shè)置
xdebug.discover_client_host = On
注:
1、修改php.ini
文件后,必須重啟Apache
服務(wù)才能生效;
2、本文安裝的Xdebug
基于版本3x
。如果是2x
,那么php.ini
中的 [Xdebug] 的配置項不同,具體請看官網(wǎng)文檔
【Xdebug3
和Xdebug2
配置項變化較大(3的配置項在2的基礎(chǔ)上有移除、改名或新增等),更多配置請參考官方文檔(很多網(wǎng)上的配置都是錯的)】
7)cmd
命令提示符下測試xdebug
安裝是否成功:
-
php --version
命令Microsoft Windows [版本 10.0.22621.1555] (c) Microsoft Corporation。保留所有權(quán)利。 C:\Users\pro> php --version PHP 7.4.33 (cli) (built: Nov 2 2022 16:00:55) ( ZTS Visual C++ 2017 x64 ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick Rethans C:\Users\pro>
-
網(wǎng)頁中輸出
phpinfo()
信息www
(網(wǎng)站要目錄)下的index.php
文件:<?php phpinfo(); ?>
瀏覽器訪問 http://localhost:8888 :
出現(xiàn) Xdebug,說明安裝成功 !如果
phpinfo
有XDebug
,cmd
下沒有,請檢查環(huán)境變量設(shè)置是否正確
8)Vs code
中 php 的 debug
插件配置
-
在網(wǎng)站根目錄www下,新建一個
test.php
文件(用于debug
插件的配置測試),并編寫以下內(nèi)容:<?php for ($i = 0; $i < 10; $i++) { echo $i; } ?>
-
在有打開的 php 文件的情況下(如
test.php
),單擊 VSCode 左側(cè)列表的【運行和調(diào)試】圖標(biāo)
再點擊【創(chuàng)建launch.json
文件】按鈕此時,即自動創(chuàng)建
.vscode
文件夾并將launch.json
保存到www/.vscode/
路徑下。生成的
launch.json
文件中的配置項如下:{ "version": "0.2.0", "configurations": [ { "name": "Launch built-in server and debug", "type": "php", "request": "launch", "runtimeArgs": [ "-S", "localhost:8888", "-t", "." ], "port": 9003, "serverReadyAction": { "action": "openExternally" } }, { "name": "Debug current script in console", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "externalConsole": false, "port": 9003 }, { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003 } ] }
注:
Listen for Xdebug
項的port
屬性,需要與php.ini
配置文件中相同;Xdebug
的默認(rèn)調(diào)試端口已從9000
更改為9003
。
5.3 調(diào)試運行 debug
1)選擇運行和調(diào)試右邊的下拉框,選擇調(diào)試模式(如,選擇 Listen for Xdebug
),程序里打上斷點;
2)按 F5 開始調(diào)試(也可按調(diào)試按鈕);
3)打開瀏覽器訪問 http://localhost:8888/test.php
此時頁面尚不能正常加載(轉(zhuǎn)圈)
4)繼續(xù)按 F5 調(diào)試,直到程序跑完,就會看到頁面加載好全部內(nèi)容
php.ini
中,xdebug.mode = debug
的使用場景為需要斷點調(diào)試的時候。
但有時程序本身沒問題,只是想看看性能和各個地方的耗時情況,則將 ’debug
‘模式換成 trace
(耗時)或 profile
(性能) 模式。
如:
-
trace
,修改 php.inixdebug.mode = trace
在Vscode 調(diào)試模式名稱下拉框中,選“
Debug current script in console
”,去掉php程序中所有斷點,此時按一下 F5 程序就執(zhí)行完畢,然后找到目錄E:\Software\PHProgram\tmp\xdebug
(php.ini中配置的目錄),能看到多出了一個類似trace.xxxxx.xt
這樣的文件。 -
profile
(同理,略)本地開發(fā)時,一般同時開啟兩個,即
xdebug.mode = debug,profile
說明:允許以逗號分隔
xdebug.mode
的值,作為標(biāo)識符來同時啟用多個模式
6. MySQL在Windows 環(huán)境中的安裝
參見我的另一篇文章 MySQL在Windows 環(huán)境中的安裝
7. 附:Xdebug3 參數(shù)說明
7.1 xdebug.mode
此設(shè)置控制啟用哪些Xdebug功能。
接受以下值:
值 | 說明 |
---|---|
off |
沒有啟用任何功能。Xdebug 除了檢查功能是否已啟用外不起作用。如果您想要接近零的開銷,請使用此設(shè)置。 |
develop |
啟用包括重載的var_dump() 在內(nèi)的開發(fā)幫助。 |
coverage |
使Code Coverage Analysis 能夠生成代碼覆蓋率報告,主要是與PHPUnit 結(jié)合使用 。 |
coverage |
使Code Coverage Analysis 能夠生成代碼覆蓋率報告,主要是與PHPUnit 結(jié)合使用 。 |
debug |
啟用步驟調(diào)試。這可用于在代碼運行時逐步檢查代碼,并分析變量的值。 |
gcstats |
使垃圾收集統(tǒng)計信息能夠收集有關(guān)PHP的垃圾收集機(jī)制的統(tǒng)計信息。 |
profile |
啟用性能分析,您可以使用它通過KCacheGrind 之類的工具分析性能瓶頸。 |
trace |
啟用功能跟蹤功能,該功能允許您記錄每個函數(shù)調(diào)用,包括參數(shù),變量賦值以及在對文件的請求期間進(jìn)行的返回值。 |
以"
,
"(逗號)分隔xdebug.mode
的值作為標(biāo)識符來同時啟用多個模式xdebug.mode=develop,trace
。
還可以通過XDEBUG_MODE
在命令行上設(shè)置環(huán)境變量來設(shè)置模式,這樣優(yōu)先于xdebug.mode
設(shè)置。
7.2 start_with_request
在CLI
模式下,PHP腳本可以被輕松的調(diào)試,但是在fastcgi
模式下,xdebug
在何種情況攔截請求并觸發(fā)調(diào)試呢,實際上一套WEB API 只有極少有性能瓶頸的API才需要被debug,每個接口都去記錄profile
是沒必要的(此配置的意義)
值 | 說明 |
---|---|
yes |
該功能在 PHP 請求啟動時以及運行任何 PHP 代碼之前啟動。例如,xdebug.mode = trace 和 xdebug.start_with_request = yes 啟動整個請求的功能跟蹤。 |
no |
請求開始時,該功能未激活。你仍然可以調(diào)用函數(shù)xdebug_start_trace() 來啟動 trace ;調(diào)用xdebug_break() 開始逐步調(diào)試;調(diào)用xdebug_start_gcstats() 來做垃圾收集統(tǒng)計。 |
trigger |
1)僅當(dāng)請求開始時存在特定觸發(fā)條件時,才激活該功能。觸發(fā)器的名稱是(大寫)XDEBUG_TRIGGER ,而Xdebug 會去檢查一下變量中($_ENV ,$_GET ,$_POST ,$_COOKIE )是否有這個字段;2)功能特定的觸發(fā)器名稱也有一個舊式的備用名稱:( XDEBUG_PROFILE 對應(yīng)于 Profiling ),(XDEBUG_TRACE 對應(yīng)于 Function Trace )和 (XDEBUG_SESSION 對應(yīng)于 Step Debugging );3)也可以通過進(jìn)行步驟調(diào)試的調(diào)試會話管理 XDEBUG_SESSION_START 。4)使用 xdebug.trigger_value 可以控制哪個特定的觸發(fā)器值將激活該觸發(fā)器。如果xdebug.trigger_value 設(shè)置為空字符串,則將接受任何值:示例: http://localhost:8000/test.php?XDEBUG_TRIGGER
|
default |
該default值取決于xdebug.mode :debug :trigger gcstats :no profile :yes trace :trigger
|
文章來源:http://www.zghlxwxcb.cn/news/detail-858463.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-858463.html
到了這里,關(guān)于Windows 11 本地 php 開發(fā)環(huán)境搭建:PHP + Apache + MySQL +VSCode 安裝和環(huán)境配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!