首页 > 解决方案 > PhpStorm 未发布到 Docker

问题描述

我在 Windows 10 (1909) 上全新安装了 PhpStorm 2020.1、Docker Desktop 2.3.0.3 (45519)。

我正在尝试按照有关如何启动开发环境的说明进行操作。

我已按照 PhpStorm 随附的说明进行操作,一切似乎都已启动,但我无法打开示例页面HelloWorld.php

以下是我的设置,有人可以就我所缺少的内容提供一些建议。

PhpStorm 设置

码头工人设置

上面显示的 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。

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 上运行的其他任何东西。

标签: phpdockerphpstorm

解决方案


根据您的屏幕截图和docker-compose.yml文件内容:

  1. 您应该使用localhost:8081而不是仅localhost在浏览器中使用。

  2. 您应该将 HelloWorld.php 文件移动到/workshop/07_Debugging文件夹中,因为这是在容器内被映射/可访问的文件夹。HelloWorld.php 当前所在的项目根文件夹位于“可访问/映射”路径之外。


推荐阅读