Ubuntu
將 nextcloud 移動到 apache VirtualHost 塊中以用作子域?
- 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>
什麼對我有用:
安德魯舒爾曼的回答幾乎對我有用,我只需要做一些小改動:
- 刪除“要求所有授予”。
- 將“AllowOverride All”和“Options FollowSymLinks MultiViews”移動到目錄標籤中。
有人可以解釋為什麼這些步驟是必要的嗎?
謝謝安德魯!
nextcloud.conf: 1 <VirtualHost *:80> 2 ServerAdmin webmaster@b-t.dev 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>
您只需要添加一個新的 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 Virtual Host 文件,尤其是關於基於名稱的虛擬主機的部分。