wordpress - Docker +反向代理(nginx)+子目录作为root + wordpress(apache)+多站点
问题描述
注意:在谷歌翻译上从葡萄牙语翻译成英语,对不起...
我正在尝试将 wordpress 网站放到网上,因为 wordpress 的根目录已经在子目录中(例如:webplace.example.br/subdirectory/
<--root-wordpress),但是每次我设置多站点并尝试使用它们时,它都会开始出现问题. 我正在使用带有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>
...
正常安装后,我已经按照以下步骤激活了多站点:
1st,/* That's all...
在wp-config.php
文件中添加以下行:
define ('WP_ALLOW_MULTISITE', true);
第二,在我更新页面后不久,它在工具>安装网络中,它给出了“确定”,它在之前输入同一文件的行下方添加了这个文本:
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/<multisite>/wp-admin
。
有人能在隧道尽头看到一盏灯,还是你认为它永远不会起作用?
注意3:我尝试了几个教程,但它们从未涵盖我使用的所有内容(反向代理(nginx)、子目录、多站点、容器、wordpress(apache)),使它们无法正常工作。
注意4:我可能没有正确理解或实施教程解决方案。
注5:我也接受另一种类型的实现。
解决方案
尝试这个:
为您的 wordpress 实例创建一个子域,例如blog.example.com
.
在 NGINX 反向代理上设置子域以指向您的 wordpress 容器
blog.example.com
通过子域安装 WordPress
更新您的反向代理,因此/blog
也指向您的 wordpress 容器
您的 wordpress 可以通过blog.example.com
和访问example.com/blog
。
当您访问example.com/blog
所有 wp-includes/wp-content 时,将通过该blog.example.com
站点加载,而 WordPress 将继续让您的访问者在example.com/blog
站点上单击剩余
推荐阅读
- python - 在Python中根据另一个数组中的索引创建一个数组
- javascript - Jquery Selector 获取以前的 aria-selector 元素,而不是当前元素
- math - 如何用旋转和平移矩阵求解方程?
- mongoose - Mongoose Document.toObject 产生 GraphQL 错误
- npm - Windows 10 上的路径命令
- html - HLS / 媒体源扩展
- c# - C# 流式传输字符编码和来自控制台的输出
- spring - Spring Boot 安全块非 RestController 端点
- php - 在 URL 中显示类别 Slug 而不是 ID
- android - 用于 NFC 的 Android 的 ForegroundDispatch