Nextcloud


Installation

Fetch the latest version of the software package.

wget https://download.nextcloud.com/server/releases/nextcloud-18.0.2.zip

Create an installation directory that can be owned by the web server's user (typically www-data).

mkdir /var/www/nextcloud
unzip nextcloud-18.0.2.zip -d /var/www/nextcloud
chown www-data:www-data /var/www/nextcloud
chmod 755 /var/www/nextcloud

Also, create a data directory.

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

Web Server

If the site is encrypted, additional settings must be applied.

location ~ \.php(?:$|/) {
  # ...
  fastcgi_param modHeadersAvailable true;
  # ...
}

PHP

There are several steps beyond a standard FastCGI configuration.

In /etc/php/php-fpm.d/www.conf, uncomment env[PATH] OR set clear_env = no.

Enable the opcache module and tune it. The defaults are typically enough.

opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

PHP-FPM must be explicitly allowed to access the key program and data directories. With systemd, this would be done as systemctl edit php-fpm.service.

[Service]
ReadWritePaths = /usr/share/webapps/nextcloud/apps
ReadWritePaths = /usr/share/webapps/nextcloud/data

# Path to the data directory
ReadWritePaths = /var/www/nextcloud

Back-end

Setup the MariaDB back-end to use actual UTF-8 encoding.

mysql -u root -p
mysql> CREATE DATABASE nextcloud DEFAULT CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
mysql> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> \q


CategoryRicottone