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