Установка NextCloud на Ubuntu 20.04 с использованием Nginx в составе LEMP стека

В данном руководстве описывается процесс установки NextCloud на Ubuntu 20.04 LTS с использованием веб-сервера Nginx.

Содержание статьи

Что представляет собой NextCloud?

NextCloud представляет собой бесплатное облачное решение для хранения данных с открытым исходным кодом, которое можно установить на собственном сервере. Оно обладает функциональностью, схожей с Dropbox. Проприетарные облачные сервисы, такие как Dropbox или Google Drive, предлагают удобство, но за это приходится платить, поскольку ваши файлы хранятся на их серверах и могут использоваться для сбора личной информации. Если вас беспокоит вопрос конфиденциальности, вы можете рассмотреть возможность установки NextCloud на домашнем или виртуальном частном сервере (VPS). Через NextCloud вы можете загружать файлы на сервер и синхронизировать их с настольным компьютером, ноутбуком или смартфоном, что дает вам полный контроль над вашими данными.

Основные характеристики NextCloud.

  • Свободно доступный и с открытым кодом.
  • Шифрование «конец в конец» подразумевает, что файлы защищаются на устройствах пользователей перед тем, как они будут загружены на сервер. Таким образом, даже если злоумышленник получит доступ к вашему серверу, ему не удастся расшифровать ваши файлы.
  • Может быть объединён с онлайн офисными решениями (Collabora Online, OnlyOffice), что позволяет вам создавать и редактировать документы, файлы ppt и xls прямо в NextCloud.
  • Магазин приложений предлагает множество программ, которые могут улучшить функциональность устройства, включая приложения для календаря, управления контактами, заметок, видеозвонков и другие.
  • Клиент для синхронизации доступен на платформах Linux, macOS, Windows, а также на устройствах iOS и Android.

Условия, необходимые для начала.

NextCloud разработан с использованием языка программирования PHP. Прежде чем приступить к этому руководству, необходимо установить стек LEMP на Ubuntu 20.04. Если вы этого еще не сделали, пожалуйста, ознакомьтесь с соответствующим руководством.

  • Установка стека LEMP (Nginx, MariaDB, PHP 7.4-FPM) на Ubuntu 20.04.

Вы можете установить NextCloud на своем домашнем сервере или виртуальном частном сервере (VPS). Для этого потребуется доменное имя, чтобы затем активировать HTTPS и зашифровать HTTP-трафик. Я выбрал для регистрации домена NameCheap из-за низкой цены и бесплатной защиты конфиденциальности whois на всю жизнь. Установить NextCloud без доменного имени возможно, но это нецелесообразно, если не планируете шифровать соединение, чтобы защитить данные от посторонних. Я настоятельно рекомендую приобрести доменное имя, если вы хотите по-настоящему погрузиться в серверное ПО и использовать его максимально эффективно.

Теперь перейдем к установке NextCloud.

Установка NextCloud на Ubuntu 20.04.

Авторизуйтесь на своем сервере с Ubuntu 20.04. После этого скачайте zip-архив NextCloud на свой сервер. На момент написания актуальная стабильная версия — 21.0.1, но может потребоваться обновить номер версии. Для получения последней версии перейдите на https://nextcloud.com/install и нажмите кнопку загрузки для сервера.

Ubuntu 20.04 с установленным Nextcloud

Чтобы загрузить её на свой сервер, выполните следующую команду.

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

Вы можете воспользоваться приведенным выше форматом URL для загрузки NextCloud. При выходе новой версии просто замените 21.0.1 на актуальный номер версии.

После скачивания распакуйте архив, используя команду unzip.

sudo apt install unzip sudo unzip nextcloud-21.0.1.zip - d /usr/share/nginx/

Параметр — d определяет каталог назначения. Веб-файлы NextCloud будут помещены в /usr/share/nginx/nextcloud/. Далее необходимо изменить владельца этого каталога на www-data, чтобы веб-сервер (Nginx) имел возможность записывать данные в него.

sudo chown www-data:www-data /usr/share/nginx/nextcloud/ - R

Настройка базы данных и учетной записи пользователя для Nextcloud в системе управления базами данных MariaDB.

Для доступа к серверу баз данных MariaDB используйте следующую команду. Поскольку в MariaDB теперь применяют плагин unix_socket для аутентификации, вводить пароль пользователя root не требуется. Достаточно просто добавить команду sudo перед командой mysql.

