【问题标题】:Docker + reverse-proxy(nginx) + subdirectory as root + wordpress(apache) + multisiteDocker +反向代理(nginx)+子目录作为root + wordpress(apache)+多站点
【发布时间】:2018-11-23 16:07:18
【问题描述】:

注意:在谷歌翻译上从葡萄牙语翻译成英语,对不起...

我正在尝试将 wordpress 网站放到网上,因为 wordpress 的根目录已经在子目录中(例如:webplace.example.br/subdirectory/ nginx:alpine 的容器作为反向代理,对于同一主机上的另一个容器wordpress:php7.2,我在nginx 中使用此设置:

注意2:不是wordpress,我只是想在网上建立一个基础,我不会创建/编辑网站。

server {
    listen 80;
    server_name webplace.example.br;

    location /subdirectory/ {
        proxy_pass  http://container_wordpress:80/subdirectory/;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }

}

,在得到这么多之后,我最终在 wordpress 容器的 /etc/apache2/apache2.conf 中创建了一个别名,如下所示:

...
Alias /subdirectory /var/www/html
<Directory "/var/www/html">
    Options +Indexes
    AllowOverride All
</Directory>
...

正常安装后,我已经按照以下步骤激活了多站点:

第一个,在/* That's all... 文件的/* That's all... 上方添加以下行:

define ('WP_ALLOW_MULTISITE', true);

第二,在我更新页面后不久,它在工具>安装网络中,它给出了'ok',它在之前输入同一文件的行下方添加了这个文本:

define ('MULTISITE', true);
define ('SUBDOMAIN_INSTALL', false);
define ('DOMAIN_CURRENT_SITE', 'webplace.example.br');
define ('PATH_CURRENT_SITE', '/subdirectory/');
define ('SITE_ID_CURRENT_SITE', 1);
define ('BLOG_ID_CURRENT_SITE', 1);

第三,这部分在.htaccess,评论其他所有内容:

RewriteEngine On
RewriteBase /subdirectory/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) var/www/html/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ var/www/html/$2 [L]
RewriteRule . index.php [L]

有了这个站点继续正常工作,但是当我创建另一个站点时,我在里面放了一些东西并尝试访问它,该站点完全没有样式,只有纯文本,并且当我变得更糟尝试从多站点访问 wp-admin,它甚至没有打开并说它重定向太多,以了解 url 看起来像 webplace.example.br/subdirectory/&lt;multisite&gt;/wp-admin

任何人都可以看到隧道尽头的光,还是您认为它永远不会工作?

注意3:我尝试了几个教程,但它们从未涵盖我使用的所有内容(反向代理(nginx)、子目录、多站点、容器、wordpress(apache)),因此无法正常工作。

注意4:我可能没有正确理解或实施教程解决方案。

注意5:我也接受另一种类型的实现。

【问题讨论】:

    标签: wordpress docker nginx reverse-proxy multisite


    【解决方案1】:

    试试这个:

    为您的 wordpress 实例创建一个子域,例如blog.example.com

    在您的 NGINX 反向代理上设置子域以指向您的 wordpress 容器

    通过 blog.example.com 子域安装 WordPress

    更新您的反向代理,以便 /blog 也指向您的 wordpress 容器

    您的 wordpress 可以通过 blog.example.comexample.com/blog 访问。

    当您访问 example.com/blog 时,您所有的 wp-includes/wp-content 都将通过 blog.example.com 站点加载,而 WordPress 将继续让您的访问者在 example.com/blog 站点上继续点击

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      相关资源
      最近更新 更多