LoginSignup
5
7

More than 5 years have passed since last update.

eclipseからVirtualBoxの環境でXdebugを行う

Last updated at Posted at 2015-10-28

最初、VirtualBoxの共有フォルダー機能を利用してリモートがローカルのファイルを参照していた。
ただ、リモートでのファイル操作に時間がかかってしまうため、リモートにSamba環境を構築しローカルからファイルを参照するように変更した。

環境

  • VirtualBox
  • CentOS 6.7
    • Apache
  • SELinux

準備

説明のために、リモートマシンの設定とeclipseのプロジェクトは以下の通りとする

  • リモートマシン
    • IPアドレス
      192.168.56.1
    • Samba 公開ディレクトリ
      /var/www
    • Apache ドキュメントルート
      /var/www/html
  • PHPプロジェクト名
    site
    • リモートパス
      /var/www/html/site
    • ローカルパス
      \\192.168.56.1\www\html\site

iptables

iptablesで、httpとhttpsの接続を許可する設定 - 作業ノート

デフォルトだと5番目のルールでREJECTが適用されているので、それ以前にhttpとSambaをACCEPTするルールを作成する

service iptables stop
vi /etc/sysconfig/iptables

-A INPUT -j REJECT --reject-with icmp-host-prohibited行より前に以下を追記する

-A INPUT -m state --state NEW -m tcp -p tcp --dport http -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport netbios-ssn -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport netbios-ssn -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport microsoft-ds -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport microsoft-ds -j ACCEPT

iptablesの再起動

service iptables restart

Xdebug

インストール

yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sed -ie "s/enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo

yum --enablerepo=remi,remi-php56 install php php-pecl-xdebug

xdebug.ini

xdebug.iniを編集する

cp -ip /etc/php.d/15-xdebug.ini{,.org}
vi /etc/php.d/15-xdebug.ini

; see http://xdebug.org/docs/all_settings行の後に以下を追記する

/etc/php.d/15-xdebug.ini
; see http://xdebug.org/docs/all_settings
xdebug.default_enable=On
xdebug.remote_autostart=On
xdebug.remote_connect_back=On
xdebug.remote_enable=On

Apacheの再起動

service httpd restart

Samba

インストール

yum install samba

smb.conf

smb.confを編集する

cp -ip /etc/samba/smb.conf{,.org}
vi /etc/samba/smb.conf
/etc/samba/smb.conf
[global]
    workgroup = WORKGROUP
    hosts allow = 192.168.

    max protocol = SMB2

    #SWAT
    display charset = UTF-8
    #Samaba
    unix charset = UTF-8

    #Windows
    dos charset = CP932
    dos filemode = yes
    dos filetime resolution = yes
    dos filetimes = yes

    security = user
    passdb backend = tdbsam

    printing = bsd

[www]
    path = /var/www
    writable = yes

必要最低限の設定なので詳細は他を参考にしてください

smb.conf | Samba ドキュメント翻訳プロジェクト

ユーザーの追加

ユーザーapacheをSambaユーザーに追加する

pdbedit -a apache

Sambaの起動

service smb start
chkconfig smb on

SELinux 対策

/var/www以下のディレクトリ・ファイルにはhttpd_sys_content_t又はhttpd_sys_script_exec_tタイプのラベルを付けられており、Sambaからアクセスはできません。
そのため、samba_share_tタイプのラベルが付いていないファイルやディレクトリをSambaでエクスポートできるようにします。

setsebool -P samba_export_all_rw on

4.3. Boolean | Red Hat Enterprise Linux > 6 > 制限のあるサービスの管理

eclipse

  • ワークスペース
    \\192.168.56.1\www\html

\\192.168.56.1へはユーザーapacheでアクセス可能

設定

  • PHP
    • PHP サーバー
      • サーバー
        ベース URL : http://192.168.56.1
      • デバッガー
        Debugger : XDebug
      • パス・マッピング(不要かも)
        サーバー上のパス : /var/www/html/site
        ローカル・パス : /site
  • デバッグ
    • CLI設定
      CLIデバッグを使用可能にしない
5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7