- Nextcloud is currently being served at
my-domain.dev/nextcloud. - I'd like to have it be served at
cloud.my-domain.dev. - I've already set up an A record for
cloud.my-domain.devto point to my servers' IP address. - Sitting alongside my
/var/www/nextcloud, I've also got a/var/www/my-domain.dev, my main site which I've set up to use HTTPS using Let's-Encrypt. - I'm using Server version: Apache/2.4.41 (Ubuntu).
Now I need to set up the vhosts to play together. I'm assuming I'll have to convert the nextcloud.conf to sit within a virtual host, maybe under a different port? How do I proceed?
nextcloud.conf as recommended by 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> my-domain.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> WHAT WORKED FOR ME:
Andrew Schulman's answer almost worked for me, I just had to make a few small changes:
- Remove "Require all granted".
- Move "AllowOverride All" and "Options FollowSymLinks MultiViews" into a directory tag.
Could someone explain why these steps were necessary?
Thanks Andrew!
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>