静态站点生成:正在检查WordPress是否可以从www.example.com向自己发出请求172.20.0.3

wswtfjt7  于 2023-03-07  发布在  WordPress
关注(0)|答案(4)|浏览(206)

我有一个简单的WordPress网站运行在Docker容器上的Mac OS.当我尝试运行简单静态插件,它根本不工作.我看不到任何日志.诊断部分显示为以下一个失败.

  • 一月一日 *

我使用docker-compose启动容器,如下所述-https://docs.docker.com/samples/wordpress/
我在这里错过了什么?我真的想生成我的网站的静态版本。任何帮助是赞赏。
我已经尝试了建议的修复here,这对我不起作用。
问候你沙姆兰。

9udxz4iz

9udxz4iz1#

你需要添加的ip地址从docker只需要看到日志在docker;

docker-compose logs -f
wordpress_1  | 172.23.0.1 - - [25/Jul/2021:14:39:19 +0000] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 609

找到您的IP地址,然后将其写入docker-compose文件:

wordpress:
  image: docker.io/bitnami/wordpress:5
  extra_hosts:
    - localhost:172.23.0.1
nzrxty8p

nzrxty8p2#

在我的情况下,问题是端口Map。
我Map的是8080:80,所以Wordpress在技术上托管在容器内的80上,但是URL被定义为localhost:8080(wordpress),使得容器无法访问它。
解决方案:

    • 使用端口Map80:80**
xghobddn

xghobddn3#

您可以修改WordPress站点URL以使用Docker容器IP地址并在http://172.20.0.3/wp-admin访问它。容器将能够在端口80上与自己通信。
问题是Docker容器无法与分配给Web服务器的端口之外的其他端口通信。例如,容器是使用以下Map创建的:

wordpress:
     image: wordpress:latest
     ports:
       - "8088:80"
     volumes:
       - ./app:/var/www/html

我使用http://0.0.0.0:8088安装了WordPress,因此将站点URL设置为这样。在容器内,不可能访问localhost:8088,而只能访问localhost:80。使用容器公共IP设置站点URL允许使用该IP地址与端口80进行内部通信。

scyqe7ek

scyqe7ek4#

我正在使用Automated Nginx reverse proxy for docker containers,我也遇到了同样的问题。虽然简单的静态说,“检查WordPress是否可以从www.example.com向自己发出请求192.168.112.2”是200确定-它不能创建静态文件,它没有错误,没有响应,只是空白的生成页面。
我可以确认docker-compose中的“extra_hosts”指令解决了该问题。
Here is a screenshot of my docker-compose file

相关问题