sudo mysql

После этого необходимо создать базу данных для Nextcloud. В данном руководстве база данных называется nextcloud, но вы можете выбрать любое другое название по вашему усмотрению.

create database nextcloud;

Создайте нового пользователя для базы данных. Вы можете выбрать любое имя для этого пользователя. Не забудьте заменить your-password на желаемый вами пароль.

create user nextclouduser@localhost распознан по 'your-password';

Дайте этому пользователю полный доступ к базе данных nextcloud.

grant all privileges on nextcloudnextclouduser@localhost распознан по 'your-password';

Уберите права доступа и завершите сеанс.

flush privileges; exit;

Создайте базу данных и пользователя для Nextcloud на сервере базы данных MariaDB.

Настройте конфигурационный файл Nginx для Nextcloud.

С помощью текстового редактора командной строки, например, Nano, создайте файл nextcloud.conf в папке /etc/nginx/conf.d/.

Читайте также:  Как в Astra Linux посмотреть загрузку системы и завершить процесс

sudo nano /etc/nginx/conf.d/nextcloud.conf

Скопируйте и вставьте указанный текст в файл. Замените nextcloud. example.com на выбранный вами поддомен. Не забудьте добавить DNS A-запись для этого поддомена в вашем DNS-редакторе. Если у вас нет собственного доменного имени, рекомендую рассмотреть покупку через NameCheap. Цены там невысокие, и они предлагают бесплатную защиту конфиденциальности whois на весь срок использования.

