PHPStorm 調(diào)試 laradock

一. 準備開發(fā)環(huán)境

最近學習 laravel唧躲,發(fā)現(xiàn)MVC 的概念和 Asp.net 很類似。不想把本機的環(huán)境搞得混亂,找到了 laradock 的這個好東西。(P.S.?自從有了 docker拌消,各種開發(fā)環(huán)境的搭建就變得非常簡單了。)

按照 laradock.io 的說明安券,很容易就把開發(fā)環(huán)境搭建好了墩崩。第一部分簡單記錄下搭建步驟。

我的是 Mac 系統(tǒng)侯勉,打開終端鹦筹,進入某個目錄(e.g. /Users/<user>/)。然后clone laradock壳鹤。

1.?git clone https://github.com/Laradock/laradock.git

進入 laradock 目錄(/Users/<user>/laradock/)盛龄。后面很多命令都需要在這里運行的饰迹。

2. cp env-example .env

然后打開.env 文件芳誓,修改 APPLICATION 的值,指向希望存放代碼的目錄啊鸭,相對路徑或絕對路徑都可以(e.g. /Users/<user>/projects)

3. docker-compose up -d nginx mysql redis phpmyadmin

通過 docker-compose 來啟動項目需要的模塊(每個模塊是單獨的 docker 容器)锹淌。workspace和 php-fpm 會自動運行的,所以不需要指定赠制。這里我需要運行 nginx, mysql, redis 以及 mysql 的管理工具赂摆。

如果在瀏覽器輸入 http://localhost 會提示404挟憔。為了測試環(huán)境是否正確,可以在 APPLICATION 指定的目錄(/Users//projects)下面創(chuàng)建 public子目錄烟号,里面放一個 index.php 文件绊谭,這樣 http://localhost 就能訪問到了。

不過我們想要 laravel 框架汪拥,所以需要進入 workspace 容器里面达传,創(chuàng)建基于 laravel 的工程。

4.?docker-compose exec --user=laradock workspace bash

現(xiàn)在你會發(fā)現(xiàn)已經(jīng)進入了 workspace 的容器了迫筑,并且用戶是 laradock宪赶。當前的目錄是/var/www。這個目錄正好是 host 機器里面的/Users/<user>/projects 一個映射「迹現(xiàn)在可以創(chuàng)建項目了搂妻,輸入命令

5. composer create-project laravel/laravel coolapp

這里的 coolapp 是項目的名字,可以隨意指定辕棚。如果像我一樣等了很久也沒有反應的話欲主。先通過 ctrl+c 結束命令。需要先設置國內(nèi)的鏡像逝嚎。執(zhí)行如下命令:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

composer create-project laravel/laravel coolapp?

輸入 exit 退出 workspace容器岛蚤,你會發(fā)現(xiàn)/Users/<user>/projects 下面多了一個 coolapp 的目錄。還是在 laradock 目錄里面懈糯,執(zhí)行如下命令先停止容器涤妒。

6. docker-compose down

修改一下.env 里面APPLICATION 的值為/Users/<user>/projects/coolapp。然后可以再次啟動

7. docker-compose?up -d nginx mysql redis phpmyadmin

再瀏覽器里面輸入 http://localhost 就能發(fā)現(xiàn) Laravel 頁面了赚哗。

二. 通過 PHPStorm 調(diào)試 PHP

以前用慣了 Visual Studio她紫,發(fā)現(xiàn)能調(diào)試是一件很幸福的事。laradock 本身是支持 xdebug 的屿储,需要修改一些配置贿讹。

1. 打開.env 文件,修改下面的值够掠。

WORKSPACE_INSTALL_XDEBUG=true

PHP_FPM_INSTALL_XDEBUG=true

2. 修改Laradock/PHP-FPM/xdebug.ini 以及 Laradock/workspace/xdebug.ini文件民褂,修改或添加如下的內(nèi)容:

xdebug.remote_enable=1

xdebug.remote_host=docker.for.mac.localhost

xdebug.remote_port=9000

xdebug.remote_autostart=1

xdebug.remote_connect_back=0

xdebug.remote_handler=dbgp

xdebug.max_nesting_level=250

xdebug.remote_log=”/var/www/xdebug_logs/xdebug_docker.log”

