1. 程式人生 > >PHP團隊開發和基於xdebug進行多人遠端除錯 for eclipse phpstorm

PHP團隊開發和基於xdebug進行多人遠端除錯 for eclipse phpstorm

使用netbeans進行PHP團隊開發和基於xdebug進行多人遠端除錯

[2012/03/27 10:02]

不少的非單純PHP架構的網站系統中,PHP開發的Web系統,往往對特定的伺服器環境有依賴,例如使用php開發某些面向開放平臺的系統,或者帶有支付介面功能的系統,都需要在真正的伺服器環境上進行開發與除錯。2011年中國PHP技術高峰論壇上,金山技術運營中心技術經理張宴老師介紹了PHP在金山遊戲運營中的一些應用實踐(傳送門:2011中國PHP技術高峰論壇:PHP在金山遊戲運營中的應用),在其中提到了PHP的開發團隊,使用一致的Linux伺服器作為開發除錯平臺,這樣所有開發者可以使用一致的配置檔案,也可以進行某些依賴於伺服器的開發和測試。

文中張宴老師提到使用本地nginx伺服器+遠端fastcgi伺服器,將本地的共享資料夾對映到遠端伺服器的模式,在具體實踐中我稍作修改:

  1. 將Web伺服器和PHP-FastCGI只架設在Linux端。
  2. 將Linux伺服器上的使用者工作目錄建立共享,對映為開發者Windows上的虛擬驅動器。
  3. 開發者通過同樣的地址訪問測試,在Nginx裡面配置根據來訪者IP地址選擇root目錄。

這樣一來,開發者端只需要IDE環境和對映網路驅動器,在伺服器端為其建立相應的SMB賬號和以開發者IP命名的工作目錄。例如開發者A的IP為192.168.137.101,那麼他訪問192.168.137.10開發伺服器時,WebRoot為/home/192.168.137.101。

但是實踐中發現這麼做有個問題存在,即SMB伺服器的讀寫速度太慢,由於工作區的程式碼副本包含SVN資訊,所以SVN提交或者更新時,經常會出現超時失敗的情況。後來研究Netbeans之後,發現其自帶強大的遠端開發除錯功能。方案大致如下:

Netbeans中設定每次儲存時,或者執行時將修改通過SSH的SFTP服務上傳至測試伺服器,開發者可以通過Xdebug進行除錯。具體設定步驟如下所述:

配置Xdebug,首先我們來編譯安裝Xdebug:

wget http://xdebug.org/files/xdebug-2.1.4.tgz
tar xvf xdebug-2.1.4.tgz
cd xdebug-2.1.4
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install 

開啟php.ini檔案,為其增加Xdebug小節:

[xdebug]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9001
xdebug.remote_handler = dbgp

需要說明的是,與大多數推薦的Xdebug設定不同,配置中並沒有制定remote_host,而是使用了connect_back方式。這樣的設定可以允許多人同時進行除錯。具體的說明請參考手冊:http://xdebug.org/docs/all#communication

在Netbeans中設定與Xdebug通訊的埠:選單 【工具】-【選項】

接下來以建立一個專案為例項說明。首先在工作區右鍵選擇【新建專案】,開啟新建專案對話方塊:

進行專案基本資訊的設定:

設定測試執行模式:

設定遠端開發主機:

點選【是】接受金鑰:

測試連線成功:

返回繼續設定遠端開發主機:

完成設定:

到這裡,一個可以進行遠端除錯的專案就建立完成了。接下來我們執行測試:

這時如果修改的檔案沒有被上傳,將會提示上傳相關檔案:

除錯已啟動:

對於已經存在的專案,或者從SVN上檢出的專案,設為遠端除錯,可以在專案上右鍵,選擇【屬性】,在【執行配置】中進行設定:

關於如何在Netbeans中直接使用SVN,我已經在之前的文章《使用NetBeans進行團隊合作PHP專案開發》中進行了說明。想要快速上手Netbeans,還可以檢視這篇文章《Netbeans常用快捷鍵蒐集》。

在上傳檔案時會提示是否接受金鑰,切換到“儲存時上傳”後,只有第一次會提示。

相關推薦

PHP團隊開發基於xdebug進行遠端除錯 for eclipse phpstorm

使用netbeans進行PHP團隊開發和基於xdebug進行多人遠端除錯 [2012/03/27 10:02] 不少的非單純PHP架構的網站系統中,PHP開發的Web系統,往往對特定的伺服器環境有依賴,例如使用php開發某些面向開放平臺的系統,或者帶有支付介面功能的系

如何利用 Git 與 GitHub 進行協作開發

1. 首先 “Fork” 他人的 repository(程式碼倉庫)        “Fork” 的名詞是 “叉子” 的意思,不過這裡取的是動詞 “分叉,建一個分支” 的意思。進入你想參與合作開發的倉庫介面,點選右上角的 “Fork” 

使用估算器、tf.keras tf.data 進行 GPU 訓練

文 / Zalando Research 研究科學家 Kashif Rasul 來源 | TensorFlow 公眾號 與大多數 AI 研究部門一樣,Zalando Research 也意識到了對創意進行嘗試和快速原型設計的重要性。隨著資料集變得越來越龐大,

7.開發測試資料集大合適 翻譯自 吳恩達新書-Machine Learning Yearning

