Rud*_*olf 6 xdebug phpstorm docker docker-compose
我正在尝试将Magento开发环境移至docker。我已经开始使用此现成的解决方案。除了xdebug,几乎所有东西都可以正常工作。
我已根据本教程设置了PhpStorm,并已在服务器部分的docker卷上正确映射了本地项目目录。当我尝试开始调试时,然后在调试器窗口中显示此消息
在本地找不到文件“ /var/www/html/pub/index.php”。要修复它,请通过环境变量PHP_IDE_CONFIG设置服务器名称,然后重新启动调试会话。
我添加了这个
environment:
- PHP_IDE_CONFIG=serverName=Magetwo
Run Code Online (Sandbox Code Playgroud)
到docker-compose.yml
php部分中的,但仍然是相同的错误。仅当我的项目位于主机的相同目录(如容器卷)中时,调试才起作用,但是我希望具有不同的目录。
我应该更改些什么以强制xdebug工作?
小智 6
我通常将docker子网IP设置为如下所示的远程主机ip:
XDEBUG_CONFIG=remote_host=172.17.0.1
PHP_IDE_CONFIG=serverName=your_server_name_in_phpstorm_settings
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令在Linux中检查ip:
ifconfig docker0
Run Code Online (Sandbox Code Playgroud)
另外,如果您使用的是docker-compose,则可以将xdebug变量定义移动到单独的.env文件,并将其链接到docker-compose.yml中的容器配置:
container_name:
...
env_file: .env
...
...
Run Code Online (Sandbox Code Playgroud)
尝试使用 docker 在 PHPStorm 上进行调试时,我遇到了同样的问题。
我通过将 server_name 添加到 nginx 配置来解决它
server_name _;// 将此行添加到 nginx 配置文件中
server {
listen 80;
server_name _;// add this line to nginx config file
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app_bug:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include xdebug/remote.conf;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于有人仍然和我有同样的问题
尝试这样添加:
environment:
PHP_IDE_CONFIG: "serverName=Magetwo"
Run Code Online (Sandbox Code Playgroud)
然后在“设置”>“PHP”>“服务器”中添加一个新服务器,其中包含名称Magetwo
以及用于调试的主机和端口。
小智 2
我遇到了同样的问题尝试在 xdebug 配置中添加这一行:
xdebug.extended_info = 1
Run Code Online (Sandbox Code Playgroud)
它应该将环境变量传递给 $_SERVER
归档时间: |
|
查看次数: |
3592 次 |
最近记录: |