Добавлено. Рекомендуемый способ установки Nextcloud: Автоматическая установка и оптимизация Nextcloud 21 с помощью скрипта
NextCloud - набор инструментов с открытым исходным кодом для создания личного облачного хранилища.
Возможности NextCloud
- Бесплатно и с открытым исходным кодом.
- Сквозное шифрование, то есть файлы могут быть зашифрованы на клиентских устройствах перед загрузкой на сервер, поэтому даже если кто-то получит доступ к вашему серверу, он не сможет прочитать ваши файлы.
- Может быть интегрирован с пакетом онлайн-офиса (Collobora Online , OnlyOffice), что даст возможность создавать и редактировать файлы doc, ppt, xls прямо из NextCloud.
- Магазин приложений содержит сотни приложений для расширения функциональности (например, приложение календарь, приложение контактов, приложение для создания заметок, приложение для видеоконференций и т. д.).
- Приложения-клиент для синхронизации доступны для систем Linux, macOS, Windows, iOS и Android.
Инструкция по установке довольно обширная, хоть и не сложная, но если вы хотите установить NextCloud максимально легким способом, то тогда вам стоит воспользоваться нашей предыдущей статьей по установки NextCloud с помощью snap пакета: NextCloud: Создаем свое облачное хранилище.
Установка NextCloud (Apache, MariaDB)
Обновим систему:
sudo apt update && sudo apt dist-upgrade -y
Установим Apach и MariaDB:
sudo apt install -y apache2 libapache2-mod-php mariadb-server mariadb-client
Установим необходимые PHP модули:
sudo apt install -y php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp
Войдем в консоль базы данных. Поскольку MariaDB теперь использует плагин unix_socket для аутентификации входа пользователя, нет необходимости вводить пароль root MariaDB. Нам просто нужно добавить к команде mysql префикс sudo:
sudo mysql
Создаем базу данных, пользователя и задаем свой пароль:
create database nextcloud;
create user nextclouduser@localhost identified by 'ваш пароль';
grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'ваш пароль';
Выходим из консоли базы данных:
flush privileges; exit;
Настраиваем Apache.
В самом верху следующей команды добавляем название своего домена:
sudo nano /etc/apache2/apache2.conf
ServerName example.com
Создаём виртуальный хост Apache для Nextcloud:
sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/nextcloud/ ServerName example.com <Directory /var/www/html/nextcloud/> Options +FollowSymlinks AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Где example.com – это название вашего домена.
Скачиваем NextCloud:
wget https://download.nextcloud.com/server/releases/latest.tar.bz2 tar xjvf latest.tar.bz2 sudo cp -R nextcloud /var/www/html/
Меняем владельца каталога:
sudo chown -R www-data:www-data /var/www/html/nextcloud/
Устанавливаем NextCloud, задаем нашу базу данных, создаем администратора:
cd /var/www/html//nextcloud/ sudo -u www-data php /var/www/html/nextcloud/occ maintenance:install \ --database "mysql" --database-name "nextcloud" --database-user "nextclouduser" \ --database-pass "пароль базы mysql" --admin-user "имя пользователя админа" --admin-pass "ваш пароль"
Результат:
Nextcloud was successfully installed
Добавляем свой домен в базу доверенных доменов NextCloud:
sudo -u www-data php /var/www/html/nextcloud/occ config:system:set \ trusted_domains 1 --value=example.com
Результат:
System config value trusted_domains => 1 set to string example.com
Запускаем Apache2:
sudo a2ensite nextcloud.conf sudo a2dissite 000-default.conf sudo a2enmod rewrite headers env dir mime setenvif ssl sudo systemctl reload apache2
Шифрование домена NextCloud:
Не забудьте открыть порты 80 и 443:
sudo ufw allow 80,443/tcp sudo ufw reloadУстанавливаем сертификат:
sudo apt install -y certbot python3-certbot-apache sudo certbot --apache --agree-tos --redirect --staple-ocsp --email адрес почты -d название домена
На этом установка NextCloud завершена. Перейдите по ссылке https://example.com
, где example.com – это название вашего домена. Приступим к настройке.
Удаление index.php с домена NextCloud
По умолчанию адрес домена с NextCloud автоматически дополняется "index.php" . Пример: https://example.com/index.php/
Убираем index.php , тем самым делая адрес более красивым.
sudo nano /var/www/html/nextcloud/config/config.php
В строке 'overwrite.cli.url' => 'http://localhost'
заменяем http://localhost на свой домен: https://example.com
И под ним добавляем следующую строку:
'htaccess.RewriteBase' => '/',
Пример на скриншоте.
Затем обновляем .htaccess:
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:update:htaccess
Известные ошибки
Исправления ошибок NextCloud. Если перейти по адресу https://example.com/settings/admin/overview , т.е в раздел Общие сведения, то проверка безопасности возможно обнаружит одни из следующих популярных ошибок.
Решение ошибки: Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ
sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/apache2/php.ini sudo systemctl reload apache2
Решение ошибки: Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «15552000» секунд. Для улучшения безопасности рекомендуется включить HSTS согласно нашим подсказкам по безопасности
sudo nano /etc/apache2/sites-enabled/nextcloud-le-ssl.conf
В конце, под блоком SSL добавляем следующий параметр:
Header always set Strict-Transport-Security "max-age=31536000"
И перезапускаем веб-сервер:
sudo systemctl reload apache2
Решение ошибки: Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информации
sudo apt install -y redis-server php-redis sudo systemctl start redis-server sudo systemctl enable redis-server sudo phpenmod redis sudo nano /var/www/html/nextcloud/config/config.php
Добавляем следующий параметр:
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),
Перезапускаем Apache и PHP-FPM:
sudo systemctl restart apache2 php7.4-fpm
Увеличиваем предел размера загружаемого файла
При использовании модулей Apache PHP, по умолчанию задан предел загружаемого файла в 2 МБ. Обходим данное ограничение, увеличиваем предел загружаемого файла по своему усмотрению (в этом примере мы задаем предел в 5024 МБ):
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 5024M/g' /etc/php/7.4/fpm/php.ini
Перезапускаем PHP-FPM:
sudo systemctl restart php7.4-fpm
Решение ошибки: В базе данных отсутствуют некоторые индексы. Из-за того, что добавление индексов в большие таблицы могло занять некоторое время, они не добавлялись автоматически
cd /var/www/html/nextcloud/ sudo -u www-data php occ db:add-missing-indices
Решение ошибки: В некоторых столбцах базы данных отсутствует преобразование в большой тип int. Из-за того, что изменение типов столбцов в больших таблицах могло занять некоторое время, они не менялись автоматически
cd /var/www/html/nextcloud/
Переводим NextCloud в режим обслуживания:
sudo -u www-data php occ maintenance:mode --on
И вводим следующую команду:
sudo -u www-data php occ db:convert-filecache-bigint
Отключаем режим обслуживания:
sudo -u www-data php occ maintenance:mode --off
После этого Проверка безопасности и параметров, скорее всего не выявит проблем.
Linux: обзоры и обновления
• CachyOS: Декабрьский релиз 2024 с AutoFDO и поддержкой RustiCL для Mesa
• Wine 10.0-rc3: Исправлена 16-летняя ошибка многопоточности в играх World of Warcraft и Starcraft 2
• DXVK 2.5.2: Исправления для Alpha Protocol, The Sims 2, Borderlands 2 и других игр на Linux и Steam Deck
• OpenSUSE представляет YQPkg - новый графический менеджер пакетов на базе Qt
• Обновление Proton Experimental: Исправления для Final Fantasy XIV, Nioh и других игр на Steam Deck и Linux
• Обновления Linux за неделю: 9 – 15 декабря 2024 года