docker使用之php-fpm+apache多容器的xdebu
2020-04-07 本文已影响0人
程序猿阿乐
PHP.and.MySQL.Create.Modify.Reuse
PHP&MySQL范例精解_创建、修改、重用-docker环境搭建-6.补充,准备装配xdebug,并
安装xdebug
docker使用之php-fpm+apache多容器的xdebug和phpstorm的配置
php-5.6-fpm-gd的镜像的构建过程可以看
在之前php-5.6-fpm-gd的基础上,配置xdebug
创建Dockerfile放到Dockerfile-php-5.6-fpm-gd-xdebug目录下
FROM php-5.6-fpm-gd
RUN pecl install xdebug-2.5.0 && docker-php-ext-enable xdebug && mv /Dockerfile /Dockerfile.php-5.6-fpm-gd
COPY Dockerfile /
# cd Dockerfile-php-5.6-fpm-gd-xdebug
# docker build -t php-5.6-fpm-gd-xdebug .
生成镜像php-5.6-fpm-gd-xdebug:
cd Dockerfile-php-5.6-fpm-gd-xdebug
docker build -t php-5.6-fpm-gd-xdebug .
容器中的xdebug配置
启动临时容器
docker run -d --rm \
--name virhuiai-php-5.6-fpm-gd-xdebug \
--net=virhuiai_nw \
php-5.6-fpm-gd-xdebug
将xdebug的配置复制到docker之外,这里先临时放个位置:
docker cp virhuiai-php-5.6-fpm-gd-xdebug:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini /Volumes/TmpDownload
修改内容,添加:
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = host.docker.internal
xdebug.remote_port = 9001
xdebug.remote_log = /var/log/php/xdebug.log
后面phpstorm使用的是PHP Web Page的方式来调试,不用配xdebug.idekey
启动相应的容器并准备一个php文件
docker stop virhuiai-php-5.6-fpm-gd-xdebug
docker run -d --rm \
--name virhuiai-php-fpm56 \
--net=virhuiai_nw \
-v /Volumes/TmpDownload/phptmp/:/var/www/html/ \
-v /Volumes/TmpDownload/docker-php-ext-xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
php-5.6-fpm-gd-xdebug
docker run -d --rm \
-p 80:80 \
--name virhuiai-apache \
--net=virhuiai_nw \
-v /Users/jjkkll/Documents/2020-book-read/7302195625/docker/httpd-2.4.37-conf/conf:/usr/local/apache2/conf \
-v /Volumes/TmpDownload/phptmp/:/usr/local/apache2/htdocs \
httpd:2.4.37-alpine
这儿,/Volumes/TmpDownload/phptmp/作为临时的测试xdebug是否有效的目录,后期可以自由更改
可以创建index.php文件并用phpinfo()
看输出的结果确定xdebug配置完毕
生成一个/xdebug/demo.php文件,并在ide中打断点
<?php
echo "1";
echo "2";
echo "3";

安装Chrome浏览器插件xdebug helper
略...
phpStorm配置
进入设置,设置PHP Interpreter,选择docker,并选用我们之前生成的镜像

下面就是配置后的界面

应用保存后继续,将之前的90001端口配置上

选择IDE工具栏的“Add Configuration”,并先创建PHP Web Page

Server右边的…点开创建一个,并设置好映射目录

StartURL可以输入刚刚的路径/xdebug/demo.php,保存,点击甲虫图标就可以

下方区域也能看相应的值

测试ok,正式要使用的时候再修改相应的配置就好