【问题标题】:How to enable xdebug log in Laravel sail?如何在 Laravel Sai 中启用 xdebug 日志?
【发布时间】:2021-12-16 19:16:24
【问题描述】:

我正在尝试在 Laravel 8 中启用 xdebug 日志,使用 docker 的sai 包。

根据xDebugs docs,将xdebug.log设置为一个值时会自动出现日志。

这是我尝试过的:

  1. 使用sail artisan sail:publish发布sails的文件
  2. 这创建了/docker/7.4/docker/8.0/docker/8.1
  3. sail php -v看到我用的是php 8.0.12
  4. 现在我将xdebug.log =/var/www/html/storage/app 添加到docker/8.0/php.ini
  5. 我运行sail build --no-cache 并重新启动容器。这大约需要 8 分钟。

不幸的是,检查 phpinfo() 表明 xdebug.log 没有价值:

根据我的 docker 文件,php.ini 应该已被复制: COPY php.ini /etc/php/8.0/cli/conf.d/99-sail.ini 所以我想尝试读取文件。为此,我尝试了以下方法:

  1. 使用sail shell登录容器
  2. 转到cd /etc/php/8.0/cli/conf.d/
  3. 使用cat 99-sail.ini读取文件

就是内容:

[PHP]
post_max_size = 100M
upload_max_filesize = 100M
variables_order = EGPCS

# Extensions...
extension=swoole.so

# Zend Extensions...
zend_extension=xdebug.so

但是在/docker/8.0/php.ini 我只有这个:

[PHP]
post_max_size = 100M
upload_max_filesize = 100M
variables_order = EGPCS
xdebug.log =/var/www/html/storage/app

这是为什么呢?我也想尝试直接编辑文件,但不知道vim。尽管图像是 ubuntu:21.04,但命令 sudo 也是未知的。我尝试安装 vim,但我缺少访问权限。

【问题讨论】:

    标签: php laravel docker xdebug


    【解决方案1】:

    COPY php.ini /etc/php/8.0/cli/conf.d/99-sail.ini

    您可以在被复制的php.ini 文件中添加 Xdebug 配置。但是如果你更新它,那么你需要重建/重启你的容器。

    【讨论】:

    • 这就是我尝试过的。我将值添加到docker/8.0/php.ini,但它没有被复制。相反,99-sail.ini 看起来与 docker/ 文件夹中的任何 php.ini 文件都非常不同
    【解决方案2】:

    看起来这个 Laravel 应用使用了自己的 dockerfile。我忘了检查docker-compose.ymllaravel.test 内部是指向不同文件的构建。这就是为什么 docker 文件中的 php.ini 没有被复制的原因。

    我还必须使用实际日志文件的路径并将其放在引号中,如下所示:

    xdebug.log ="/var/www/html/storage/app/xdebug.log"
    

    【讨论】:

      猜你喜欢
      • 2015-08-06
      • 2017-05-30
      • 2020-08-20
      • 2013-12-20
      • 2018-07-23
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 2022-07-16
      相关资源
      最近更新 更多