端口 443 上的 DDEV 端口冲突(plesk?)

问题描述 投票:0回答:1

突然,我在 TYPO3 实例上遇到了数据库连接问题(

An exception occurred in the driver: php_network_getaddresses: getaddrinfo for db failed: Temporary failure in name resolution
)。所以我想也许重新启动可以解决问题,因为我想不出我所做的事情导致了问题。但是重新启动后,我遇到了新问题:

ddev restart
Restarting project TYPO3...
Container ddev-TYPO3-db  Removed
Container ddev-TYPO3-web  Removed
Network ddev-typo3_default  Removed
Network ddev-typo3_default  Created
Container ddev-TYPO3-web  Started
Container ddev-TYPO3-db  Started
Error response from daemon: driver failed programming external connectivity on endpoint ddev-router (03945f5b287d05770888b6e6fbdfe19f9db63191243f9fdb2276b91e1d3411d0): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
Failed to restart TYPO3: failed to start ddev-router: ComposeCmd failed to run 'COMPOSE_PROJECT_NAME=ddev-TYPO3 docker-compose -f /home/typo3/.ddev/.router-compose-full.yaml -p ddev-router up -d', action='[-p ddev-router up -d]', err='exit status 1', stdout='', stderr='Container ddev-router  Creating
Container ddev-router  Created
Container ddev-router  Starting
Error response from daemon: driver failed programming external connectivity on endpoint ddev-router (03945f5b287d05770888b6e6fbdfe19f9db63191243f9fdb2276b91e1d3411d0): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use'

我的端口似乎有问题。对于设置,我遵循了以下设置:https://ddev.readthedocs.io/en/latest/users/topics/hosting/

使用命令

docker ps -a
我得到以下结果:

CONTAINER ID   IMAGE                                                 COMMAND                  CREATED         STATUS                   PORTS                                               NAMES
39b8ee782ba0   drud/ddev-router:v1.21.5-built                        "/app/docker-entrypo…"   8 minutes ago   Created                                                                      ddev-router
07372d7725d1   drud/ddev-dbserver-mariadb-10.4:v1.21.5-TYPO3-built   "/docker-entrypoint.…"   8 minutes ago   Up 8 minutes (healthy)   127.0.0.1:49162->3306/tcp                           ddev-TYPO3-db
a8c012aa3b04   drud/ddev-webserver-prod:v1.21.5-TYPO3-built          "/start.sh"              8 minutes ago   Up 8 minutes (healthy)   127.0.0.1:49160->80/tcp, 127.0.0.1:49159->443/tcp   ddev-TYPO3-web

我觉得这样就好了。

sudo lsof -i:443
sudo lsof -i:80
返回:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   2819  root    6u  IPv4  39640      0t0  TCP <hiding>.plesk.page:https (LISTEN)
nginx   2820 nginx    6u  IPv4  39640      0t0  TCP <hiding>.plesk.page:https (LISTEN)

我也尝试杀死

nginx
并停止
apach2
并重新开始
ddev
,但它也会开始
nginx

sudo kill 2819 && sudo service apache2 stop && ddev restart

Restarting project TYPO3...
Container ddev-TYPO3-db  Removed
Container ddev-TYPO3-web  Removed
Network ddev-typo3_default  Removed
Network ddev-typo3_default  Created
Container ddev-TYPO3-web  Started
Container ddev-TYPO3-db  Started
Error response from daemon: driver failed programming external connectivity on endpoint ddev-router (b51bba1702f68372784247c0bc1a964d547905e2b6badf49a55ac0f1261bf9bf): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
Failed to restart TYPO3: failed to start ddev-router: ComposeCmd failed to run 'COMPOSE_PROJECT_NAME=ddev-TYPO3 docker-compose -f /home/typo3/.ddev/.router-compose-full.yaml -p ddev-router up -d', action='[-p ddev-router up -d]', err='exit status 1', stdout='', stderr='Container ddev-router  Creating
Container ddev-router  Created
Container ddev-router  Starting
Error response from daemon: driver failed programming external connectivity on endpoint ddev-router (b51bba1702f68372784247c0bc1a964d547905e2b6badf49a55ac0f1261bf9bf): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use'

现在我不知道我有什么或在哪里配置。

致以诚挚的问候,感谢您的帮助

更新:

好吧,有些奇怪的事情。我无法从 Ubuntu 中删除

