Skip to main content

Nextcloud Installation

# updating
apt update && apt upgrade -y

# Installing apache
apt install apache2

# Install PHP
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update

# Install PHP & Moduls
apt install php libapache2-mod-php php-zip php-dompdf php-xml php-mbstring php-gd php-curl php-imagick libmagickcore-6.q16-6-extra php-intl php-bcmath php-gmp php-cli php-json php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear unzip nano php-apcu redis-server ufw php-redis


# adjust PHP.ini file
nano /etc/php/8.1/apache2/php.ini

(alternativ)
(nano /etc/php/8.0/apache2/php.ini)

memory_limit = 1024M
upload_max_filesize = 20G
post_max_size = 20G
date.timezone = Europe/Berlin
output_buffering = Off


# Install Databse Server
apt install mariadb-server

# Maria DB Server Konfiguration
mysql_secure_installation

# open SQL dialoge
mysql

# create database calles nextcloud
CREATE DATABASE nextcloud;

# create database user with password
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';

#grant accesss to databse
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';

#save changes and exit
FLUSH PRIVILEGES;
EXIT;

# Download lastest nextcloud version
cd /tmp && wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
mv nextcloud /var/www/

#adjust conf
nano /etc/apache2/sites-available/000-default.conf

# chnage document root to /var/www/nextcloud

# Enable the NextCloud and Rewrite Module

a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

# restart apache
systemctl restart apache2.service

# prepare data folder
mkdir /home/data/
chown -R www-data:www-data /home/data/

chown -R www-data:www-data /var/www/nextcloud/
chmod -R 755 /var/www/nextcloud/


# -> open server ip in browser


### Remote Access & SSL ##

#create new conf
nano /etc/apache2/sites-available/nextcloud.conf

<VirtualHost *:80>
ServerAdmin master@domain.com
DocumentRoot /var/www/nextcloud/
ServerName

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>


#enbale config
a2ensite nextcloud.conf
service apache2 restart