Install Nextcloud on Windows with WSL2
#Nextcloud #Windows #Linux
Full steps can be found at https://i12bretro.github.io/tutorials/0151.html
What is Nextcloud?
Nextcloud is an open source, self-hosted file share and communication platform. Access & sync your files, contacts, calendars & communicate and collaborate across your devices. You decide what happens with your data, where it is and who can access it! - https://docs.nextcloud.com/
Installing WSL
01. Launch Powershell as administrator
02. Run the following command
# enable WSL feature
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# enable virtual machine platform
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
03. Type Y to reboot the system
04. Launch Powershell as administrator and run the following additional commands to use WSL 2
# enable virtualization platform
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
# enable wsl2
wsl --set-default-version 2
# download the wsl kernel update
$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile .\wsl_update_x64.msi
# reset progress preference
$ProgressPreference = 'Continue'
# install the downloaded file
.\wsl_update_x64.msi
05. Click the Start Button ≫ Search Microsoft Store ≫ Select Microsoft Store
06. Search for the Linux distribution to install (Debian, Ubuntu, etc), Debian in this example
07. Select the Linux distribution and click the Get button
08. After the Linux distribution downloads and installs, click Open or select the distribution from the Start menu to launch it
09. Input a username and password to be used in the Linux environment
Installing Nextcloud
01. Continue with the following commands in WSL
# update software repositories
sudo apt update
# install software updates
sudo apt upgrade -y
# install prerequisite packages
sudo apt install unzip wget -y
# install Apache HTTPD and MySQL
sudo apt install apache2 mariadb-server mariadb-client -y
# install PHP components
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-intl php7.4-json php7.4-gd php7.4-mbstring php7.4-mysql php7.4-xml php7.4-zip php7.4-curl -y
# start the mariadb service
sudo service mariadb start
# configure the MySQL database
sudo su
mysql_secure_installation
02. Press Enter to login as root
03. Type N and press Enter to not switch to socket authentication
04. Type Y and press Enter to set a root password, type the password twice to confirm
05. Type Y and press Enter to remove anonymous users
06. Type Y and press Enter to disallow root login remotely
07. Type Y and press Enter to remove the test database
08. Type Y and press Enter to reload privilege tables
09. Run the following command to login into MySQL:
mysql -u root -p
10. Authenticate with the root password set earlier
11. Run the following commands to create the Nextcloud database and database user
CREATE DATABASE nextclouddb;
GRANT ALL ON nextclouddb.* to 'nextcloud_rw'@'localhost' IDENTIFIED BY 'N3xtCl0ud!';
FLUSH PRIVILEGES;
EXIT;
exit
12. Continue with the following commands to download and extract Nextcloud in the Apache webroot
# download latest nextcloud version
wget -O /tmp/nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
# extract downloaded nextcloud archive
sudo unzip -q /tmp/nextcloud.zip -d /var/www
# set the owner of the new nextcloud directory to www-data
sudo chown -R www-data:www-data /var/www/nextcloud
# create a new nextcloud.conf file to configure the site
sudo nano /etc/apache2/sites-available/nextcloud.conf
13. Paste the following configuration into nextcloud.conf
Alias /nextcloud "/var/www/nextcloud/"
≪directory /var/www/html/nextcloud/≫
Options +FollowSymlinks
AllowOverride All
Require all granted
Dav off
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
≪/directory≫
14. Press CTRL+O, Enter, CTRL+X to write the changes to nextcloud.conf
15. Continue with the following commands to enable the site and restart Apache:
# enable the nextcloud config
sudo a2ensite nextcloud
....Full steps can be found on GitHub [link at the top]
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro