Tuesday, November 24, 2015

phpstorm 在 vagrant 底下 ubuntu php 程式 除錯

前一篇是 phpstorm 在 wamp 整合包的 php 除錯

本文則介紹在vagrant 環境  linux 系統下對 php 的程式進行除錯
一、ubuntu 環境的建立,如已有 ubuntu 14.04 請略過本段

首先使用 vagrant 來建立一個虛擬的 ubuntu 14.04 的環境

mkdir lamp
cd lamp
vagrant box add ubuntu/trusty64
vagrant init

修改 Vagrant 設定檔
vim Vagrantfile
 找到  config.vm.box = "base" ,改成
 
config.vm.box = "ubuntu/trusty64"

 找到  #  config.vm.network "private_network", ip: "192.168.33.10"

將最前面的 # (註解) 拿掉

找到 # config.vm.synced_folder "../data", "/vagrant_data",改成
  config.vm.synced_folder "www", "/var/www/html"

存檔
新增 資料夾 www
mkdir www
這資料夾將對應到 vagrant 虛擬機器 的 網頁根目錄 (document root ) /var/www/html
所以要先產生,以免後面要啟動 vagrant 虛擬機器時,產生錯誤而無法開啟

二、安裝 apache2 和 php5
啟動 vagrant 虛擬機器
vagrant up
啟動過程會產生很多訊息

登入啟動後的 虛擬機器

vagrant ssh
安裝 apache2 和 php5

sudo apt-get update
sudo apt-get install apache2 php5

安裝 xdebug 擴充套件
sudo apt-get install php5-xdebug
修改 設定檔,使 xdebug 能使用
sudo vim /etc/php5/mods-available/xdebug.ini
 (注意:這是ubuntu xdebug 的設定,如果是其他的分支版本,可能是sudo vim  /etc/php5/apache2/php.ini)
zend_extension=xdebug.so
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "192.168.33.1"
xdebug.remote_port=9000
xdebug.remote_mode = req
xdebug.remote_log = "/var/log/xdebug.log"
xdebug.remote_enable = 1
請特別要注意其中的 xdebug.remote_host = "192.168.33.1" ,是要設在 phpstorm 所在的電腦的 ip
建議你用你電腦實際的 ip 值,因為我是用 vagrant 建構 ubuntu 環境,vagrant 會使用 virtaulbox 來產生虛擬機器,ip 也是由虛擬網卡由 Vagrantfile 設定檔所設定
如果設定值和本文相同,那麼本機也會由 virtualbox 建了一個虛擬網卡,其 ip 為 192.168.33.1

你也可以用

ipconfig
來查目前電腦的 ip


ping 192.168.33.1

來查 此ip 是否有回應

修改完存檔
記得要重啟 apache
 
sudo service apache2 restart
接著 按
ctrl-D

離開 ubuntu










No comments: