- Nextcloud 目前正在提供服务
my-domain.dev/nextcloud
。 - 我想在 供应
cloud.my-domain.dev
。 - 我已经设置了 A 记录来
cloud.my-domain.dev
指向我的服务器的 IP 地址。 - 除了我的之外
/var/www/nextcloud
,我还有一个/var/www/my-domain.dev
主站点,我已将其设置为使用 Let's-Encrypt 的 HTTPS。 - 我正在使用的服务器版本:Apache/2.4.41(Ubuntu)。
现在我需要设置虚拟主机以便一起玩。我假设我必须将 nextcloud.conf 转换为虚拟主机,也许在不同的端口下?我该怎么做?
nextcloud.conf 作为nextcloud 推荐。
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
我的域名.dev.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName my-domain.dev
ServerAlias www.my-domain.dev
DocumentRoot /var/www/my-domain.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
对我有用的方法:
安德鲁·舒尔曼(Andrew Schulman)的回答几乎对我有用,我只需要做一些小的改动:
- 删除“要求全部授予”。
- 将“AllowOverride All”和“Options FollowSymLinks MultiViews”移入目录标签。
有人能解释一下为什么这些步骤是必要的吗?
谢谢安德鲁!
nextcloud.conf:
1 <VirtualHost *:80>
2 ServerAdmin [email protected]
3 ServerName cloud.b-t.dev
4 DocumentRoot /var/www/nextcloud
5
6 #ErrorLog ${APACHE_LOG_DIR}/error.log
7 #CustomLog ${APACHE_LOG_DIR}/access.log combined
8
9 <Directory "/var/www/nextcloud">
10 AllowOverride All
11 Options FollowSymLinks MultiViews
12 </Directory>
13
14 #Satisfy Any
15
16 <IfModule mod_dav.c>
17 Dav off
18 </IfModule>
19
20 SetEnv HOME /var/www/nextcloud
21 SetEnv HTTP_HOME /var/www/nextcloud
22 </VirtualHost>
答案1
您只需要添加一个新的 VirtualHost 定义来代替 Alias 和 Directory 指令:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName cloud.my-domain.dev
DocumentRoot /var/www/nextcloud
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</VirtualHost>
两个虚拟主机都可以在端口 80 上运行。这就是基于名称的虚拟主机的工作方式 - 它允许您在同一个 IP 地址和端口上运行多个主机。Apache 将客户端发送的 Host 标头的值与 ServerName 和 ServerAlias 指令进行匹配,以确定为它们提供服务的虚拟主机。
你应该读一下Apache 虚拟主机文档,尤其是关于基于名称的虚拟主机的部分。