需要說明的是,remote_host 設置的是 docker 容器所在主機的地址疯潭。我的 host 是 Mac赊堪,所以可以用 docker.for.mac.localhost。如果是 windows竖哩,需要用 docker 中可以訪問的主機 ip 地址哭廉。

3. 接下來需要重新 build 容器

docker-compose build workspace php-fpm

我在 build 的時候遇到了如下的錯誤,不能下載 xdebug安裝相叁。

?--->

Running in 2c241ea48d1f

No releases available for package

"pecl.php.net/xdebug"

install failed

ERROR: Service 'php-fpm'

failed to build: The command '/bin/sh -c if [ ${INSTALL_XDEBUG} = true ]; then ? ? pecl install

xdebug && ? ? docker-php-ext-enable xdebug ;fi' returned a non-zero code: 1

后來發(fā)現(xiàn)連上 VPN 就可以了成功 build 了遵绰。

4. 重啟容器

docker-compose down && docker-compose up -d nginx mysql redis phpmyadmin

5. 打開 PHPStorm辽幌,進入Preferences->Language & Frameworks->PHP->Servers,新建一個 server,這里取名 php-fpm。

Host 里面填入 laradock拱层。這是因為laradoc/.env 文件里面有一行設置了 serverName。

### Remote Interpreter ####################################

# Choose a Remote Interpreter entry matching name. Default is `laradock`

PHP_IDE_CONFIG=serverName=laradock

然后設置 host 機器里面的代碼目錄以及與server 的映射( /var/www)逛犹。

6. 配置 Run->Edit Configuration如下圖。

7.?點擊電話那個按鈕啟動監(jiān)聽梁剔,然后按下小蟲子開始 debug虽画。

8. 在瀏覽器里面輸入 URL,比如 http://localhost∪俨。現(xiàn)在就可以調(diào)試了码撰。

9. 有的時候不想調(diào)試的話,可以在 laradock 目錄下面執(zhí)行

./php-fpm/xdebug stop

需要調(diào)試的時候通過./php-fpm/xdebug start 開啟个盆。

最后說一下如何訪問phpmyadmin脖岛。在瀏覽器里面輸入 http://localhost:8080。

服務器填寫 mysql颊亮,用戶名和密碼默認都是 root.


References:

https://medium.com/full-stack-development/laradock-xdebug-ms-code-no-problem-35a4338deb3f

http://ukagaka.github.io/php/2017/08/05/LaraDock.html

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柴梆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子终惑,更是在濱河造成了極大的恐慌绍在,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雹有,死亡現(xiàn)場離奇詭異偿渡,居然都是意外死亡,警方通過查閱死者的電腦和手機霸奕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門溜宽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人质帅,你說我怎么就攤上這事适揉。” “怎么了煤惩?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵嫉嘀,是天一觀的道長。 經(jīng)常有香客問我盟庞,道長吃沪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任什猖,我火速辦了婚禮票彪,結果婚禮上,老公的妹妹穿的比我還像新娘不狮。我一直安慰自己降铸,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布摇零。 她就那樣靜靜地躺著推掸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驻仅。 梳的紋絲不亂的頭發(fā)上谅畅,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音噪服,去河邊找鬼毡泻。 笑死,一個胖子當著我的面吹牛粘优,可吹牛的內(nèi)容都是我干的仇味。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼雹顺,長吁一口氣:“原來是場噩夢啊……” “哼丹墨!你這毒婦竟也來了?” 一聲冷哼從身側響起嬉愧,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤贩挣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后没酣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揽惹,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年四康,在試婚紗的時候發(fā)現(xiàn)自己被綠了搪搏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡闪金,死狀恐怖疯溺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哎垦,我是刑警寧澤囱嫩,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站漏设,受9級特大地震影響墨闲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郑口,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一鸳碧、第九天 我趴在偏房一處隱蔽的房頂上張望盾鳞。 院中可真熱鬧,春花似錦瞻离、人聲如沸腾仅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽推励。三九已至,卻和暖如春肉迫,著一層夾襖步出監(jiān)牢的瞬間验辞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工喊衫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跌造,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓格侯,卻偏偏與公主長得像鼻听,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子联四,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容