Nextcloud

Nextcloud is a hosted office software suite.


Installation

Some Linux distributions offer a nextcloud package.

Manual

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


Configuration

PHP

php(1) needs to be configured specially. After following the suggestions here, adjust the below settings:

Enable the opcache module and tune it.

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

php-fpm(8) needs access to some environment variables, namely $PATH. After following the suggestions here, in /etc/php/php-fpm.d/www.conf, uncomment env[PATH].

Alternatively set clear_env = no, but note that this is a security risk.

Systemd

php-fpm(8) needs access to the apps and data directories created above.

Systemd would block this access. To fix this, try systemctl edit php-fpm.service and make the below adjustments:

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

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

MariaDB

The MariaDB database must 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

Nginx

Configure nginx(8) according to the articles here and here, plus the below guard applied to the Nextcloud server.

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


CategoryRicottone

PHP/Nextcloud (last edited 2023-04-22 20:23:04 by DominicRicottone)