為了檢測出不同演算法之間的差異,開發資料集應該足夠大。比如,分類演算法A的準確率為90.0%, 分類演算法B的準確率為90.1%,如果開發資料集中只有100個樣本,那你無法檢測出這0.1%差在哪兒。100個樣本的開發資料集實在時太小了。通常,我們會在開發資料集

git如何利用分支進行開發

轉 ::https://www.cnblogs.com/kexianting/p/8525732.html   在使用git時,假如遠端倉庫有 dev 和 master 兩個分支,master 作為一個穩定版分支,可用於直接釋出產品,日常的開

基於python3.7django2.1的部落格系統

  基於python3.7和django2.1的多人部落格系統 github地址:https://github.com/opsonly,喜歡的可以給個star~ 簡介:   該部落格前段框架使用了Bootstrap 4

git 如何實現進行協作開發遠端倉庫)

第一、Git作為分散式的版本控制系統,你是你本地倉庫的主人,但是想要實現多人的協作開發,你就要將你本地的開發推送到遠端共享倉庫中供大家下載,本篇主要以github作為遠端伺服器來介紹有關遠端倉庫這塊內容。 作為我們的伺服器,並不能讓任何人向我們的git伺服器上推送程式碼,只

ExcelVBA:利用SUMIFOFFSET+MATCH進行條件求和

這個源於蘭版的一道題:http://www.excelpx.com/thread-167680-1-2.html 效果如下:   利用以下陣列公式即可得到結果:=SUMIF(B2:I2,B2:C2,OFFSET(B2:I2,MATCH(A3:A6,A12:A15,),)) 選中B12:B15,輸入公式,然

利用SUMIFOFFSET+MATCH進行條件求和

這個源於蘭版的一道題:http://www.excelpx.com/thread-167680-1-2.html 效果如下:   利用以下陣列公式即可得到結果:=SUMIF(B2:I2,B2:C2,O

[經驗] -- PHP團隊開發中遇到的那些坑,看我是如何解決的?

坑一 : 團隊開發中,每個人都有自己擅長的整合環境,比如WAMP、AppServ、XAMPP,正是因為這些環境不統一,完成任務提交程式碼後,每當測試出BUG的時候,都會有 “程式碼在我機子上執行沒有問題” 的說辭。那麼問題來了,如何解決這個問題? 如何統一開發環境? 我

Sublime Text 3 配置 PHP IDE環境 並使用Xdebug進行除錯

sublime大法好 首先是安裝好PHP之後配置環境變數 然後在cmd中輸入php -v 能看到版本號即為配置好了 之後在sublime中新建編譯系統,輸入程式碼 { "cmd": ["php", "$file"], "file_regex"

使用github進行開發

1.開發的一個人先將專案先提交到github上。 2.其他開發人員該專案fork到自己的github上。 3.其他的開發人員在自己的github上修改了之後,然後pull request相關的commit。 4.建立專案者可以選擇是否合併專案。

GIT進行開發的模擬流程

一、準備環境 win:開發者一,本機windows lin:開發者二,虛擬機器linux project:使用github的公共倉庫 因為兩臺主機都將金鑰放在了倉庫擁有者,所以兩邊遠端提交程式碼後都將直接合併到分支 二、模擬一次流程 1. 拉取專案到本地 

1024_(即時通訊)使用node.jssocket.io實現聊天室

使用node.js和socket.io實現多人聊天室 2015年01月24日 03:24:54 遠古大猛獁 閱讀數:2775 轉自: http://www.cnblogs.com/flyoung2008/archive/2012/07/19/2600132.html

在ubuntu下搭建php後臺開發環境——ubuntu16.04+apach2.4.18+php7.0.28+mysql+PhpStorm

在ubuntu下搭建php後臺開發環境——ubuntu16.04+apache2.4.18+php7.0.28+mysql+PhpStorm 此篇文章是記錄自己在搭建php後臺開發環境的流程,適合新手。 名詞解釋 ubuntu——一款基於linux核心的作業系統,對標Window

Mask RCNN 實現視訊圖片中的姿態檢測

Mask RCNN是目標分割檢測框架--擴充套件到人體關鍵點檢測 對於原理不清晰的同學,建議你去看一下Kaming He的論文:https://arxiv.org/pdf/1703.06870.pdf 我的部落格裡也有論文的翻譯版:Mask R-CNN 論文翻譯 對於視訊中的多人進行姿態估計,

python 利用pexpect進行遠端命令執行

#ssh_cmd.py #coding:utf-8 import pexpect def ssh_cmd(ip, user, passwd, cmd):     ssh = pexpect.spawn('ssh %[email protected]%s "%s"' % (user, ip, cmd)

基於Webrtc的視訊會議的簡單實現

通過重寫WEBRTC傳輸模組來實現一個簡單的視訊會議,效果如下圖: 說明: 1、畫面1、2、3都是其他手機傳過來的影象,區域網內有點點卡頓,同時軟解3路資料你懂的。 2、聲音比較清晰,服務端沒有做混音處理。 實現原理: 1、服務端是小夥伴用C++配合實現的

【tcp-ip學習總結】基於udp的聊天室,帶有登入註冊功能

環境;vs2010,vs2013 伺服器端 #include<stdio.h> #include<Winsock2.h> #include<stdlib.h> #pragma comment(lib,"Ws2_32

linux c 基於UDP的聊天程式

client.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include<errno.h> #include<sys/types.h> #