国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

macOS系統PHP7增加Xdebug

sPeng / 2004人閱讀

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

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

但是,系統自帶的PHP只有基礎的配置,如果想做PHP開發,Xdebug還是必須的,以下就總結一下如何在macOS High Sierra中為系統自帶的PHP增加Xdebug模塊。

基礎環境( macOS 及 PHP 信息)

macOS High Sierra: v10.13.3

PHP: v7.1.7

安裝Xdebug

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

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

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

不過這個時候,或許你會碰到下面這樣的報錯:

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:

提示缺失依賴,從而導致phpize無法正常工作,phpize是用來準備 PHP 擴展庫的編譯環境的,理論上系統自帶的PHP應該是有phpize的,但是沒有在/usr/include/php/*里面找到它需要的模塊,并且檢索/usr/include時發現這個目錄根本不存在。

Google了一圈,解決問題,就需要在/usr/include中補全相關的內容,在OSX v10.10以前系統,需要手動做軟鏈來解決:

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

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

ln: /usr/include: Operation not permitted

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

xcode-select --install

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

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

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

一切結束以后,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

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

[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

# 關閉php-fpm
sudo killall php-fpm

# 啟動php-fpm
sudo php-fpm

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

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是目前最流行的開發工具之一,雖然輕量,但是對標各類IDE毫不遜色,微軟良心之作,通過安裝不同的插件可以擴展它的能力,其中有一款 PHP Debug 的插件,可以作為Xdebug的橋梁,方便直接通過Xdebug調試PHP,官方的描述十分貼切:

PHP Debug Adapter for Visual Studio Code

官網的指導也寫的相當不錯:

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配置項中的remote_autostart這一項。

好了,經過上面的操作,你應該可以跟Demo里面一樣在VSCode中調試PHP了。

本文先發布于我的個人博客《macOS系統PHP7增加Xdebug》,后續如有更新,可以查看原文。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28441.html

相關文章

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

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

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

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

    MadPecker 評論0 收藏0
  • [進階篇]docker編排PHP開發壞境

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

    PingCAP 評論0 收藏0
  • [進階篇]docker編排PHP開發壞境

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

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

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

    gaosboy 評論0 收藏0

發表評論

0條評論

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