成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

macOS系統(tǒng)PHP7增加Xdebug

sPeng / 2016人閱讀

摘要:但是,系統(tǒng)自帶的只有基礎(chǔ)的配置,如果想做開發(fā),還是必須的,以下就總結(jié)一下如何在中為系統(tǒng)自帶的增加模塊。本文先發(fā)布于我的個人博客系統(tǒng)增加,后續(xù)如有更新,可以查看原文。

Apple在發(fā)布macOS High Sierra后,系統(tǒng)也終于自帶了php v7.1,相比于之前,如果想使用php7,還得額外想辦法( Homebrew 或者 php-osx )而言著實(shí)方便了不少。

但是,系統(tǒng)自帶的PHP只有基礎(chǔ)的配置,如果想做PHP開發(fā),Xdebug還是必須的,以下就總結(jié)一下如何在macOS High Sierra中為系統(tǒng)自帶的PHP增加Xdebug模塊。

基礎(chǔ)環(huán)境( macOS 及 PHP 信息)

macOS High Sierra: v10.13.3

PHP: v7.1.7

安裝Xdebug

Xdebug官網(wǎng)安裝文檔中有MAC推薦的方式,鑒于系統(tǒng)自帶的是PHP是v7.1.7,所以在選擇的時(shí)候,需要選擇php71-xdebug這個安裝包。

另外由于brew中的php71-xdebug依賴于php71的,所以建議加上--without-homebrew-php這個參數(shù),這樣的話brew就會忽略安裝php71

brew install php71-xdebug --without-homebrew-php

不過這個時(shí)候,或許你會碰到下面這樣的報(bào)錯:

phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:

