Установка NextCloud на Ubuntu 22.04 с использованием Nginx, PostgreSQL и PHP 8

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

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

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

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

Характеристики NextCloud

  • Свободный и с открытым исходным кодом.
  • Конечное шифрование предполагает, что файлы зашифровываются на устройствах пользователя перед отправкой на сервер, так что даже в случае кражи сервера злоумышленники не смогут получить доступ к содержимому файлов.
  • Можно интегрировать с онлайн-офисами (Collabora Online, OnlyOffice), что позволяет создавать и редактировать документы, презентации и таблицы прямо в NextCloud.
  • В магазине приложений можно найти множество программ для увеличения возможностей устройства, таких как календарь, контакты, заметки, видеозвонки и другие.
  • Приложение для синхронизации доступно на платформах Linux, macOS, Windows, iOS и Android.

Требования

Вы можете развернуть NextCloud на своем домашнем сервере или виртуальном частном сервере (VPS).

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

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

Установите NextCloud на Ubuntu 22.04.

Войдите на свой сервер Ubuntu 22.04. Затем загрузите zip-архив NextCloud на свой сервер. Последняя стабильная версия на момент написания этого текста — 24.0.0. Перейдите на https://nextcloud.com/install и нажмите «Скачать для сервера» ->«Файл архива», чтобы ознакомиться с актуальной версией.

Установка Nextcloud на Ubuntu 22.04

Для загрузки на свой сервер используйте следующую команду.

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

Вы можете применять указанный формат URL для загрузки NextCloud в любое время. Если появится новая версия, просто замените 24.0.0 на актуальный номер версии.

Установите программу для распаковки zip-архивов.

sudo apt install unzip

Создайте папку /var/www/ и распакуйте архив.

sudo mkdir - p /var/www/ sudo unzip nextcloud-24.0.0.zip - d /var/www/

Параметр — d задает каталог назначения. Веб-файлы NextCloud будут распакованы в /var/www/nextcloud/.

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

Nextcloud поддерживает базы данных PostgreSQL, MariaDB/MySQL и SQLite. Однако производительность Nextcloud значительно выше при использовании PostgreSQL, поэтому в данном руководстве будет рассматриваться именно этот вариант. Если вы уже устанавливали Nextcloud с MariaDB/MySQL, вы можете перейти на PostgreSQL.

Используйте данную команду для установки postgresql.(PostgreSQL и MariaDB могут сосуществовать на одном сервере, так что удаление MariaDB не требуется.)

sudo apt install - y postgresql postgresql-contrib

Авторизуйтесь в PostgreSQL под учетной записью пользователя postgres.

sudo - u postgres psql

Сформируйте базу данных для Nextcloud.

CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE';

Создайте учетную запись пользователя с именем nextclouduser и задайте для него пароль.

CREATE USER nextclouduserС УЧЕТНОЙ ЗАПИСЬЮ 'nextclouduser_password';

Выдайте пользователю базы данных необходимые права доступа.

ALTER DATABASE nextcloudВЛАДЕЛЕЦ ДЛЯnextclouduserПРЕДОСТАВИТЬ ВСЕ ПРАВА НА БАЗУ ДАННЫХnextcloud TO nextclouduser;

Для выхода из консоли PostgreSQL нажмите сочетание клавиш Ctrl+D.

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

После этого выполните следующую команду, чтобы убедиться, что вы можете авторизоваться в PostgreSQL под пользователем nextclouduser.

psql - h 127.0.0.1 - d nextcloud - U nextclouduser - W

Для выхода нажмите Ctrl+D.

Настройте виртуальный хост Nginx для Nextcloud.

Настройте веб-сервер Nginx.

sudo apt install nginx

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

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

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

Читайте также:  Методы защиты почтового сервера от хакерских атак с использованием VPN на системах Debian и Ubuntu

server < listen 80; listen [::]:80; server_name nextcloud. example.comДобавление заголовков безопасности

