- Nextcloud wird derzeit unter bereitgestellt
my-domain.dev/nextcloud
. - Ich möchte, dass es um serviert wird
cloud.my-domain.dev
. - Ich habe bereits einen A-Eintrag eingerichtet, der
cloud.my-domain.dev
auf die IP-Adresse meiner Server verweist. - Neben meinem
/var/www/nextcloud
habe ich auch einen/var/www/my-domain.dev
, meine Hauptseite, die ich für die Verwendung von HTTPS mit Let’s-Encrypt eingerichtet habe. - Ich verwende die Serverversion: Apache/2.4.41 (Ubuntu).
Jetzt muss ich die virtuellen Hosts so einrichten, dass sie zusammen funktionieren. Ich gehe davon aus, dass ich die Datei nextcloud.conf so konvertieren muss, dass sie auf einem virtuellen Host sitzt, vielleicht unter einem anderen Port? Wie gehe ich vor?
nextcloud.conf alsempfohlen von 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>
meine-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>
WAS BEI MIR FUNKTIONIERT HAT:
Die Antwort von Andrew Schulman hätte für mich fast funktioniert, ich musste nur ein paar kleine Änderungen vornehmen:
- Entfernen Sie „Alle Gewährten erforderlich“.
- Verschieben Sie „AllowOverride All“ und „Options FollowSymLinks MultiViews“ in ein Verzeichnis-Tag.
Kann jemand erklären, warum diese Schritte notwendig waren?
Danke, 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>
Antwort1
Sie müssen lediglich anstelle der Alias- und Directory-Direktiven eine neue VirtualHost-Definition hinzufügen:
<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>
Beide virtuellen Hosts können auf Port 80 laufen. So funktioniert namensbasiertes virtuelles Hosting – Sie können mehrere Hosts auf derselben IP-Adresse und demselben Port laufen lassen. Apache gleicht den Wert des Host-Headers, den der Client sendet, mit den Anweisungen ServerName und ServerAlias ab, um zu bestimmen, welcher virtuelle Host sie bedienen soll.
Lesen Sie dieApache Virtual Host-Dokumentation, insbesondere der Teil über namenbasierte virtuelle Hosts.