Nextcloud — облачный сервис для организации доступа к данным. Это веб-приложение и для своей работы требует настроенного веб-сервера. В данной инструкции мы рассмотрим процесс настройки сервиса в связке в Apache. Если кому-то понадобиться NGINX, переходим на страницу Установка и настройка Nextcloud + NGINX на Ubuntu.
Чтобы мы могли видеть правильную метку времени создания и изменения файлов, необходимо, чтобы время было корректным на сервере.
Устанавливаем утилиту chrony:
apt-get install chrony
… и запускаем ее:
systemctl enable chrony
systemctl start chrony
Выставляем нужный часовой пояс:
\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* в данном примере московское время.
В качестве СУБД будем использовать MariaDB.
Устанавливаем:
apt-get install mariadb-server
Разрешаем автозапуск и стартуем сервис:
systemctl enable mariadb
systemctl start mariadb
Задаем пароль для суперпользователя mysql:
mysqladmin -u root password
Подключаемся к MariaDB, создаем базу данных и пользователя:
mysql -uroot -p
> CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON nextcloud.* TO [email protected] IDENTIFIED BY ‘nextcloud’ WITH GRANT OPTION;
Как было сказано выше, для Nextcloud необходим веб-сервер. Само приложение написано на языке PHP и также требуется одноименный интерпретатор.
Nextcloud можно развернуть на NGINX или Apache. В данной инструкции будем использовать последний.
Устанавливаем веб-сервер:
apt-get install apache2
Создаем виртуальный домен и настраиваем его для работы с облачным сервисом:
vi /etc/apache2/sites-enabled/nextcloud.conf
<VirtualHost *:80> Define root_domain nextcloud.admins24.com ServerName ${root_domain} Redirect / https://${root_domain}</VirtualHost>
<VirtualHost *:443> Define root_domain nextcloud.admins24.com Define root_path /var/www/nextcloud
ServerName ${root_domain} DocumentRoot ${root_path}
SSLEngine on SSLCertificateFile ssl/cert.pem SSLCertificateKeyFile ssl/cert.key
<IfModule mod_headers.c> Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains; preload” </IfModule> <Directory ${root_path}> AllowOverride All Require all granted </Directory></VirtualHost>
* где nextcloud.admins24.com — домен, на котором будет работать сервис; ssl/cert.pem — открытый сертификат; ssl/cert.key — путь до ключа закрытого сертификата; /var/www/nextcloud — каталог с порталом.
Разрешаем модули ssl, rewrite и headers:
a2enmod ssl
a2enmod rewrite
a2enmod headers
Создаем каталог для хранения сертификатов и переходим в него:
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
Генерируем сертификат:
openssl req -new -x509 -days 1461 -nodes -out cert.pem -keyout cert.key -subj “/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=nextcloud.admins24.com/CN=nextcloud”
* данная команда создаст сертификат на 4 года для URL nextcloud.admins24.com или nextcloud.
Проверяем конфигурацию apache:
apachectl configtest
… если видим:
Разрешаем автозапуск апача и перезапускаем сервис:
systemctl enable apache2
systemctl start apache2
Устанавливаем PHP и необходимые для работы nextcloud модули:
apt-get install php php-common php-zip php-xml php-intl php-gd php-mysql php-mbstring php-curl php-imagick libapache2-mod-php
Настраиваем php.ini:
vi /etc/php/7.2/apache2/php.ini
opcache.enable=1opcache.enable_cli=1opcache.interned_strings_buffer=8opcache.max_accelerated_files=10000opcache.memory_consumption=128opcache.save_comments=1opcache.revalidate_freq=1
Перезапускаем Apache:
systemctl restart apache2
Заходим на страницу nextcloud и копируем ссылку на скачивание последней версии программы:
Переходим во временную папку и скачиваем исходник для установки, воспользовавшись скопированной ссылкой:
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.4.zip
Распаковываем скачанный архив:
unzip nextcloud-*.zip
И переносим содержимое архива в каталог /var/www:
mv nextcloud /var/www
Задаем права доступа:
chown -R www-data:www-data /var/www/nextcloud
Открываем браузер и переходим по адресу https://nextcloud.admins24.com, где nextcloud.admins24.com — адрес облачного сервиса.
Задаем логин и пароль для администратора. В качестве базы данных выбираем MySQL/MariaDB (если предлагается выбор) и вводим в качестве логина, пароля и базы nextcloud.
Завершаем установку.
Оптимизируем работу базы данных:
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
В общих сведениях настроек nextcloud мы получим предупреждение, если не настроим кэширование.
Сначала устанавливаем memcached и php-apcu:
apt-get install memcached php-memcached php-apcu
После разрешаем автозапуск и запускаем сервис кэширования:
systemctl enable memcached
systemctl start memcached
Перезапускаем apache:
Отредактируем конфигурационный файл nextcloud:
vi /var/www/nextcloud/config/config.php
Добавляем:
… ‘memcache.local’ => ‘\OC\Memcache\APCu’, ‘memcache.distributed’ => ‘\OC\Memcache\Memcached’, ‘memcached_servers’ => [ [ ‘127.0.0.1’, 11211 ], ],…
В состав nextcloud входит php-скрипт occ, с помощью которого можно управлять сервисом из командной строки Linux.
Создать нового пользователя можно командой:
sudo -u www-data php /var/www/nextcloud/occ user:add admin
* где admin — имя учетной записи.
При необходимости сбросить пароль пользователя, можно воспользоваться командой:
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
* где admin — учетная запись пользователя, чей пароль хотим сбросить.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies