柚子快報邀請碼778899分享:phpstorm下調(diào)試功能配置
柚子快報邀請碼778899分享:phpstorm下調(diào)試功能配置
創(chuàng)建WEB服務(wù) 和 PHP Web Page服務(wù)
要在phpstorm下實現(xiàn)調(diào)試,必須要創(chuàng)建一個WEB服務(wù)和一個PHP Web Page服務(wù)。這步很關(guān)鍵,網(wǎng)上很多PHP項目調(diào)試教程這點沒講清楚,只講了debug的相關(guān)配置。導(dǎo)致像我這樣JAVA程序員初學(xué)調(diào)試PHP項目時,習(xí)慣性在ide中只開啟web服務(wù)方式(java Idea只需要開自帶web服務(wù)即可調(diào)試),導(dǎo)致debug一直沒有成功。
WEB服務(wù)
創(chuàng)建web服務(wù)器有2種方式,一種是使用 phpstorm自帶的web服務(wù),一種是外部的Apache或nginx服務(wù)。
phpstorm自帶的web服務(wù)
創(chuàng)建步驟: phpstorm菜單; 運行 ->編輯配置; 在run/Debug Configurations 彈窗,點擊+,選擇PHP Built-in Web Server, 在右邊,填入主機localhost, 端口: 指定一個端口,文檔根路徑為:項目路徑,選到public.
Apache或nginx服務(wù)
最簡單的方式通過phpstudy創(chuàng)建。
創(chuàng)建一個PHP Web Page 服務(wù)
phpstorm菜單; 運行 ->編輯配置; 在run/Debug Configurations 彈窗,點擊+,選擇PHP Web Page, 在Configuration,Server選擇一個Web server,如果沒有,則點中邊上的…按鈕,在彈窗中創(chuàng)建一個。 這個server的主機和端口,需要和上面的WEB服務(wù)器保持一致。選擇一個調(diào)試器。如xdebug.
配置
要實現(xiàn)調(diào)試,要給php解析器加入xdebug插件,以及在項目中配置php解析器及調(diào)試偵聽端口。
php.ini 文件配置
網(wǎng)上下載一個和php版本匹配的xdebug動態(tài)庫,放到php程序根據(jù)下的ext目錄指定動態(tài)庫路徑:zend_extension指定WEB服務(wù)器地址,xdebug.remote_host指定調(diào)試監(jiān)聽端口,xdebug.remote_port開啟調(diào)試:xdebug.remote_enable=1
phpstorm解析器和外部的WEB服務(wù)可以不是同一個php解析器程序,如WEB服務(wù)用php7.2版本 和 PHP Web Page服務(wù)用7.3版,但這個debug配置只需要配置在WEB服務(wù)用的php.ini即可,PHP Web Page服務(wù)的php.ini不需要配置)。
以上配置適合Xdebug.dll 2.7.2版本。新版的Xdebug動態(tài)庫remote_enable、remote_host、remote_port都已改名。
[Xdebug]
zend_extension=E:/Programs/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=On
xdebug.trace_output_dir=E:/Programs/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace
xdebug.profiler_enable=On
xdebug.profiler_output_dir=E:/Programs/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.profiler
xdebug.remote_handler=dbgp
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
phpstorm配置
PHP CLI解析器配置
phpstorm菜單:文件 ->配置;在配置彈窗,選擇"PHP"項,配置PHP CLI解析器,指定php.exe 和php.ini路徑。如果上面的xdebug配置成功,則會在php.ini路徑下方debugger顯示配置的xedebug動態(tài)庫版本號,未正確配置,則顯示為Not installed.
調(diào)試配置
配置項目的php解析器: phpstorm菜單: 文件 ->配置;在配置彈窗,選擇"調(diào)試"項,配置Xdebug的調(diào)試端口。這個端口必須和上面的php.ini中xdebug.client_port保持一致。
調(diào)試操作
開啟web服務(wù)在debug模式下開啟PHP Web Page 服務(wù)。 在代碼位置打斷點,就可以調(diào)試。
Postman調(diào)試接口方式
碰到的問題
瀏覽器端需不需要下載Xdebug Helper插件?
經(jīng)實踐Xdebug Helper在瀏覽器端安裝后,不起作用。不需要安裝。這個插件的原理應(yīng)該在Cookie中加入一個標識PHPSTORM標識。但phpstorm2024.1版本這個標識貌似已改為XDEBUG_SESSION。這個標識的產(chǎn)生是通過啟動PHP Web Page 服務(wù),首次訪問頁面URL自動設(shè)置到Cookie中,如首次訪問地址是http://localhost/?XDEBUG_SESSION_START=12071。 Cookie中XDEBUG_SESSION值即為12071。
在調(diào)試過程中,如果發(fā)現(xiàn)斷點不到問題,可能XDEBUG_SESSION_START值不匹配本次PHP Web Page 服務(wù)的XDEBUG_SESSION值,重新啟動PHP Web Page 服務(wù)就可以。
phpstorm需不需要點擊啟動服務(wù)邊上的,偵聽 debug 連接按鈕,實測可以不啟用。
偽靜態(tài)配置和redirect轉(zhuǎn)發(fā)問題。
在實際訪問時我們需要在url隱藏index.php時,需要進行偽靜態(tài)配置。在代碼中有redirect轉(zhuǎn)發(fā)請求, 生成url會自動加上html后綴, 訪問時會報錯。 如以下代碼會報:The requested URL /public/admin/login.html was not found on this server.
namespace app\admin\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return redirect('account/login');
}
}
Apache或nginx配置htacess,可以解決以上2個問題. (注意:phpstorm自帶web服務(wù)默認開啟隱藏index.php,htacess配置目前還不知道如何配,所以未解決redirect轉(zhuǎn)發(fā)請求報錯問題?。?!)
Apache配置
配置public目錄下創(chuàng)建文件.htacess,加入以下配置
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# mod_fcgid & php-cgi
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
# php5apache2_2.dll
#RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
nginx配置
修改nginx.conf,加入以下配置
server {
listen 80;
server_name localhost;
root "E:/workspace_demo/shop/likeshop/likeshop-app/server/public";
index index.php index.html index.htm;
location / {
root "E:/workspace_demo/shop/likeshop/likeshop-app/server/public";
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ /.*\.php/ {
rewrite ^(.*?/?)(.*\.php)(.*)$ /$2?s=$3 last;
break;
}
location ~ \.php$ {
root "E:/workspace_demo/shop/likeshop/likeshop-app/server/public";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
柚子快報邀請碼778899分享:phpstorm下調(diào)試功能配置
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。