server { listen 80; listen [::]:80; server_name nextcloud. example.com; # Добавьте заголовки для обеспечения безопасности add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; # Я обнаружил, что этот заголовок необходим на Ubuntu, но не на Arch Linux. add_header X-Frame-Options "SAMEORIGIN"; # Путь к корню вашей установки root /usr/share/nginx/nextcloud/ ; access_log /var/log/nginx/nextcloud. access; error_log /var/log/nginx/nextcloud. error; location = /robots. txt { allow all; log_not_found off; access_log off; } # Следующие 2 правила необходимы только для приложения user_webfinger. # Раскомментируйте их, если планируете использовать это приложение. #rewrite ^/.well-known/host-meta /public.php? service=host-meta last; #rewrite ^/.well-known/host-meta. json /public.php? service=host-meta-json last; location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ~ /.well-known/acme-challenge { allow all; } # установите максимальный размер загрузки client_max_body_size 512M; fastcgi_buffers 64 4K; # Отключите gzip, чтобы избежать удаления заголовка ETag gzip off; # Раскомментируйте, если ваш сервер собран с модулем ngx_pagespeed # Этот модуль в настоящее время не поддерживается. #pagespeed off; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location / { rewrite ^ /index.php; } location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; # Избегайте двойной отправки заголовков безопасности fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; } location ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; index index.php; } # Добавление заголовка управления кэшированием для файлов js и css # Убедитесь, что он ниже блока PHP location ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; # Добавьте заголовки для обеспечения безопасности (предназначено для # дублирования заголовков выше) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; # Опционально: не регистрировать доступ к активам access_log off; } location ~Конечно! Вот уникальный вариант текста:

  • .(?

    sudo nginx - t

    После успешного завершения теста перезагрузите Nginx, чтобы новые настройки начали действовать.

    sudo systemctl reload nginx

    Установка и активация PHP-модулей.

    Используйте указанные команды для установки необходимых или рекомендованных модулей PHP, требуемых для NextCloud.

    sudo apt install imagemagick 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

    Активировать HTTPS

    Теперь вы можете открыть мастер установки Nextcloud через веб-браузер, просто введя доменное имя вашей установки.

    nextcloud. example.com

    Мастер настройки Nextcloud

    Если веб-страница не открывается, возможно, потребуется разрешить доступ к порту 80 в настройках брандмауэра.

    sudo iptables - I INPUT - p tcp --dport 80 - j ACCEPT

    И порт 443 тоже.

    sudo iptables - I INPUT - p tcp --dport 443 - j ACCEPT

    Перед тем как вводить любую конфиденциальную информацию, необходимо активировать защищённое HTTPS-соединение на Nextcloud. Бесплатный TLS-сертификат можно получить через Let’s Encrypt. Установите клиент Let’s Encrypt (certbot) из репозитория Ubuntu 20.04.

    sudo apt install certbot python3-certbot-nginx

    Python3-certbot-nginx представляет собой плагин для веб-сервера Nginx. Для получения бесплатного TLS-сертификата с использованием этого плагина выполните следующую команду.

    sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d nextcloud. example.com

    • –nginx: Применять аутентификатор и установочный пакет Nginx.
    • – согласие с условиями обслуживания Let’s Encrypt.
    • –перенаправление: Обеспечить обязательное использование HTTPS, внедрив 301 редирект.
    • –hsts : Активировать жесткую защиту HTTP на уровне транспортного слоя. Это помогает защититься от атак на SSL/TLS.
    • –staple-ocsp : Активировать OCSP Stapling.
    • –email: Адрес электронной почты, который применяется для регистрации и восстановления доступа.
    • Флаг - d сопровождается перечнем доменных имен, разделённых запятыми. Вы можете указать до 100 доменных имен.

    Вы получите предложение о том, хотите ли вы подписаться на рассылку от EFF (Фонд Электронного Фронта). После того как вы выберете Y или N, ваш TLS-сертификат будет автоматически создан и настроен, о чем вы получите уведомление ниже.

    Настройка HTTPS для Nextcloud на Ubuntu 20.04 с использованием Certbot и Let's Encrypt.

    Я заметил, что Certbot может не успешно добавить заголовок HSTS в конфигурацию Nginx для Nextcloud. Если вы хотите активировать HSTS (HTTP Strict Transport Security), необходимо внести изменения в файл конфигурации.

    sudo nano /etc/nginx/conf.d/nextcloud.conf

    Далее можно вставить следующую строку в блок SSL-сервера для активации заголовка HSTS. (Если он уже присутствует, значит, ваша конфигурация корректна.)

    add_header Strict-Transport-Security "max-age=31536000" always;

    Вы также можете активировать протокол HTTP2, добавив опцию http2, что позволит значительно ускорить загрузку веб-страниц.

    listen 443 ssl http2; # managed by Certbot

    nextcloud-ubuntu-20.04-nginx

    Сохраните файл и закройте его. После этого проверьте настройки Nginx.

    sudo nginx - t

    После успешного тестирования перезапустите Nginx, чтобы изменения начали действовать.

    sudo systemctl reload nginx

    Указанная конфигурация будет иметь рейтинг A+ в тестировании SSL.

    Отчет SSL для Nextcloud

    Завершите процесс установки в вашем интернет-браузере.

    Теперь у вас есть возможность подключиться к мастеру установки Nextcloud по защищённому HTTPS соединению.

    https://nextcloud. example.com

    Для завершения установки необходимо создать учетную запись администратора, указать путь к каталогу данных Nextcloud и ввести информацию о базе данных, созданной на втором шаге. В качестве адреса хоста можно использовать localhost по умолчанию или указать localhost:3306, так как MariaDB работает на порту 3306.

    Папка для данных — это место, где хранятся пользовательские файлы. Для повышения безопасности рекомендуется расположить директорию данных вне веб-корня Nextcloud. Вместо того чтобы сохранять файлы по адресу /usr/share/nginx/nextcloud/data/, можно использовать /usr/share/nginx/nextcloud-data, создав её с помощью следующей команды:

    sudo mkdir /usr/share/nginx/nextcloud-data

    Проверьте, что у пользователя Nginx (www-data) есть доступ на запись в папку с данными.

    sudo chown www-data:www-data /usr/share/nginx/nextcloud-data - R

    nextcloud-ubuntu-20.04-install-guide

    Нажмите на кнопку "Завершить настройку", и перед вами откроется веб-интерфейс Nextcloud. Поздравляем! Теперь вы можете использовать его как свое личное облачное хранилище.

    Для настройки Nextcloud Hub на Ubuntu с использованием Nginx нужно выполнить ряд шагов.

    Как организовать уведомления на электронную почту в NextCloud

    Если ваша инстанция NextCloud будет использоваться более чем одним человеком, важно, чтобы ваш сервер NextCloud мог отправлять транзакционные электронные письма, такие как письма для сброса пароля. Сначала вы должны установить адрес электронной почты для своей учетной записи. Перейдите в Настройки ->Укажите свою личную информацию и электронный адрес для аккаунта.

    Адрес электронной почты Nextcloud

    Затем перейдите в Настройки ->Основные параметры. Здесь вы обнаружите настройки почтового сервера. Доступны два режима отправки: sendmail и smtp. Если на вашем хостинге NextCloud работает SMTP-сервер, вы можете выбрать режим sendmail.

    Nextcloud сервер электронной почты настроен для отправки сообщений через sendmail.

    Чтобы подключиться к SMTP-серверу, расположенному на другом хосте, выберите режим SMTP и укажите адрес сервера вместе с данными для входа, как указано ниже. Для шифрования выберите STARTTLS.

    Режим отправки электронной почты сервера Nextcloud: SMTP.

    Для настройки почтового сервера рекомендуется изучить следующий учебник. Учтите, что лучше всего устанавливать почтовый сервер iRedMail на чистую операционную систему. Установка iRedMail на систему с уже работающими веб-приложениями может привести к неудаче и нарушить работу существующих приложений.

    • Как просто установить полнофункциональный почтовый сервер на Ubuntu 20.04, используя iRedMail.

    Как изменить пароль пользователя Nextcloud через командную строку.

    В случае, если вы забыли пароль администратора и не активировали электронную почту в Nextcloud, необходимо сбросить пароль, выполнив следующую команду на сервере. Замените nextcloud_username на ваше настоящее имя пользователя.

    sudo - u www-data php /usr/share/nginx/nextcloud/occ user:resetpassword nextcloud_username

    Существуют и другие команды, которые могут оказаться полезными. Вот перечень доступных команд:

    sudo - u www-data php /usr/share/nginx/nextcloud/occ

    sudo - u www-data php /usr/share/nginx/nextcloud/console.php

    Как осуществить перенос каталога данных

    Если вам необходимо переместить каталог данных NextCloud, выполните четыре шага. В начале используйте команду cp для копирования каталога данных в новое место. Например, точка монтирования моего внешнего жесткого диска - /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731. Я создаю новый каталог данных на этом внешнем диске.

    sudo mkdir /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

    После этого я переношу исходный каталог данных в новый каталог. Флаг - R указывает на то, что копирование выполняется рекурсивно.

    sudo cp /usr/share/nginx/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ - R

    Также необходимо скопировать файл с расширением. ocdata.

    sudo cp /usr/share/nginx/nextcloud-data/.ocdata /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

    Затем необходимо назначить www-data (пользователь Nginx) владельцем.

    sudo chown www-data:www-data /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ - R

    В заключение, необходимо внести изменения в файл config.php.

    sudo nano /usr/share/nginx/nextcloud/config/config.php

    Отыщите следующую строку и измените значение директории данных.

    'datadirectory' => '/usr/share/nginx/nextcloud-data',

    Сохраните файл и закройте его. Обновите страницу NextCloud, и на этом всё завершено.

    Повышение предела памяти для PHP.

    Стандартное значение лимита памяти в PHP составляет 128 МБ, однако для оптимальной работы NextCloud рекомендуется установить его на уровне 512 МБ. Чтобы изменить этот лимит, необходимо внести изменения в файл php. ini.

    sudo nano /etc/php/7.4/fpm/php. ini

    Определите последующую строку. (строка 409)

    memory_limit = 128M

    Измените данное значение.

    memory_limit = 512M

    Сохраните файл и закройте его. Также вы можете воспользоваться следующей командой, чтобы изменить значение, не открывая файл вручную.

    sudo sed - i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/fpm/php. ini

    После этого выполните перезагрузку службы PHP-FPM для применения изменений.

    sudo systemctl reload php7.4-fpm

    Параметризуйте PHP для корректного получения системных переменных окружения.

    Измените файл www.conf.

    sudo nano /etc/php/7.4/fpm/pool. d/www.conf

    Определите следующую строку (строка 396).

    ;clear_env = no

    Уберите точку с запятой, чтобы активировать эту строку.

    clear_env = no

    Сохраните файл и закройте его. Также вы можете использовать следующую команду для раскомментирования этой строки без необходимости вручную открывать файл.

    sudo sed - i 's/;clear_env = no/clear_env = no/g' /etc/php/7.4/fpm/pool. d/www.conf

    После этого выполните перезагрузку службы PHP-FPM для применения изменений.

    sudo systemctl reload php7.4-fpm

    Повышение предела на размер загружаемых файлов.

    По умолчанию максимальный размер загружаемого файла в Nginx составляет 1 МБ. Чтобы позволить загружать более объемные файлы на ваш сервер NextCloud, необходимо внести изменения в конфигурационный файл Nginx для NextCloud.

    sudo nano /etc/nginx/conf.d/nextcloud.conf

    Мы уже определили предельный размер файла в данном документе, как указано ниже.

    client_max_body_size 512M;

    Вы можете изменить его на что-то другое, например, на 1G, если это вам больше подходит.

    cl
    сервер кэширования памяти Redis для Nextcloud

    Совет: Если предыдущая команда не завершилась сразу, нажмите клавишу Q, чтобы восстановить управление терминалом.

    Согласно приведенному скриншоту, программа активна, и автозапуск активирован. Если по какой-то причине она не работает, введите следующую команду:

    sudo systemctl start redis-server

    Если автозапуск не активирован при старте системы, вы можете воспользоваться следующей командой для его активации:

    sudo systemctl enable redis-server

    Для конфигурации Redis в качестве кэша для nextCloud необходимо установить PHP-расширение, которое обеспечит взаимодействие с Redis.

    sudo apt install php-redis

    Убедитесь, что расширение активировано.

    php --ri redis

    проверка расширения Redis для PHP

    Мы наблюдаем, что расширение Redis активировано. Если оно неактивно, воспользуйтесь следующей командой:

    sudo phpenmod redis

    Следующим шагом измените файл настройки nextCloud.

    sudo nano /usr/share/nginx/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, ),

    Кэширование памяти Nextcloud с использованием локального кэша Redis.

    Сохраните файл и закройте его. После этого перезапустите Nginx и PHP-FPM.

    sudo systemctl restart nginx php7.4-fpm

    Теперь снова перейдите на страницу настроек ->Посмотрите обзор в NextCloud и обновите веб-страницу; предупреждение о кэшировании памяти должно исчезнуть.

    Добавление необходимых индексов.

    Если вы видите следующее сообщение на странице Настройки ->Обзор возможностей NextCloud.

    В базе данных отсутствуют некоторые индексы. Из-за того, что добавление индексов в большие таблицы может занять некоторое время, они не были добавлены автоматически.

    Вам следует самостоятельно внести эти индексы. Зайдите в корневую папку вашего веб-сайта Nextcloud.

    cd /usr/share/nginx/nextcloud/

    Используйте следующую команду для добавления индексов в базу данных Nextcloud.

    sudo - u www-data php occ db:add-missing-indices

    В базе данных отсутствуют некоторые индексы.

    Теперь, если вы обновите страницу Настройки ->В NextCloud необходимо, чтобы уведомление об отсутствующих индексах больше не отображалось.

    Переход к Big Int

    Если вы видите следующее сообщение на странице Настройки ->Обзор возможностей NextCloud.

    Некоторые столбцы в базе данных не имеют преобразования в big int. Из-за того, что изменение типов столбцов в больших таблицах может занять некоторое время, они не были изменены автоматически.

    Вам необходимо самостоятельно изменить тип столбца. Зайдите в корневую директорию Nextcloud.

    cd /usr/share/nginx/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

    В базе данных некоторые столбцы не были преобразованы в тип big int.

    Теперь, если вы обновите страницу Настройки ->В NextCloud обзор должен перестать показывать предупреждение о высоком целочисленном значении.

    Установка клиента NextCloud на настольной версии Ubuntu 20.04.

    Выполните следующие команды на рабочем столе Ubuntu 20.04 для установки клиента из официального репозитория.

    sudo apt install nextcloud-client

    Клиент NextCloud для операционной системы Ubuntu 20.04

    Клиент Nextcloud для Ubuntu 18.04

    На странице загрузки Nextcloud доступны клиентские приложения для macOS, Windows, Android и iOS.

    Как активировать OnlyOffice/Collabora Online

    По умолчанию Nextcloud поставляется с поддержкой OnlyOffice, онлайн-офисного пакета, который позволяет редактировать ваши файлы doc, ppt, xls непосредственно из NextCloud. Нам нужно только установить приложение, чтобы использовать эту функцию. Перейдите в Приложения Nextcloud ->Офис и Документы. Найдите и активируйте приложение для сервера документов сообщества.

    сервер документов Nextcloud OnlyOffice Community

    Сейчас, при нажатии на кнопку добавления (+) в Nextcloud, у вас появилась возможность создавать документы Word, таблицы и презентации непосредственно на вашем сервере Nextcloud.

    онлайн офис nextcloud
    Nextcloud Hub и OnlyOffice

    Тем не менее, я заметил, что данное приложение не отличается высокой надежностью. Бесплатная версия ограничена максимум 20 пользователями, поэтому, если у вас большее количество пользователей, потребуется приобрести корпоративную версию. Кроме того, существует другой онлайн-офисный пакет на базе LibreOffice, названный Collabora Online, который предлагает аналогичные функции, но без ограничения на число пользователей. Для интеграции его с Nextcloud вы можете ознакомиться с последующей статьей.

    • Интеграция Collabora Online с Nextcloud на Ubuntu через Docker.

    Создание локальной записи DNS

    Настоятельно рекомендуется внести изменения в файл /etc/hosts вашего сервера Nextcloud, добавив в него соответствующую запись. Это поможет избежать запросов к публичному DNS со стороны Nextcloud, что, в свою очередь, может повысить общую стабильность. Если сервер Nextcloud не сможет разрешить имя хоста nextcloud. example.com, существует вероятность возникновения ошибки 504 gateway timeout.

    127.0.0.1 localhost nextcloud. example.com

    IP-адрес в файле /etc/hosts может ассоциироваться с несколькими именами хостов. Если на том же сервере работают другие приложения, вы можете также добавить дополнительные имена хостов или субдомены в ту же строку следующим образом:

    127.0.0.1 localhost focal ubuntu nextcloud-пример. ком collabora-пример. ком

    Применение Cron для запуска фоновых процессов.

    По умолчанию Nextcloud использует AJAX для выполнения одной задачи при каждой загрузке страницы. Вы можете использовать более эффективный системный сервис cron для выполнения фоновых задач. Перейдите в Настройки ->Перейдите в основные настройки и выберите раздел Cron.

    Используйте системную службу cron для вызова файла cron.php каждые 5 минут.

    Затем внесите изменения в файл crontab для пользователя www-data.

    sudo - u www-data crontab - e

    Включите следующую строку в этот файл, чтобы cron-задача запускалась каждые 5 минут.

    */5 * * * * php7.4 - f /usr/share/nginx/nextcloud/cron.php

    Сохраните файл и завершите его редактирование.

    (Необязательно) Защита от недобросовестных попыток доступа

    Если ваш компьютер обладает статическим публичным IP-адресом, вы можете настроить белый список IP-адресов в конфигурационном файле Nginx.

    sudo nano /etc/nginx/conf.d/nextcloud.conf

    Вставьте указанные строки в блок SSL-сервера, чтобы разрешить доступ к URL-адресу /login только с вашего IP-адреса. Не забудьте заменить 78.56.34.12 на ваш собственный IP-адрес.

    location ~* ^/login { try_files $uri /index.php; include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Избегайте отправки заголовков безопасности дважды fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; allow 78.56.34.12; deny all; }

    Сохраните файл и закройте его. После этого проверьте настройки Nginx.

    sudo nginx - t

    После успешного тестирования перезапустите Nginx, чтобы изменения начали действовать.

    sudo systemctl reload nginx

    В случае отсутствия статического IP-адреса в домашней сети, вы можете организовать VPN-сервер в дата-центре.

    Рекомендации по решению проблем

    Если вы обнаружили ошибки, рекомендуется ознакомиться с одним из следующих журналов, чтобы понять причину проблемы.

    • Лог ошибок Nginx расположен по пути: /var/log/nginx/error.log.
    • Логи ошибок Nginx для виртуального хоста Nextcloud находятся по адресу: /var/log/nginx/nextcloud. error.
    • Журнал приложения Nextcloud находится по адресу: /usr/share/nginx/nextcloud/data/nextcloud.log.

    Однажды у меня возникла проблема с "Внутренней ошибкой сервера" на экземпляре Nextcloud, и в файле /var/log/nginx/nextcloud. error я обнаружил информацию о том, что

    FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught OC\HintException: [0]: Memcache \OC\Memcache\Redis not available for local cache (Is the matching PHP module installed and enabled?)

    Выяснилось, что при использовании PPA ppa

    Обновление Nextcloud.

    Необходимо следить за тем, чтобы ваш сервер Nextcloud всегда имел последние обновления, включая исправления безопасности и багов. Ознакомьтесь с инструкцией ниже, чтобы узнать, как выполнить обновление Nextcloud.

    • Два метода обновления Nextcloud [через командную строку и графический интерфейс]

    Заключение

    Надеюсь, это руководство оказалось полезным для установки NextCloud на сервер с Ubuntu 20.04 и Nginx. Если вам понравился материал, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше полезных советов и рекомендаций.