我在Amazon EC2云中的"Amazon Linux"(Centos派生的)32位实例上运行XAMPP 1.7.3a.我下载/构建/安装了XDEBUG 2.1.0.phpinfo()输出中的相关项如下所示:
Directive Local Value Master Value
xdebug.idekey ECLIPSE_DBGP ECLIPSE_DBGP
xdebug.default_enable On On
xdebug.remote_autostart On On
xdebug.remote_connect_back Off Off
xdebug.remote_cookie_expire_time 3600 3600
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.remote_log /opt/lampp/logs/xdebug_log
/opt/lampp/logs/xdebug_log
Run Code Online (Sandbox Code Playgroud)
我使用PuTTY版本0.60中的SSH客户端从运行XP SP3的Windows笔记本电脑访问Linux机器.另外在笔记本电脑上我已经安装了Eclipse PDT(Helios Service Release 1 Build id:20100917-0705),我想我已经正确配置了使用端口9000进行XDEBUG远程调试.我说我想,因为我'很难弄清楚如何做到这一点,以及如何使用Eclipse PDT.但我确实设法配置并使用端口9000在localhost(127.0.0.1)上使用XAMPP for Windows 1.7.3提供的网页运行的PHP代码的"远程"调试工作.服务器的phpinfo()输出在笔记本电脑,其PDT 是能够调试是与上述相同,除了:
xdebug.idekey my_username no value
xdebug.remote_host localhost localhost
xdebug.remote_log no value no value
Run Code Online (Sandbox Code Playgroud)
我很确定这些差异与问题无关.事实上,xdebug.idekey最初是Linux上的"root novalue",然后我通过编辑php.ini并在启动apache的sudo-ed脚本中设置环境变量DBGP_IDEKEY来更改为ECLIPSE_DBGP,徒劳地希望让事情正常工作.
笔记本电脑和Linux机箱之间有防火墙和NAT路由器.所以我试图通过PuTTY ssh隧道使用端口转发来使Linux XDEBUG与Windows PDT通信.我一直在使用XT转发PuTTY几个月没有任何问题.我在PuTTY中设置了隧道,本地端口9000转发到Linux机箱上的9000端口,Linux机箱上的端口9000转发到127.0.0.1上的端口9000,PuTTY隧道面板显示:
L9000 host...amazonaws.com:9000
R9000 …Run Code Online (Sandbox Code Playgroud) 我按照以下步骤操作:
修改php.ini并插入以下内容
zend_extension_ts="D:\Program Files\webserver\php\ext\php_xdebug.dll"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.idekey=default
xdebug.remote_autostart=1
Run Code Online (Sandbox Code Playgroud)重启apache并成功安装XDebug.
DBGP已成功安装并配置为127.0.0.1
但是XDebugger仍然没有连接/使用notepad ++.
我一直在网上阅读有关在Eclipse和xDebug上使用PHP for Developers进行调试的内容.我已经为xDebug安装了所有必需的文件,现在当我在Eclipse中时,我可以使用脚本运行调试器,它运行正常.
问题是我在我的Windows机器上使用AppServ(Apache,PHP和MySQL),我想在我的浏览器中加载PHP页面时调试我的PHP文件(而不是运行它们)作为Eclipse中的脚本).
那可能吗?
乔尔
我在使用MAMP在Mac OSX上构建/安装XDebug时遇到问题.
到目前为止,我在网上进行了广泛的搜索,目前我被困在XDebug"安装向导"的一部分,它告诉我在我下载的源代码上"运行:phpize".
当我运行时,phpize我收到以下消息:
new-host-2:xdebug-2.2.0 Dima$ phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
Run Code Online (Sandbox Code Playgroud)
如果我做了which phpize我得到:
new-host-2:xdebug-2.2.0 Dima$ which phpize
/usr/bin/phpize
Run Code Online (Sandbox Code Playgroud)
这不是我想要使用的版本,我想使用phpize我假设的MAMP安装版本,因为我想在MAMP版本的PHP上安装XDebug.这很令人费解,因为我已将MAMP特定的PHP bin路径添加到我的.bash_profile中$PATH.
如果我跑echo $PATH我得到:
new-host-2:xdebug-2.2.0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置xdebug,以便可以从本地笔记本电脑上运行的PHP Storm调试远程服务器上的php代码。
它不起作用,但是我认为开始解决问题的一个好地方是查看xdebug日志。
遗憾的是,xdebug日志文件仍然为空。
我正在尝试通过运行第一行为phpinfo()的.php文件来测试xdebug
运行文件的结果为我提供了与xdebug相关的以下行:
xdebug support => enabled
xdebug.auto_trace => Off => Off
xdebug.cli_color => 0 => 0
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.coverage_enable => On => On
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value …Run Code Online (Sandbox Code Playgroud) 我的问题是当我开始监听端口时xdebug不起作用.我认为PhpStorm无法与xdebug链接.我只是得到调试器面板变量不可用.它看起来像xdebug没有正确的设置.
使用的软件和版本:
Ubuntu 16.04 LTS
Docker v 17.06
docker-compose 1.15
Run Code Online (Sandbox Code Playgroud)
所以我多次尝试设置xdebug + Docker + PhpStorm但不能这样做.我已经阅读了很多教程,但没有任何帮助我.
我docker-compose.yml看起来像这样:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
restart: on-failure
volumes:
- "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf"
- "./etc/ssl:/etc/ssl"
- "./project:/var/www/html/project"
depends_on:
- php
- db
php:
image: nanoninja/php-fpm
restart: on-failure
volumes:
- "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
- "./project:/var/www/html/project"
db:
image: mysql
container_name: ${MYSQL_HOST}
restart: on-failure
env_file:
- ".env"
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
command: mysqld --sql-mode=NO_ENGINE_SUBSTITUTION
ports:
- "8988:3306"
volumes:
- "./data/db/mysql:/var/lib/mysql"
Run Code Online (Sandbox Code Playgroud)
我 …
我正在使用 NetBeans 通过 xdebug 来调试 php,一切都很完美,但是当我正在调试的同一个脚本中有多个连接时。
我已经看到 PhpStorm 提供了配置检查:同时连接https://blog.jetbrains.com/phpstorm/2013/04/simultaneous-debugging-sessions-in-phpstorm/
我想知道 NetBeans 是否可以管理同时连接以及如何激活它?
PHP版本:7.1.20
XDebug版本:2.7.0
我在MacOS Mojave上使用Docker容器。按下“ F5”时,它将显示调试选项“暂停”,“重新启动”和“停止”。但是“跨步”,“步入”,“步出”被禁用。
我是一个学习者,因为我习惯在Windows OS上编写代码到2012-13。那年之后,我本月回到编码。:)即使查看过Google上有关如何解决此问题的许多帖子,我仍然不确定如何最终使其生效。请帮忙。
我的launch.json档案:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9001,
"log": true,
"pathMappings": {
"/var/www/html": "${workspaceFolder}/learn"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9001
}
]
}
Run Code Online (Sandbox Code Playgroud)
XDebug php.ini配置:
xdebug.remote_host = 172.20.0.1
xdebug.remote_port = 9001
xdebug.scream = 1
xdebug.remote_enable = 1
xdebug.show_local_vars = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_log = "/var/www/html/xdebug.log" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 VSCode 在我的 XAMPP 上进行调试,但没有成功。我知道有很多关于这个的问题,我已经尽我所能,但仍然无法奏效。
关于我的 xdebug 扩展,你真的有一件很奇怪的事情。我目前使用的是 PHP v7.4.12 和 Xdebug 版本 3。
我知道我的 Xdebug 可以在 PHP 上运行,因为我查看了phpinfo()它并显示了我如何设置它。怪异的一部分是许多教程那里通常之中zend_extension = path..,xdebug.remote_enable = 1并且xdebug.remote_autostart = 1应该足够,但是当我的phpinfo它看作是如下所示:
我试图用设置xdebug.remote_port = 9000和xdebug.remote_host = "localhost",但仍然无法工作。我什至读过有关将 localhost 更改为的内容,127.0.0.1但仍然无效。
任何帮助,将不胜感激。这是我的 launch.json 文件和 php ini 文件。
配置文件
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_log = "C:\xampp\tmp\xdebug\xdebug.log"
xdebug.remote_port = 9000
xdebug.remote_host = "127.0.0.1"
xdebug.idekey=VSCODE
Run Code Online (Sandbox Code Playgroud)
启动文件
{
// Use IntelliSense to learn about …Run Code Online (Sandbox Code Playgroud) 我的 phpunit 容器有这个 dockerfile:
FROM php:8.1-fpm-alpine
WORKDIR /var/www/html
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
ENV PHP_MEMORY_LIMIT=1G
ENV PHP_UPLOAD_MAX_FILESIZE: 512M
ENV PHP_POST_MAX_SIZE: 512M
RUN docker-php-ext-install pdo
RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd && apk del libpng-dev
RUN apk update \
&& apk upgrade \
&& apk add --no-cache \
freetype \
libpng \
libjpeg-turbo \
freetype-dev \
libpng-dev \
jpeg-dev \
libwebp-dev \
libjpeg \
libjpeg-turbo-dev
RUN docker-php-ext-configure gd \
--with-freetype=/usr/lib/ \ …Run Code Online (Sandbox Code Playgroud)