我已经使用 VirtualBox 设置了一个 Ubuntu 虚拟机,并尝试将其配置为运行 Apache2、PHP、MySQL、NodeJS 和 MongoDB(用于 WordPress 和 NodeBB)。
以上所有内容均已安装、配置并按预期运行:
http://本地主机加载 WordPress 默认网站
http://本地主机:4567加载 NodeBB 论坛
现在,我想要做的是配置 VM,以便它模拟我的“实时”站点 - 对于这篇文章,假设我的域名是example.com
WordPress 站点,捕获所有主域请求,子域forum.example.com
重定向到 NodeBB 站点。
我遵循了许多关于如何进行设置的指南(在 SU、NodeBB、Apache 论坛等上),但我根本无法使子域名正常工作。
以下是我目前所做的:
- 编辑
/etc/hosts
文件以包含该行127.0.0.1 example.com
,我可以验证任何请求example.com
始终会导致显示 WordPress 网站 - 创建虚拟主机
/etc/apache2/sites-available/forum.example.com.conf
的文件forum
,包括以下内容:
```
<VirtualHost *:80>
ServerName forum.example.com
RequestHeader set X-Forwarded-Proto "http"
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:4567/$1 [P,L]
ProxyPass / http://127.0.0.1:4567/
ProxyPassReverse / http://127.0.0.1:4567/
</VirtualHost>
```
- 我已经更新了 NodeBB
config.json
文件,将 url 值更改为http://forum.example.com
重新启动 Apache2 和 NodeBB 后,我可以确认 WordPress 网站在访问时仍可加载,example.com
但forum.example.com
子域名永远不会加载。NodeBB 仍可在 上访问localhost:4567
。
显然,虚拟主机的配置不正确,但是所述文件的内容/配置是从网络上的许多“工作”源获取的。
欢迎提出任何建议,谢谢。
答案1
编辑 /etc/hosts 文件以包含以下行
127.0.0.1 example.com forum.example.com