提示缺失依賴,從而導(dǎo)致phpize無法正常工作,phpize是用來準(zhǔn)備 PHP 擴(kuò)展庫的編譯環(huán)境的,理論上系統(tǒng)自帶的PHP應(yīng)該是有phpize的,但是沒有在/usr/include/php/*里面找到它需要的模塊,并且檢索/usr/include時(shí)發(fā)現(xiàn)這個目錄根本不存在。

Google了一圈,解決問題,就需要在/usr/include中補(bǔ)全相關(guān)的內(nèi)容,在OSX v10.10以前系統(tǒng),需要手動做軟鏈來解決:

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /usr/include

但是v10.11以后的系統(tǒng)重寫了安全策略,所以會遇到權(quán)限問題(sudo也不行):

ln: /usr/include: Operation not permitted

不過好在Apple為開發(fā)人員準(zhǔn)備了Xcode,這是一個很強(qiáng)大的工具,但是體積也很大(下載安裝有點(diǎn)慢),而一般我們只需要它提供的Command Line Tools就夠了,上面的問題,其實(shí)只要安裝Command Line Tools就可以解決:

xcode-select --install

接下來,跟著提示做,安裝、同意協(xié)議...

等待安裝結(jié)束以后,再用 brew 來安裝 php71-xdebug:

brew install php71-xdebug --without-homebrew-php

一切結(jié)束以后,brew會給出提示:

To finish installing xdebug for PHP 7.1:
  * /usr/local/etc/php/7.1/conf.d/ext-xdebug.ini was created,
    do not forget to remove it upon extension removal.
  * Validate installation via one of the following methods:
  *
  * Using PHP from a webserver:
  * - Restart your webserver.
  * - Write a PHP page that calls "phpinfo();"
  * - Load it in a browser and look for the info on the xdebug module.
  * - If you see it, you have been successful!
  *
  * Using PHP from the command line:
  * - Run `php -i "(command-line "phpinfo()")"`
  * - Look for the info on the xdebug module.
  * - If you see it, you have been successful!
開啟PHP的Xdebug

經(jīng)過上面步驟,系統(tǒng)里面是有Xdebug了,但是在php.ini配置文件中不一定有,因此需要手動添加Xdebug的配置項(xiàng):

[xdebug]
zend_extension="/usr/local/opt/php71-xdebug/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream = 0
xdebug.show_local_vars = 1

然后就是重啟php-fpm

# 關(guān)閉php-fpm
sudo killall php-fpm

# 啟動php-fpm
sudo php-fpm

運(yùn)行php -i "(command-line "phpinfo()")" | grep xdebug后,你就可以看到關(guān)于Xdebug的配置內(nèi)容了:

xdebug
...
xdebug.remote_autostart => On => On
xdebug.remote_connect_back => On => On
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => localhost => localhost
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
xdebug.remote_timeout => 200 => 200
xdebug.scream => Off => Off
...
Visual Studio Code - PHP Debug

VSCode是目前最流行的開發(fā)工具之一,雖然輕量,但是對標(biāo)各類IDE毫不遜色,微軟良心之作,通過安裝不同的插件可以擴(kuò)展它的能力,其中有一款 PHP Debug 的插件,可以作為Xdebug的橋梁,方便直接通過Xdebug調(diào)試PHP,官方的描述十分貼切:

PHP Debug Adapter for Visual Studio Code

官網(wǎng)的指導(dǎo)也寫的相當(dāng)不錯:

Install XDebug
I highly recommend you make a simple test.php file, put a phpinfo(); statement in there, then copy the output and paste it into the XDebug installation wizard. It will analyze it and give you tailored installation instructions for your environment.
In short:

On Windows: Download the appropiate precompiled DLL for your PHP version, architecture (64/32 Bit), thread safety (TS/NTS) and Visual Studio compiler version and place it in your PHP extension folder.

On Linux: Either download the source code as a tarball or clone it with git, then compile it.

Configure PHP to use XDebug by adding zend_extension=path/to/xdebug to your php.ini.
The path of your php.ini is shown in your phpinfo() output under "Loaded Configuration File".

Enable remote debugging in your php.ini:

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

There are other ways to tell XDebug to connect to a remote debugger than remote_autostart, like cookies, query parameters or browser extensions. I recommend remote_autostart because it "just works". There are also a variety of other options, like the port (by default 9000), please see the XDebug documentation on remote debugging for more information.

If you are doing web development, don"t forget to restart your webserver to reload the settings

Verify your installation by checking your phpinfo() output for an XDebug section.

這里需要注意的是它推薦開啟Xdebug配置項(xiàng)中的remote_autostart這一項(xiàng)。

好了,經(jīng)過上面的操作,你應(yīng)該可以跟Demo里面一樣在VSCode中調(diào)試PHP了。

本文先發(fā)布于我的個人博客《macOS系統(tǒng)PHP7增加Xdebug》,后續(xù)如有更新,可以查看原文。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28441.html

相關(guān)文章

  • 用Visual Studio Code Debug世界上最好的語言(Mac篇)

    摘要:懸停以查看現(xiàn)有屬性的描述。欲了解更多信息,請?jiān)L問默認(rèn)是已經(jīng)被占用上一步我們配置遠(yuǎn)程端口是默認(rèn)是已經(jīng)被占用上一步我們配置遠(yuǎn)程端口是然后就愉快最好的語言吧其他部分系統(tǒng)增加 用Visual Studio Code Debug世界上最好的語言(Mac篇) 首先,你要有臺Macbook Pro,接著才繼續(xù)看這個教程. PS:Windows用戶看這里用Visual Studio Code Debu...

    crossea 評論0 收藏0
  • MacOS 升級自帶PHP5.6 升級到 PHP7.1

    摘要:自帶的是版本,由于帶來了不少新特性和性能的提升,所以決定升級輸入下面命令,安裝安裝包,安裝過程需要輸入系統(tǒng)的密碼打開終端輸入,為什么還是提示版本還是不會覆蓋原來的版本,而是安裝了兩個版本,新版本安裝的根目錄,啟動腳本路徑你可以打開 mac自帶的是php5.6版本,由于php7帶來了不少新特性和性能的提升,所以決定升級php7 輸入下面命令,安裝php7.1安裝包,安裝過程需要輸入系統(tǒng)的...

    MadPecker 評論0 收藏0
  • [進(jìn)階篇]docker編排PHP開發(fā)壞境

    摘要:開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括虛擬機(jī)集群和其他的基礎(chǔ)應(yīng)用平臺。容器進(jìn)入容器名暴露端口暴露端口使用調(diào)試環(huán)境中安裝了調(diào)試,需對進(jìn)行配置后啟用,配置如下配置完成后需要重啟下容器。 showImg(https://segmentfault.com/img/bVbgmdS?w=567&h=272); Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕...

    PingCAP 評論0 收藏0
  • [進(jìn)階篇]docker編排PHP開發(fā)壞境

    摘要:開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括虛擬機(jī)集群和其他的基礎(chǔ)應(yīng)用平臺。容器進(jìn)入容器名暴露端口暴露端口使用調(diào)試環(huán)境中安裝了調(diào)試,需對進(jìn)行配置后啟用,配置如下配置完成后需要重啟下容器。 showImg(https://segmentfault.com/img/bVbgmdS?w=567&h=272); Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕...

    kevin 評論0 收藏0
  • php7 使用 phpunit 部分錯誤和解決方案

    摘要:報(bào)錯信息問題和解決測試其實(shí)已經(jīng)通過了,但,代表沒有任何斷言被執(zhí)行。增加或修改這行到的中每個測試都在獨(dú)立的進(jìn)程中運(yùn)行。 預(yù)先準(zhǔn)備(brew 安裝的情況下) php7 php7-xdebug runkit7 報(bào)錯信息1: Error:No code coverage driver is available 問題和解決: # 沒有成功安裝xdebug brew search php7...

    gaosboy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<