簡傑的php編程分享-1.1 xdebug的安裝配置

介紹

我以前配置直接按網上的文章進行配置老是配置不成功,裏面不少東西不瞭解。當我在 xdebug 官網看到了 xdebug 遠程調試原理圖時,我才知道應該怎麼配置 xdebug。配置的參數也少了不少,也不須要在 IDE 裏對一個個請求地址進行配置。體驗比以前看到的文章設置好用多了php

環境說明

  • windows
  • vagrant+vbox+centos7+nginx+php
  • phpstorm

配置前準備

  1. 檢查 php 環境是否已經存在 xdebug 拓展了

在命令行中輸入 php -m 能夠查看 php 已加載的拓展
linux

  1. 瞭解本身環境的配置
  • php 版本
  • php.ini 所在地址
  • 服務器系統位數 32位 仍是 64位
  1. xdebug 和 phpstorm 交互的原理

  • 服務器的IP和端口是 10.0.1.2:80
  • IDE 的客戶端IP是 10.0.1.42, 因此服務器上 xdebug.remote_host=10.0.1.42
  • IDE 監聽的調試端口爲 9000, 因此服務器上 xdebug.remote_port=9000
  • IDE 所在的客戶端,對 xdebug 的服務器進行請求
  • Xdebug 與 10.0.1.42:9000 的客戶端 IDE 監聽端口關聯
  • 運行調試, xdebug 所在的服務器提供 HTTP 響應

  • 服務器的IP和端口是 10.0.1.2:80
  • IDE 的客戶端IP是一個未知的IP, 因此服務器上 xdebug.remote_connect_back=1
  • IDE 監聽的調試端口爲 9000, 因此服務器上 xdebug.remote_port=9000
  • 發出 HTTP 請求後,Xdebug 將從 HTTP 請求頭獲取 IP 地址
  • Xdebug 會和從 HTTP 請求頭獲取 IP 地址的客戶端 IDE 監聽端口關聯
  • 運行調試, xdebug 所在的服務器提供 HTTP 響應

下載缺乏的擴展和軟件

配置

php 環境配置添加 xdebug 擴展

  1. 下載 xdebug 擴展源碼
cd /usr/local/src
wget https://xdebug.org/files/xdebug-2.7.0alpha1.tgz

解壓
tar -zxvf xdebug-2.7.0alpha1.tgz
  1. 編譯安裝
cd xdebug-2.7.0alpha1

生成安裝腳本
phpize

設置安裝配置參數
vim install-sh
> ./configure --with-php-config=/usr/local/php/bin/php-config

運行安裝配置
sh install-sh

編譯擴展,使用兩個 cpu 內核運行(能夠快不少)
make -j 2

編譯安裝
make install

注意: 編譯安裝後,會返回擴展所在文件夾。nginx

  1. php.ini 中添加 xdebug 配置
[xdebug]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"
xdebug.idekey="PHPSTORM"
xdebug.remote_enable = On
xdebug.remote_autostart=On
xdebug.remote_connect_back=On
xdebug.remote_port=9001

phpstorm 配置

  1. 打開設置 file -> settings -> Languages & Frameworks
  2. 設置項目使用環境


  1. 設置 debug 配置 Languages & Frameworks -> php -> debug

  1. 設置 xdebug dbgp 配置 Languages & Frameworks -> php -> debug -> dbgp proxy

  1. 設置當前項目所在服務器地址和域名

開始調試

  1. 打開編輯器調試監聽

  1. 在指定控制器中添加斷點
  2. 請求地址,編輯器會自動進入調試模式中

系列文章

  1. xdebug的安裝配置 [本篇]
  2. xdebug的實際運用
  3. xdebug性能分析

FQA

  • 個人 php 運行環境在 windows 下應該要怎麼設置
windows 的添加擴展會比 linux 簡單不少。直接下載 dll 擴展文件就能夠了。除了 zend_extension 設置的地址不同。其餘能夠 xdebug 配置能夠共用。
  • php.ini 中配置 xdebug 爲何不用默認的 9000 端口
由於 php-fpm 是使用 cgi協議 進行運行,因此它也須要端口,而它默認的端口也是 9000。若是你像我這樣使用虛擬機的方式進行訪問項目,不會出問題。可是若是你使用的是本地的 php-fpm 那他就會出現端口被佔用的狀況。爲了不就直接用 9001 來代替默認端口
  • php.ini 中能夠配置的 xdebug 參數有那些,我應該在那裏獲得更全面的參數說明
xdebug 官網那裏的手冊有詳細說明, xdebug 遠程鏈接文檔連接 裏的 ctrl + f 搜索 Related Settings 就能夠看到鏈接參數了
  • 我應該下載那個版本的 xdebug
若是實在不知道本身的 windos 系統的 php 環境該用那個版本的擴展
能夠經過下載頁提供的工具進行下載 工具連接

多行文本框裏面是放經過 php -i 命令返回的配置內容
爲了更完整的取得參數能夠 php -i > D:/php-ini.txt 保存到文件中
  • 爲何個人 ide 配置好後,啓動調試監聽沒有效果
這個頗有多是你係統的防火牆的安全機制。把這個端口保護起來了,能夠直接關閉防火牆進行調試
相關文章
相關標籤/搜索