nginx
,因为它尚未安装。所以,我不知道为什么 nginx 被列为命令。但我可以通过终止进程并立即通过 docker 启动容器来解决问题。数据库连接现在也可以工作了。我对该解决方案不满意,但我的服务器实例目前正在运行。如果您对我必须重新配置的内容有任何想法,请告诉我。

typo3 ddev
1个回答
1
投票

这基本上是一个

ddev
/
docker
问题,与 TYPO3 无关。

ddev 启动会注意到

nginx
,因为它是全局 ddev
router
容器所使用的软件。由于端口冲突,该容器无法启动。

listen tcp4 0.0.0.0:443: bind: address already in use

这意味着,对于所有接口,其他东西都直接在端口 443 上运行。

ddev
项目有一个故障排除章节,专门针对占用的端口,可以在这里找到:https://ddev.readthedocs.io/en/latest/users/usage/troubleshooting/#web-server-ports-已被占用

端口检查命令的结果

$ sudo lsof -i:443 and sudo lsof -i:80
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   2819  root    6u  IPv4  39640      0t0  TCP <hiding>.plesk.page:https (LISTEN)
nginx   2820 nginx    6u  IPv4  39640      0t0  TCP <hiding>.plesk.page:https (LISTEN)

表示有一个软件直接运行在您的主机上,名称为

<hiding>.plesk.page:https

您的服务器上安装/可用的

plesk
服务器管理软件是否有任何更改?如果是,则该软件包默认提供网络服务器。您需要在那里禁用它(如果可能) - 或者在非默认端口上运行 ddev 东西(重新配置 ddev),然后以某种方式代理它。

简而言之 - 您的系统上有冲突的软件。

我对 PLESK 或任何这些精美的管理面板软件并不坚定,因此无法提供更多帮助。

可能是 plesk 直接安装 ngnix,而不是从操作系统 (Ubunutu) 包中安装 - 或者将它们生成为 docker 容器。

您需要识别它以及该块来自哪里。如果不是直接在您的服务器上,您可以检查某些 docker 容器是否正在运行:

# display running container
$ docker ps 

# display all container, even stopped container
$ docker ps -a

也许有一个容器挂在端口 80 和/或 443 上的绑定上。

如果它是 ddev 容器,它可能会以某种方式停滞。如果我没记错的话,ddev 文档中也对此进行了介绍(抱歉,我个人也没有使用 ddev)。

来自端口故障排除部分:

# Stop all Docker containers that might be using the port by running:
$ ddev poweroff && \
    docker rm -f $(docker ps -aq)

# then restart docker (depends on your os, debian/ubuntu in newer
# version maybe
$ systemctl restart docker
# or for older versions
$ service docker restart

此外,也许您应该从此处的通用 ddev 故障排除列表开始:https://ddev.readthedocs.io/en/latest/users/usage/troubleshooting/#general-troubleshooting-strategies

一般故障排除策略

  • 首先运行 ddev poweroff 以确保所有容器都可以重新启动。
  • 暂时禁用防火墙、VPN、网络代理和病毒检查程序 当您排除故障时。
  • 暂时禁用您在 Docker 设置中建立的任何代理。
  • 使用 ddev debug dockercheck 和 ddev debug test 帮助梳理 Docker 问题。
  • 在 macOS 上,检查以确保 Docker Desktop 或 Colima 没有磁盘不足 空间。在设置(或首选项)→资源→磁盘映像大小中有 应留有足够的空间;尽量不要让使用率超过80%,因为 报告的数字可能不可靠。如果它说使用零,则有东西 错了。
  • 如果您有 PHP 覆盖、nginx 或 Apache 覆盖等自定义设置, MySQL/PostgreSQL 覆盖、自定义服务或 config.yaml 更改,请 在排除故障时将其退回。最简单的很重要 故障排除时可能的环境。
  • 重新启动 Docker。在严重的情况下考虑将 Docker 工厂重置,这 将破坏您已加载的所有数据库。请参阅 Docker 故障排除 更多。
  • 尝试最简单的 DDEV 项目(如 ddev 调试测试):
ddev poweroff
mkdir ~/tmp/testddev
cd ~/tmp/testddev
ddev config --auto
printf "<?php\nphpinfo();\n" > index.php
ddev start
  • 如果启动正常,则可能是您尝试启动的项目存在问题。
© www.soinside.com 2019 - 2024. All rights reserved.