nginx< allow all; log_not_found off; access_log off; >Указанные два правила предназначены исключительно для приложения 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; >местоположение = /.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/php8.1-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~

  • .(?< 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 ~
  • .(?< try_files $uri /index.php$uri$is_args$args; # Необязательно: Не ведите учет доступа к другим активам access_log off; >>

    Закройте и сохраните файл. (Для сохранения в редакторе Nano нажмите Ctrl+O, затем подтвердите, нажав Enter. Для выхода используйте Ctrl+X.)

    Необходимо сменить владельца этой папки на www-data, чтобы веб-сервер Nginx имел возможность записывать в неё.

    sudo chown www-data:www-data /var/www/nextcloud/ - R

    Проверьте настройку Nginx.

    sudo nginx - t

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

    sudo systemctl reload nginx

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

    Новая версия Nextcloud поддерживает работу с PHP 8.1. Для установки необходимых и рекомендуемых модулей PHP выполните следующие команды.

    sudo apt install imagemagick php-imagick php8.1-common php8.1-pgsql php8.1-fpm php8.1-gd php8.1-curl php8.1-imagick php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-bcmath php8.1-gmp

    Активируйте протокол HTTPS

    Теперь у вас есть возможность открыть мастер установки Nextcloud через веб-браузер, введя доменное имя, связанное с вашей установкой 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 22.04.

    sudo apt install certbot python3-certbot-nginx

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

    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.
    • Электронный адрес, который применяется для создания учетной записи и восстановления связи.
    • Флаг - d идет вместе со списком доменных имен, которые разделяются запятыми. Вы можете указать до 100 доменных имен.

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

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

    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; # управляется Certbot listen 443 ssl http2; # управляется Certbot

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

    sudo nginx - t

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

    sudo systemctl reload nginx

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

    Отчет по SSL для Nextcloud.

    Откройте веб-мастер установки в вашем браузере.

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

    https://nextcloud. example.com

    Для завершения установки вам нужно выполнить следующие шаги.

    • Создать аккаунт администратора.
    • Укажите адрес директории с данными Nextcloud.
    • Введите информацию о базе данных, которую вы создали на втором шаге. В качестве адреса хоста можно использовать localhost:5432, так как PostgreSQL работает на порту 5432.

    Директория для хранения данных – это область, в которой находятся файлы пользователей. Для повышения уровня безопасности рекомендуется размещать эту директорию вне корневого каталога веб-сервера Nextcloud. Вместо стандартного пути хранения файлов пользователей в /var/www/nextcloud/data/ можно изменить его на /var/www/nextcloud-data, создав эту папку с помощью следующей команды:

    sudo mkdir /var/www/nextcloud-data

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

    sudo chown www-data:www-data /var/www/nextcloud-data - R

    nextcloud-ubuntu-22.04-install-guide

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

    Установить Nextcloud Hub на Ubuntu с использованием Nginx.

    Как установить настройки уведомлений по электронной почте в NextCloud

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

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

    Затем перейдите в Настройки ->Основные параметры. В этом разделе находятся настройки почтового сервера. Доступны два способа отправки: sendmail и smtp. Выберите режим sendmail.

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

    Следуйте инструкциям ниже для настройки SMTP-реле на Ubuntu.

    • Настройка SMTP реле Postfix на Ubuntu для использования с Sendinblue

    После настройки SMTP релея нажмите кнопку для отправки письма в Nextcloud, чтобы убедиться в корректной работе электронной почты.

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

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

    sudo - u www-data php /var/www/nextcloud/occ user:resetpassword nextcloud_username

    Есть также несколько других команд, которые могут оказаться полезными. Чтобы увидеть доступные команды, выполните:

    sudo - u www-data php /var/www/nextcloud/occ

    sudo - u www-data php /var/www/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 /var/www/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ - R

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

    sudo cp /var/www/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 /var/www/nextcloud/config/config.php

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

    'datadirectory' => '/var/www/nextcloud-data',

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

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

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

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

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

    memory_limit = 128M

    Измените параметр.

    memory_limit = 512M

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

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

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

    sudo systemctl reload php8.1-fpm

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

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

    sudo nano /etc/php/8.1/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/8.1/fpm/pool. d/www.conf

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

    sudo systemctl reload php8.1-fpm

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

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

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

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

    client_max_body_size 512M;

    При желании вы можете внести изменения, например, установить 1G.

    client_max_body_size 1024M;

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

    sudo systemctl reload nginx

    PHP накладывает ограничения на размер загружаемых файлов. По умолчанию максимальный размер для загрузки составляет 2 МБ. Чтобы изменить этот лимит, необходимо внести изменения в файл конфигурации PHP.

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

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

    upload_max_filesize = 2M

    Измените значение следующим образом:

    upload_max_filesize = 1024M

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

    sudo sed - i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php/8.1/fpm/php. ini

    После этого перезапустите PHP-FPM.

    sudo systemctl restart php8.1-fpm

    Конфигурирование кэша Redis для NextCloud

    Если вы перейдете на страницу настроек ->При просмотре вашего NextCloud может появиться следующее уведомление:

    Кэш памяти не настроен. Чтобы улучшить производительность, пожалуйста, настройте memcache, если он доступен.

    Для NextCloud мы настроим кэширование в оперативной памяти с помощью Redis. Для установки сервера Redis из репозитория Ubuntu выполните следующую команду.

    sudo apt install redis-server

    Вы можете узнать версию следующим образом:

    redis-server - v

    Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=a3fdef44459b3ad6

    Теперь можно проверить, функционирует ли сервер Redis.

    systemctl status redis

    nextcloud-memory-cache-redis-server

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

    На основании данного скриншота видно, что программа запущена и автозапуск активирован. В случае, если она не функционирует, выполните следующую команду:

    sudo systemctl start redis-server

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

    sudo systemctl enable redis-server

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

    sudo apt install php8.1-redis

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

    php8.1 --ri redis

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

    sudo phpenmod redis

    Затем внесите изменения в файл настроек nextCloud.

    sudo nano /var/www/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 php8.1-fpm

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

    Добавление отсутствующих индексов.

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

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

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

    cd /var/www/nextcloud/

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

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

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

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

    Переход к типу Big Int

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

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

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

    cd /var/www/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 22.04 Desktop.

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

    sudo apt install nextcloud-client

    Клиент NextCloud для Ubuntu 22.04

    клиент nextcloud для ubuntu 18.04

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

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

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

    Nextcloud OnlyOffice Community Document Server

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

    Nextcloud онлайн-офис
    Nextcloud Hub с интеграцией OnlyOffice.

    Тем не менее, я пришел к выводу, что это приложение не отличается высокой надежностью. В бесплатной версии разрешается использование не более 20 пользователей. Если же вам требуется поддержка более 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

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

    127.0.0.1 localhost focal ubuntu nextcloud. пример.com collabora. пример.com

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

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

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

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

    sudo - u www-data crontab - e

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

    */5 * * * * php8.1 - f /var/www/nextcloud/cron.php

    Сохраните изменения и закройте документ.

    Предотвращение злонамеренных попыток авторизации.

    Если ваш компьютер имеет статический публичный 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/php8.1-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 можно найти по адресу: /var/www/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

    Обновление Nextcloud на новую версию

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

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

    Заключение

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