php - PhpStorm 未发布到 Docker
问题描述
我在 Windows 10 (1909) 上全新安装了 PhpStorm 2020.1、Docker Desktop 2.3.0.3 (45519)。
我正在尝试按照有关如何启动开发环境的说明进行操作。
我已按照 PhpStorm 随附的说明进行操作,一切似乎都已启动,但我无法打开示例页面HelloWorld.php
以下是我的设置,有人可以就我所缺少的内容提供一些建议。
上面显示的 docker-compose.yml 来自“PHPStorm Workshop Project”,它不是我创建的。 PHPStorm 研讨会项目
version: '2'
services:
debug:
image: phpstorm/php-71-apache-xdebug
ports:
- "8081:80"
volumes:
- ./workshop/07_Debugging:/var/www/html
environment:
#For Windows and macOS, replace the line below with `host.docker.internal`, which will automatically resolve to the internal address of the host Docker is running on.
#For Linux, replace the line below with your hostname, which you can obtain by executing `hostname` in Terminal.
XDEBUG_CONFIG: remote_host=host.docker.internal
#For macOS, if you use a local Homebrew php-fpm installation, port `9000` (which is the default debugging port) may become occupied. PhpStorm will remain silent on starting listening for incoming connections. If this is the case, in the Settings | Languages & Frameworks | PHP | Debug, set the Debug port to 9001, and use the following configuration line instead.
#XDEBUG_CONFIG: remote_host=host.docker.internal, remote_port=9001
sftp:
image: phpstorm/sftp-server
ports:
- "2022:22"
volumes:
# Uncomment for Windows
- C:/temp:/home/jetbrains/upload
# Uncomment for macOS/Linux
# - /tmp:/home/jetbrains/upload
command: jetbrains:jetbrains:1001
mysql:
image: phpstorm/mysql
ports:
- "33056:3306"
volumes:
- ./data:/var/lib/mysql
======================
正如 LazyOne 指出的那样,我错过了阅读端口号托管页面,我应该尝试 8081。但这只是显示 404。
查看码头图像,我可以看到......
图片:phpstorm/php-71-apache-xdebug
日志:
[Mon Jun 29 09:38:13.391958 2020] [php7:error] [pid 17] [client 172.19.0.1:38860] script '/var/www/html/HelloWorld.php' not found or unable to stat
172.19.0.1 - - [29/Jun/2020:09:38:13 +0000] "GET /HelloWorld.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
图片:phpstorm/mysql
日志:
[Entrypoint] MySQL Docker Image 8.0.20-1.1.16
[Entrypoint] Starting MySQL 8.0.20-1.1.16
2020-06-29T09:39:55.936014Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.20) starting as process 1
2020-06-29T09:39:55.966003Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-06-29T09:39:56.460720Z 1 [Warning] [MY-012579] [InnoDB] fallocate(16, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.473039Z 1 [Warning] [MY-012579] [InnoDB] fallocate(17, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.496812Z 1 [Warning] [MY-012579] [InnoDB] fallocate(18, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.518401Z 1 [Warning] [MY-012579] [InnoDB] fallocate(19, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.532661Z 1 [Warning] [MY-012579] [InnoDB] fallocate(20, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.551602Z 1 [Warning] [MY-012579] [InnoDB] fallocate(21, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.565370Z 1 [Warning] [MY-012579] [InnoDB] fallocate(22, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.581883Z 1 [Warning] [MY-012579] [InnoDB] fallocate(23, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.597827Z 1 [Warning] [MY-012579] [InnoDB] fallocate(24, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.615128Z 1 [Warning] [MY-012579] [InnoDB] fallocate(25, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-06-29T09:39:56.654877Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-06-29T09:39:56.887730Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
2020-06-29T09:39:56.986555Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-06-29T09:39:57.004613Z 0 [ERROR] [MY-010270] [Server] Can't start server : Bind on unix socket: Input/output error
2020-06-29T09:39:57.005010Z 0 [ERROR] [MY-010258] [Server] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
2020-06-29T09:39:57.005476Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-06-29T09:39:58.254400Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.20) MySQL Community Server - GPL.
我不知道在端口 22 上运行的其他任何东西。
解决方案
根据您的屏幕截图和docker-compose.yml
文件内容:
您应该使用
localhost:8081
而不是仅localhost
在浏览器中使用。您应该将 HelloWorld.php 文件移动到
/workshop/07_Debugging
文件夹中,因为这是在容器内被映射/可访问的文件夹。HelloWorld.php 当前所在的项目根文件夹位于“可访问/映射”路径之外。
推荐阅读
- r - 创建一个变量来计算每个观察中出现的变量中零值的数量-R
- typescript - 如何获取继承基本类型接口的函数类型的返回值
- python - 如何在 python 中使用 backtrader 正确记录交易?
- mysql - 我可以将多行中的数据合并为一行吗?- SQL
- swagger - 是否有规定在bloomreach/hippo cms 中导入或发布外部swagger json/yaml?
- c - 何时使用 return 以及如何控制它在 C 中的位置?
- python - AWS:Lambda 通过 Python boto3 客户端提交批处理作业,但在收到响应之前超时
- python - 如何为熊猫的特定行和列添加值?
- html - 如何在 vba excel 中删除 HTML 元素
- xml-parsing - 谁能帮我从 .XML 中获得价值