搞php還是五年前了,那會(huì)兒還是在windows系統(tǒng)下,用phpstudy等。最近重新搞php,用Mac發(fā)現(xiàn)很多集成環(huán)境并不好用,phpstudy沒(méi)有Mac版本,xampp雖然免費(fèi)但是很不好用,版本切換很麻煩。MAMP下載下來(lái)有Pro和普通兩個(gè)版本。Pro是付費(fèi)的,注冊(cè)碼$99。普通版和Pro使用差異還是挺大的。試用了兩周MAMP Pro,還挺好用的,只可惜太貴。如果用網(wǎng)上的破解版,需要關(guān)閉Mac的SIP,對(duì)安全性和穩(wěn)定性也有一定影響,所以還是放棄了。最后換到了MxSrvs,初步使用還是挺好用的。
從作者的官方網(wǎng)址下載:http://www.xsrvs.com/index.html
下載完成后,雙擊運(yùn)行pkg文件安裝,默認(rèn)安裝在/Applications/MxSrvs,安裝完成后在命令行中執(zhí)行如下命令,不然會(huì)一直提示組件未受信任,或者通過(guò)系統(tǒng)偏好設(shè)置--安全性與隱私來(lái)打開(kāi)
sudo xattr -r -d com.apple.quarantine /Applications/MxSrvs
MxSrvs軟件默認(rèn)是php7,在代碼審計(jì)過(guò)程中經(jīng)常需要安裝多版本的php。但是從官方網(wǎng)站下載的php安裝包放到/Applications/MxSrvs/bin目錄下會(huì)報(bào)錯(cuò),解決方案可以參考: https://blog.csdn.net/Smell_rookie/article/details/107742458
MxSrvs文件夾結(jié)構(gòu)如下
bin
cache
libs
logs
tmp
www
在MxSrvs官方提供的下載地址中挑選需要的版本:https://590m.com/dir/13710799-25972793-4937e8
例如php文件夾下有php5.6.31、php5.5.38等,mysql文件夾下有mysql5.6.37、mysql5.5.53等。然后放入到/Applications/MxSrvs/bin目錄下
但是換成低版本的php后,例如換成了php5.6.31,無(wú)法訪(fǎng)問(wèn)phpmyadmin,報(bào)錯(cuò):PHP 7.1.3+ is required。根據(jù)選擇的php版本找到合適的phpmyadmin版本(例如此處對(duì)應(yīng)的是phpmyadmin4.9),然后下載對(duì)應(yīng)的文件,解壓到www目錄下,重命名為_phpMyAdmin文件夾。但是訪(fǎng)問(wèn)phpMyAdmin的登陸界面時(shí),輸入用戶(hù)名密碼會(huì)報(bào)錯(cuò)php - mysqli_real_connect(): (HY000/2002): No such file or directory
此時(shí)找到_phpMyAdmin文件夾下的config.sample.inc.php文件,找到Server Parameters部分,加入并修改成如下內(nèi)容??梢杂每彰艽a訪(fǎng)問(wèn)。然后將config.sample.inc.php文件重命名為config.inc.php,重啟服務(wù)器生效。解決方案參考:https://stackoverflow.com/questions/41881123/mysqli-real-connect-hy000-2002-no-such-file-or-directory
/* Server parameters */
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
MxSrvs+phpstorm調(diào)試
進(jìn)入MxSrvs的配置編輯界面,選擇PHP的php.ini,搜索xdebug,在其中加入xdebug.remote_port=9000(此端口號(hào)需要與phpstorm中一致),然后重新啟動(dòng)PHP
[xdebug]
zend_extension = "/Applications/MxSrvs/bin/php/ext/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.var_display_max_depth = 512
xdebug.profiler_append = 1
xdebug.profiler_enable_trigger = 1
xdebug.max_nesting_level = 200
xdebug.profiler_output_dir = "/Applications/MxSrvs/logs/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.remote_port=9000
phpstorm中配置如下,首先在PHP的Debug中配置Xdebug的端口和上述php.ini保持一致

然后配置一個(gè)Server,host和port是Nginx啟動(dòng)的host和端口號(hào)。

Chrome中安裝xdebug插件,然后開(kāi)啟phpstorm的listening
