我试图在Docker容器中安装XDebug,但我收到以下错误:
E: Unable to locate package php-xdebug
这是我的Dockerfile:
FROM php:7.0-apache
RUN a2enmod rewrite
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get install php-xdebug -y
COPY php.ini /usr/local/etc/php/
COPY . /var/www/html/
当我在我的计算机上运行相同的命令时,XDebug的安装没有任何错误:
apt-get install php-xdebug
有谁知道问题可能在哪里?
提前谢谢!
答案 0 :(得分:10)
尝试一下:
RUN pecl install xdebug && docker-php-ext-enable xdebug
答案 1 :(得分:7)
我通过在Docker文件中添加以下行来解决这个问题:
FROM php:7.0-apache
RUN a2enmod rewrite
RUN docker-php-ext-install pdo pdo_mysql
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini
COPY php.ini /usr/local/etc/php/
COPY . /var/www/html/
答案 2 :(得分:6)
从PHP 7.4开始,您只需要这个
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
并添加此行以启用远程调试
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo "xdebug.remote_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
答案 3 :(得分:3)
自 xdebug 版本 3 以来,配置名称发生了重大变化。
RUN pecl install xdebug; \
docker-php-ext-enable xdebug
和配置:
{ \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
echo "xdebug.client_host=host.docker.internal"; \
echo "xdebug.client_port=9000"; \
} > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
答案 4 :(得分:0)
对于 PHP 7.3,我能够使用 mlocati 的 docker-php-extension-installer 安装 XDebug。
我的 Dockerfile 如下所示:
FROM php:7.3-apache
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
RUN install-php-extensions xdebug @composer
我的 docker-compose.yml
包含以下允许特殊 host.docker.internal
名称的内容:
extra_hosts:
- "host.docker.internal:host-gateway"
我的 xdebug 配置文件 /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
如下所示:
[xdebug]
zend_extension=xdebug
xdebug.mode=develop,debug
xdebug.start_with_request = yes
xdebug.client_host = "host.docker.internal"
xdebug.client_ip = "9003"
xdebug.idekey="VSCODE"
xdebug.log=/tmp/xdebug_remote.log
答案 5 :(得分:-1)
你应该安装其他人也可以: -
apt-get install php-xdebug ver1.xx
apt-get install php-xdebug ver-4.2.x
也许这会解决这个问题。
RUN a2enmod rewrite
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get install php-xdebug -y
COPY php.ini /usr/local/etc/php/
COPY . /var/www/html/
apt-get update php-xdebug "*'YOUR VERSION:-'* **MAYBE YOU SHOULD CONSIDER FOR YOUR OS"**