摘要:確定環(huán)境的干凈。這一步要優(yōu)化的話應(yīng)該是做一個(gè)類似緩存的機(jī)制,對(duì)于這種配置加載的性能提升所以我們?cè)谡{(diào)試必然是要在這里配置環(huán)境的接口。
前言
在網(wǎng)上找了一些相關(guān)配置的例子,覺得很多比較復(fù)雜,并且配置項(xiàng)過于多了,有很多冗余并不是最開始就需要的配置,所以寫一下記錄,也方便以后自己查閱。
一、brew 安裝 php在 Mac OS 這邊不需要手動(dòng)去下載編譯打包,直接使用 brew 進(jìn)行快捷安裝會(huì)比較方便管理,對(duì)于最原始的打包安裝方式也可以,不過需要自己去創(chuàng)建一些 link 所以這里只記載 brew 的方式。
確定 brew 環(huán)境的干凈。
確定 php 版本,這里是用 php54,如果有多版本切換的需求可以安裝 php-version 和 brew-php-select,前者是用 brew 可以安裝,后者依賴 npm。
安裝 php54-xdebug,因?yàn)?xdebug 會(huì)有一個(gè)映射版本。
// 檢測一下 brew 環(huán)境 brew doctor // 升級(jí)一下 brew brew update // 查看 brew 擁有的 tap brew tap // 查看 brew 已安裝的工具 brew ls
doctor => 檢測如下:
tap => 查看如下,主要是看一下 homebrew/php,不然到時(shí)候會(huì)輸入全名比較麻煩:
如果你發(fā)現(xiàn)是用 josegonzalez/php 出錯(cuò),那么就可以 brew untap josegonzalez/php,因?yàn)橹髴?yīng)該都遷移到了統(tǒng)一的 homebrew/php 庫中,然后需要檢查 .zshrc ( 或者 .bashrc ) 文件的 PATH,記得重新修改為 homebrew/php。
brew install php54 php54-xdebug
這里安裝比較簡單,主要是要記得看清楚安裝完后的配置信息提示,重要信息:
php.ini
auto start php
php 相關(guān)的一些路徑
brew 的常規(guī)目錄:
/usr/local/bin /usr/local/etc /usr/local/opt
這里安裝應(yīng)該不會(huì)出現(xiàn)什么問題,接下來配置 Apache 2 這里我用的是 Mac OS 自帶的,如果有 Nginx 玩家也是一樣的。
二、配置 Apachesudo vi /etc/apache2/httpd.conf // 配置需要的解析模塊 LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
這里主要會(huì)出現(xiàn)的問題就是之前已經(jīng)有解析模塊的情況,會(huì)默認(rèn)使用最開始定義的解析模塊,所以需要仔細(xì)查看是否定義重復(fù)了。
接下來是驗(yàn)證一下我們系統(tǒng)的 php 版本號(hào)和 php 解析是否正確:
Apache 的一些具體配置可以查看我之前寫的 Mac OS X 10.9配置AMP環(huán)境
// 默認(rèn) Mac 的 php 位于 /usr/bin/php // 如果這里的版本號(hào)不是 php54,檢查 PATH php -v // curl 一下配置 curl -IL http://127.0.0.1:80 // 正常情況應(yīng)該返回,主要是 php 的版本 HTTP/1.1 200 OK Date: Sun, 21 Aug 2016 19:14:58 GMT Server: Apache/2.4.18 (Unix) PHP/5.4.45 X-Powered-By: PHP/5.4.45 Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: PHPSESSID Content-Type: text/html
當(dāng)然,你也可以在網(wǎng)站目錄建一個(gè) php 文件,然后 phpinfo() 看一下具體配置。
三、配置 php.ini因?yàn)?php 文件是動(dòng)態(tài)的,所以 Web 服務(wù)器必然會(huì)去加載 php 解析器模塊去理解文件,然后 php 的解析器的一些配置在 php.ini 中,所以該解析器就會(huì)去加載這個(gè)文件,最后得到執(zhí)行環(huán)境。(這一步要優(yōu)化的話應(yīng)該是做一個(gè)類似緩存的機(jī)制,對(duì)于這種配置加載的性能提升)
所以我們?cè)谡{(diào)試 php 必然是要在 php.ini 這里配置環(huán)境的接口。直接開始:
; prefix => /usr/local/etc/php/5.4/ ; 該參數(shù)是要加載的 xdebug.so 模塊,具體是 ext 可以到 ; /usr/local/etc/php/5.4/ext 去查看詳情,默認(rèn)會(huì)有擴(kuò)展的目錄 ; 該配置配置于:conf.d/ext-xdebug.ini ; zend_extension = ext/xdebug.so ; 遠(yuǎn)程是否可以用,必須 xdebug.remote_enable = on ; 遠(yuǎn)程的 host,默認(rèn)本地,然后可以配置為 vagrant 的地址 xdebug.remote_host = 127.0.0.1 ; 使用非 9000 默認(rèn)端口,9000 端口我失敗了,所以最好改動(dòng)一下,避免 fuck xdebug.remote_port = 9010 ; 使用 dbgp 做 80 端口代理 xdebug.remote_handler = dbgp ; 這里的 的 key 必須和到時(shí)候 IDE 中的一致 xdebug.idekey = PHPSTORM ; 輸出的日志文件,個(gè)人覺得很重要 xdebug.remote_log = /tmp/xdebug.log
2016-09-05 更新,主要是 xdebug.ini 相關(guān)
相關(guān)報(bào)錯(cuò)信息:
Failed loading ext/xdebug.so: dlopen(ext/xdebug.so, 9): image not found
(1)注釋 php.ini 文件中的 zend_extension = ext/xdebug.so 改到 /usr/local/etc/php/5.4/conf.d/ext-xdebug.ini 中進(jìn)行配置
(2)注釋 ext-xdebug.ini 中 php54-xdebug 的相關(guān)配置
(3)最后 ext-xdebug.ini 中配置如下:
[xdebug] ; prefix => /usr/local/etc/php/5.4/ zend_extension = /usr/local/opt/php54-xdebug/xdebug.so
基本上上面的文件是剛需吧,然后必須要重啟 Apache
sudo apachectl restart四、配置 PhpStorm 工具
先把 xdebug 的監(jiān)聽端口修改
然后設(shè)置 PHP dbgp 代理
這里必須和 php.ini 中的 key id 對(duì)應(yīng)上哦,代理的是服務(wù)器地址和端口號(hào)
設(shè)置 servers 目錄和服務(wù)器信息
這里目錄一定要設(shè)置正確,絕對(duì)目錄映射
對(duì) php 的基本設(shè)置,和 java jar 差不多的東西
(1) 先點(diǎn)開詳情
(2) 選擇 php 的執(zhí)行器目錄
這里我選擇的是軟連接的目錄,這樣比較方便,可以在下面這里找到。
配置結(jié)果,這里還可以檢查一下 php.ini 改動(dòng)正確沒有:
(3) 配置 PHP Web 應(yīng)用的信息,主要是映射地址和默認(rèn)瀏覽器
(4) 啟動(dòng)調(diào)試模式
先打開最右邊像電話一樣的東西(應(yīng)該是連通監(jiān)聽,如果沒有高亮就等一會(huì),phpstorm 初始化)
選擇我們配置的 Php Web Application
點(diǎn)擊爬蟲(調(diào)試按鈕)
(5) 打個(gè)斷點(diǎn)測試一下
雖然比 Node 那邊調(diào)試起來比較麻煩,不過能看到變量和詳細(xì)信息還是值得,原理和 Chrome Listener 基本差不多,大家也可以對(duì)比配置。
原文出自博客:http://www.60sky.com
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/30440.html
摘要:連接容器內(nèi)的進(jìn)行斷點(diǎn)調(diào)試進(jìn)行斷點(diǎn)調(diào)試盡管不像其他語言那樣方便,但是有些是有確實(shí)有其用處,比如調(diào)試循環(huán)內(nèi)的數(shù)據(jù)異常時(shí)。 PhpStorm連接容器內(nèi)的XDebug進(jìn)行斷點(diǎn)調(diào)試 php進(jìn)行斷點(diǎn)調(diào)試盡管不像其他語言那樣方便,但是有些是有確實(shí)有其用處,比如調(diào)試循環(huán)內(nèi)的數(shù)據(jù)異常時(shí)。在php于phpstorm都安裝在同一環(huán)境下時(shí),配置phpstorm的xdebug調(diào)試并不是多困難的事情,但是如果你使...
摘要:痛點(diǎn)如何簡單迅速地初始化一個(gè)全新的開發(fā)環(huán)境呢筆者在嘗試起一個(gè)新項(xiàng)目時(shí),往往會(huì)陷入重新建立一套環(huán)境的繁瑣事當(dāng)中。架構(gòu)本片文章搭建出來的環(huán)境如上圖。網(wǎng)絡(luò)這部分,為了便于配置就手動(dòng)分配了。配置開啟記錄了一般性的查詢?nèi)罩?,便于程序? 痛點(diǎn) 如何簡單迅速地初始化一個(gè)全新的PHP開發(fā)環(huán)境呢? 筆者在嘗試起一個(gè)新web項(xiàng)目時(shí),往往會(huì)陷入重新建立一套Docker環(huán)境的繁瑣事當(dāng)中。我想大家在開始做一個(gè)新...
摘要:痛點(diǎn)如何簡單迅速地初始化一個(gè)全新的開發(fā)環(huán)境呢筆者在嘗試起一個(gè)新項(xiàng)目時(shí),往往會(huì)陷入重新建立一套環(huán)境的繁瑣事當(dāng)中。架構(gòu)本片文章搭建出來的環(huán)境如上圖。網(wǎng)絡(luò)這部分,為了便于配置就手動(dòng)分配了。配置開啟記錄了一般性的查詢?nèi)罩?,便于程序? 痛點(diǎn) 如何簡單迅速地初始化一個(gè)全新的PHP開發(fā)環(huán)境呢? 筆者在嘗試起一個(gè)新web項(xiàng)目時(shí),往往會(huì)陷入重新建立一套Docker環(huán)境的繁瑣事當(dāng)中。我想大家在開始做一個(gè)新...
閱讀 2142·2021-11-23 09:51
閱讀 3405·2021-09-28 09:36
閱讀 1235·2021-09-08 09:35
閱讀 1904·2021-07-23 10:23
閱讀 3390·2019-08-30 15:54
閱讀 3064·2019-08-29 17:05
閱讀 513·2019-08-29 13:23
閱讀 1369·2019-08-28 17:51