====== Setup Apache2 Virtual Host for Your Domain Running Nextcloud 27 ======
Adding a new apache/httpd virtual host configuration for Nextcloud.
**Caution: You may need to first install the Letsencypt certbot tool for generating SSL Letsencrypt and install the letsencrypt directory paths architecture before creating or enabling symlinks to the virtual host SSL configuration file provided below.**
See: [[install_letsencypt_certbot_tool_ubuntu_server_22_04|Install the letsencypt certbot tool on Ubuntu Server 22 04]]
1. Change the working directory to "/etc/apache2/sites-available/" and create new configuration "nextcloud.conf" using vim or nano.
cd /etc/apache2/sites-available/
vim nextcloud.conf
Change the detail domain name and SSL path directory to your own and paste the configuration to the "nextcloud.conf" file.
This sample virtual host file was posted at [[https://www.howtoforge.com/how-to-install-nextcloud-on-debian-11/]]
ServerName files.domain-name.io
ServerAlias www.files.domain-name.io
# auto redirect HTTP to HTTPS
Redirect permanent / https://files.domain-name.io/
ServerName files.domain-name.io
ServerAlias www.files.domain-name.io
DocumentRoot /var/www/nextcloud/
Protocols h2 http/1.1
# auto redirect www to non-www
Redirect permanent / https://files.domain-name.io/
# log files
ErrorLog /var/log/apache2/files.domain-name.io-error.log
CustomLog /var/log/apache2/files.domain-name.io-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/privkey.pem
# HSTS
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
If using vim, press the ESC button to exit vim's INS mode, and enter **:w** [enter] to save edits, and then enter **:q!** to exit Vim. If using Nano, Press "Ctrl+x" and type "Y", then press 'Enter' to save the configuration and exit.
2. Now activate the 'nextcloud.conf' virtual host configuration by executing the following command.
sudo a2ensite nextcloud.conf
3. Now verify the new apache configuration and make sure you have no error, then restart the apache service.
sudo apachectl configtest
sudo systemctl restart apache2