IDE to debug PHP with Eclipse and xdebug ..をセットアップするのに数時間を費やします。Eclipseで設定したブレークポイントを除いてすべて問題ありません。行をクリックしてブレークポイントを追加すると、デバッガーはnotを停止します。行を追加するとxdebug_break()デバッガーは行で停止します...
構成に問題がある可能性があります。誰か助けてもらえますか?
PHP.ini
[xdebug]
xdebug.remote_enable=1
xdebug.remote_Host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:/temp"
xdebug.collect_params = 4
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.show_local_vars = 1
Xdebugがコードのどの部分でも停止しない場合は、xdebug_break()
をコードのこの部分に追加します。
この問題の原因となる問題がいくつかあるようです。私の場合、パスマッピングを設定する必要があると思いました。
下にある設定rightclick-project->properties->PHP Debug
その後server->edit->path mapping
間違っていました。
私は正しいものを手動で追加しましたが、Eclipseはそれをすべて自分で行うことができます。マッピングを削除すると機能しました。
Eclipse PDTとXdebugでも同様の問題がありました。原因は、EclipseがIPv6経由でリッスンしていたが、XdebugがIPv4経由で接続しようとしたことです。
chriki@machine:~$ netstat -an | grep 9000
tcp6 0 0 :::9000 :::* LISTEN
Xdebug IPv6をサポートしていないようです 、まだです。
行を追加した後
-Djava.net.preferIPv4Stack=true
-vmargs
ファイルのEclipse.ini
行の後、EclipseはIPv4経由でリッスンし始めました。
chriki@machine:~$ netstat -an | grep 9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
デバッグは問題なく動作するようになりました。
私は自分で問題を解決しました。
私のphp.iniで、zend_extensionの代わりにxdebugを拡張機能として追加しました。
php.ini
zend_extension=C:\EasyPHP-5.3.3\php\ext\php_xdebug.dll
注:パスは、相対パスではなく、絶対パスでなければなりません。
デバッガは素晴らしい働きをします。おいしい!
私も同じ問題を抱えていました。解決策は、正しいファイルを開き、そこにブレークポイントを追加することです。
ローカルサーバーが仮想Zドライブにあります(WAMPではなくdenwerを使用しています)。 Zドライブは私のD:/ webserverフォルダーを指します。したがって、1)Z:/myproject/script.phpおよび2)D:/webserver/myproject/script.phpとしてファイルを開くことができます
何らかの理由で、デバッガーは開いたZ:/myproject/script.phpファイル内のブレークポイントでのみ停止します。
私のソリューションをテストする方法???次を実行:
xdebug_break()
を任意の行に追加してファイルを保存します私の場合、デバッグプロセスが開始した後、phpDesigner IDE正しいファイルをIDEで開き、xdebug_break()行で停止します。このため、この新しく開いたファイルでブレークポイントを追加すると動作します。開いたファイルをデバッグに使用してください。
同じ問題がありました。PDTはデバッグセッションを開始し、スクリプトの最初の行で中断してそこからステップ実行することもできましたが、[再開]をクリックすると、設定した手動のブレークポイントをうまく通過します。私はそれをいじり、他のたくさんの返信を読んだ後、修正しました。
(PHPサーバー構成)で)パスマップをセットアップしようとしていましたが、プロジェクトパスとWebサーバーパスが異なるため、これは何らかの理由で機能しなかったため、 PDTが求めていた場所と一致するようにApache構成のエイリアスを指定しましたが、このパスマップ設定を削除していませんでした。パスマップを削除すると、ブレークポイントが機能し始めました。
おそらく、他の何かが適切に機能していない(パスマップ設定)の症状ですが、ブレークポイントとデバッグはすべて私にとっては機能しています:)
この問題は、ローカルプロジェクトフォルダーの一部を移動した後で発生しました。ファイルの先頭でxdebuggerを中断させることはできましたが、残りのブレークポイントはスキップされました。
Netbeansを使用している場合は、プロジェクトのURL(プロジェクトのプロパティ->実行構成)が正しい場所を指していることを確認してください。プロジェクトURLが正しいフォルダーを指していると、ブレークポイントは期待どおりに機能し始めます。
これは約3時間私を怒らせていました、それはうまくいきました。だから、あなたの頭に銃を置く前に、これを試してください。 Eclipseが起動したら、新しいワークスペースを選択し、プロジェクトを再度セットアップします!
これを行った後、ブレークポイントが再びヒットしました!私のブレークポイントは問題なく動作していましたが、突然、動作が停止しました。私は試した:
すべてのブレークポイントを削除する
清掃プロジェクト
eclipseの再インストール
上記のどれも私のために働いていません!
ところでウィンドウ7を使用しています。
この情報が誰かの命を救うことを願っています!
ところで、ここでは、xdebugとvmwereを使用したcentos 7と、Eclipseを使用したwindow 7クライアントをセットアップするための手順を示します。
vmwereをダウンロードする
ダウンローダーとvmwereのセットアップ:CentOS-7-x86_64-Everything-1511.iso
ファイアウォールを無効にする
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
fTP経由で接続
ipを見つけるifconfig
ifconfig
eno16777736:flags = 4163 mtu 1500
inet 192.168.170.128ネットマスク255.255.255.0ブロードキャスト192.168.170.255
inet6 fe80 :: 20c:29ff:fec4:b8ca prefixlen 64 scopeid 0x20
エーテル00:0c:29:c4:b8:ca txqueuelen 1000(イーサネット)
RXパケット254バイト20919(20.4 KiB)
RXエラー0ドロップ0オーバーラン0フレーム0
TXパケット95バイト10225(9.9 KiB)
TXエラー0ドロップ0オーバーラン0キャリア0コリジョン0
192.168.170.128はIPです
rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY *
yum -y install epel-release
yum -yインストールmariadb-server mariadb
systemctl start mariadb.service
systemctl enable mariadb.service
mysql_secure_installation
yum -y httpdをインストール
systemctl start httpd.service
systemctl enable httpd.service
yum -y PHPをインストール
サービスhttpd再起動
yum -yインストールphp-mysql
yum -y install php-Gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring
php-snmp php-soap curl curl-devel
サービスhttpd再起動
yum install phpMyAdmin
windowsでcmdを開き、ipconfigと入力します。
見つける
イーサネットアダプターVMwareネットワークアダプターVMnet8:
Connection-specific DNS Suffix . : localdomain
Link-local IPv6 Address . . . . . : fe80::94b8:9e5c:c772:3d47%19
IPv4 Address. . . . . . . . . . . : 192.168.170.1 [ this is the widnows ip to allow ]
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway .
/etc/httpd/conf.d/phpMyAdmin.confの変更:
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
に:
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip [ WINDOWS IP TO ALLOW GOES HERE ]
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from [ WINDOWS IP TO ALLOW GOES HERE ]
Allow from ::1
</IfModule>
サービスhttpd再起動
$ cfg ['Servers'] [$ i] ['auth_type'] = 'cookie';を変更します。 $ cfg ['Servers'] [$ i] ['auth_type'] = 'http';
サービスhttpd再起動
/ etc/selinux/configの変更
このファイルは、システム上のSELinuxの状態を制御します。
SELINUX =は、次の3つの値のいずれかを取ります。
enforcing-SELinuxセキュリティポリシーが適用されます。
permissive-SELinuxは強制ではなく警告を出力します。
無効-SELinuxポリシーは読み込まれません。
SELINUX = enforcing
SELINUXTYPE =は、次の3つの2つの値のいずれかを取ります。
対象-対象プロセスは保護され、
最小-ターゲットポリシーの変更。選択されたプロセスのみが保護されます。
mls-マルチレベルのセキュリティ保護。
SELINUXTYPE = targeted
に
このファイルは、システム上のSELinuxの状態を制御します。
SELINUX =は、次の3つの値のいずれかを取ります。
enforcing-SELinuxセキュリティポリシーが適用されます。
permissive-SELinuxは強制ではなく警告を出力します。
無効-SELinuxポリシーは読み込まれません。
SELINUX =無効
SELINUXTYPE =は、次の3つの2つの値のいずれかを取ります。
対象-対象プロセスは保護され、
最小-ターゲットポリシーの変更。選択されたプロセスのみが保護されます。
mls-マルチレベルのセキュリティ保護。
SELINUXTYPE = targeted
centosを再起動する
WINDOWS POINT BROWSER TO: http://192.168.170.128/phpmyadmin 、すべて良いはずです
webサイトを/ var/www/html/[WEBSITE NAME]にコピーします
chmod -R 777 html
etc/httpd /に追加(これにより、パーマリンクが投稿名で機能できるようになります)
オプションFollowSymLinks
AllowOverride All
注文を許可、拒否
すべてから許可
yum install php-devel(pipsizeを許可するため)
phpファイルを作成して:ウェブサイトのルートにコピーして実行し、htlを https://xdebug.org/wizard.php にコピーしてから、分析ソースボタンをクリックします
https://xdebug.org/wizard.php は、次のような手順を示します:
......ダウンロードxdebug-2.4.1.tgz
ダウンロードしたファイルをtar -xvzf xdebug-2.4.1.tgzで解凍します
実行:cd xdebug-2.4.1
実行:phpize(phpizeがない場合はFAQを参照してください。
実行:./configure
実行:make
実行:cp modules/xdebug.so/usr/lib64/php/modules
/etc/php.iniを編集して行を追加します
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.remote_enable =オン
xdebug.remote_Host = 192.168.170.1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
.....サービスhttpd再起動
ファイルを実行すると、XDebugセクションが表示されます。そうであれば、サーバーは準備ができています!
Eclipse Neonをダウンロード
ファイル>ファイルシステムからプロジェクトを開く
完了(そして待つ)
ウィンドウ設定> php>サーバー>新規
サーバータブ
サーバー名[好きなもの]
ベースURL [サーバーのIPまたは名前]
ドキュメントルート[すべてのコードがあるハードドライブ上の場所は、サーバー上のものと同じである必要があります]
デバッガータブ
デバッガー:Xdebug
ポート:9000
[サーバーマッピング]タブ([追加]をクリック)
サーバー上のパス:[Webサイトへの完全なパス] EG:/ var/www/html/website
ワークスペースのパス[追加したプロジェクトを検索:ファイルシステムからプロジェクトを開く]
eclipseメインウィンドウに移動>バグアイコンの横にあるドロップダウン矢印をクリック>構成のデバッグ
サーバータブ
ファイル:[これは、アプリを開いたときに実行されるローカルプロジェクトの最初のファイルにする必要があります]
URL:自動生成をオフにする:チェックを外します
URLの最初のテキストボックス:[Webサイトが実行されているサーバーのIPまたは名前]
URLの2番目のテキストボックス:[ウェブサイトがルートディレクトリにない場合は、ここにあるディレクトリ]
共通タブ
お気に入りメニューに表示
ウィンドウ>プレスペクティブ>プレスペクティブを開く> php
最初にヒットするphpファイルにブレークポイントを配置します(コード行の垂直スクロールバーをクリックして)
最後にEclipseのデバッグアイコンをクリックすると、ブレークポイントがヒットします(ブレークポイントが含まれているコード行が緑色になります)。
Centos 7をVemwareで世界に開放
VMeereネットワーク設定をブリッジに変更
Cetnosが実行されているvmweare IPへのトラフィックを転送するルールをルーターに追加します
インバウンドルールをwidnowsファイアウォールに追加してhttpを許可する
PS:私は私のガンマーとスパイをチェックする時間がないので、それに対処します
簡単な回答:phpスクリプトへのパス上のすべての空白を削除します。
環境:
PDTプラグインバージョン3.7.0には、デバッガーがブレークポイントで停止しないというバグがあります。
そして、スクリプトへのパスに空白が含まれているときに発生します!
修正されましたが、ターゲットバージョンの4.0.0はまだリリースされていないと思います。
私の一日を救ったコメントは https://bugs.Eclipse.org/bugs/show_bug.cgi?id=489646#c7 ( "Comment 7")にあります。
問題が最も些細なものであることに気付いて以来、私は何日も同じ問題を抱えていました(!)。
構成:
/ etc/php5/Apache2/php.ini
_[XDebug]
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_Host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_output_dir=/tmp
_
デバッガーはブレークポイントで停止せず、xdebug_break();
でも停止しませんでした
...デフォルトのApache DocumentRootフォルダーの_/var/www
_権限が原因でした
_/home/user/Documents/www
_に変更しました。
私はEclipse-php-oxygenを使用して同じ問題を抱えていました問題はEclipseにあります。私はEclipse-php-luna-SR2-win32をインストールしてxdebugをテストしましたが、正常に動作します。
インストール済み:xampp-win32-7.0.30-0-VC14-installer.exe Java 8 Update 171
[XDebug]
zend_extension = C:\xampp\php\ext\php_xdebug-2.6.0-7.0-vc14.dll
;zend_extension = C:\xampp\php\ext\php_xdebug-2.5.5-7.0-vc14.dll
;zend_extension = "c:\xampp\php\ext\php_xdebug-2.6.0-7.2-vc15.dll"
xdebug.remote_autostart = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_Host = "127.0.0.1"
xdebug.remote_log = "c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
;36000 = 10h
xdebug.remote_cookie_expire_time = 36000
これがお役に立てば幸いです。
Br、ALi
Eclipseを使用している場合、特定の起動用に構成されたdebugger([Debugger]タブを参照)がZendである可能性がありますデバッガ。XDebugではありません。デバッグの起動を修正して、再試行してください。これで問題は解決しました。
残念ながらスクリーンショットを投稿することはできません。ただし、Eclipseでは、次の場所に移動できます:Debug Configurations> PHP Web Application> then launch the launch> Debugger Tab> use the Server Debugger drop down to XDebug> hit the Apply button and retry 。
私は同じ問題を抱えていて、2つのことのどちらかがそれを修正しました...
PHP.iniで重複するzend_extension定義を削除しました
または、おそらくここから最新のxdebugバージョンにアップグレードしただけです http://xdebug.org/download.php
(私はXAMPP v1.7.1に付属するxdebugを実行していました)
これから始めます... xdebug dllのすべての異なるバージョンを試しました...これが機能しない原因は、[式]ウィンドウが開いていたためです...デバッグするときは閉じたままにしてください...ウォッチを一時的に追加し、「ステップ」する前に[式]ウィンドウを閉じます...
偽物...
簡単に言うと、新しくインストールして構成したxdebugがPhpStormで機能しなかったときのことです。php.iniファイルを更新した後、Apacheを再起動するのを忘れていました。
私はEclipse Oxygenを使っています。かなりの時間を費やした後、Debug Configuration
の単純な削除と再作成が役立つことがわかりました。
私にとって、問題はXdebug v2.7.0beta2-devのphp 7.2のようでしたbetaの部分に注意してください。これはpuphpet.comを使用してインストールされました。私はphp 7.1を試しましたが、問題は消えました。これを見つけるのに何時間もかかった!
1-php.iniのxdebug設定を確認する
2- Eclipse-> project-> properties-> phpDebug->プロジェクト固有の設定を有効にする
phpDebugger-> configurattion-> portまたはwidndow-> preference-> php-> debug-> installedDebuggers
3-ウィンドウ->設定-> php->
インタープリター->バージョン実行ファイル-> php-win.exeへのパス
point:各デバッグlib(xdebug、zend_debugger、...)に対して、デフォルトのphp実行可能ファイルを設定できます。
4-あなたのアプリケーションサーバーは80と異なるポートで動作します。 widndow-> preference-> php-> PHPサーバー
私もこれを修正しました。拡張の代わりにzend_extensionを使用します。
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"