• NextCloud

 #10563   IgorA100
 25 май 2022, 11:37
Ссылка на скачивание предыдущих релизов: https://nextcloud.com/changelog/
Русификация модулей: https://www.transifex.com/home/

1. Устанавливаем Ubuntu server
2. Разрешаем root входить по SSH и настраиваем /etc/localtime
3. Подготовка:
Код: Выделить всёapt update
apt upgrade
apt dist-upgrade
apt autoremove
apt install net-tools
apt install unzip

4. Установка Webmin
Код: Выделить всёsudo nano /etc/apt/sources.list

Добавляем в конец файла:
Код: Выделить всёdeb http://download.webmin.com/download/repository sarge contrib

Вводим: CTRL+X, Y, затем ENTER.
Далее:
Код: Выделить всёwget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
sudo apt update
sudo apt install webmin


Устанавливаем MariaDB:
Код: Выделить всёapt 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 nextcloud@localhost IDENTIFIED BY 'nextcloud';
> \q


Устанавливаем PHP, PHP-FPM и необходимые для работы nextcloud модули:
Код: Выделить всёapt install php php-fpm php-common php-zip php-xml php-intl php-gd php-mysql php-mbstring php-curl php-imagick


В файле /etc/php/7.4/fpm/pool.d/www.conf снимаем комментарий с строки:
Код: Выделить всёenv[PATH] = /usr/local/bin:/usr/bin:/bin


Настраиваем /etc/php/7.4/fpm/php.ini
Код: Выделить всёopcache.enable=1
opcache.enable_cli=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 и перезапускаем его:
Код: Выделить всёsystemctl enable php7.4-fpm
systemctl restart php7.4-fpm


Устанавливаем NGINX
Код: Выделить всёapt install nginx


Создаем виртуальный домен и настраиваем его для работы с облачным сервисом:
Код: Выделить всёnano /etc/nginx/conf.d/nextcloud.conf

Код: Выделить всёserver {
        listen 80;
        server_name nextcloud.dmosk.ru;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;
        server_name nextcloud.dmosk.ru;

        ssl_certificate /etc/nginx/ssl/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/cert.key;

        root /var/www/nextcloud;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        client_max_body_size 10G;
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 = /core/templates/403.php;
        error_page 404 = /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location ^~ /.well-known {
                location = /.well-known/carddav { return 301 /remote.php/dav/; }
                location = /.well-known/caldav  { return 301 /remote.php/dav/; }
                location ^~ /.well-known{ return 301 /index.php/$uri; }
                try_files $uri $uri/ =404;
        }

        location / {
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }

        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires modified +30d;
                access_log off;
        }
}


* где:
nextcloud.dmosk.ru — домен, на котором будет работать сервис;
/etc/nginx/ssl — каталог, в котором будут храниться сертификаты;
/var/www/nextcloud — каталог с порталом.

Создаем каталог для хранения сертификатов и переходим в него:
Код: Выделить всёmkdir /etc/nginx/ssl
cd /etc/nginx/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.dmosk.ru/CN=nextcloud"


После установки PHP мог установиться и запуститься Apache.
Проверяем:
Код: Выделить всёsystemctl status apache2

При необходимости отключаем его:
Код: Выделить всёsystemctl stop apache2
systemctl disable apache2


Проверяем конфигурацию nginx, завершаем его автозапуск и перезапускаем сервис:
Код: Выделить всёnginx -t
systemctl enable nginx
systemctl restart nginx


Установка Nextcloud
Заходим на страницу nextcloud, затем в разделе "DOWNLOAD SERVER" находим "ARCHIVE FILE" и копируем ссылку на скачивание последней версии программы: https://download.nextcloud.com/server/r ... latest.zip
Код: Выделить всёcd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip


Распаковываем скачанный архив:
Код: Выделить всёunzip latest.zip

И переносим содержимое архива в каталог /var/www:
Код: Выделить всёmv nextcloud /var/www

Задаем права доступа:
Код: Выделить всёchown -R www-data:www-data /var/www/nextcloud


Если Вы дочитали до этого момента, то вероятнее всего у вас Nextcloud уже запущен. А теперь про более простой способ установки:
По ссылке https://nextcloud.com/install/#instructions-server доступны уже предустановленные варианты виртуальной машины или docker image или другие решения :)

Также доступны варианты виртуальных машин с дисками различных объемов:
https://www.hanssonit.se/nextcloud-vm/

Открываем браузер и переходим по адресу https://XXX.ru, где XXX.ru — адрес облачного сервиса.
Задаем логин и пароль для администратора. В качестве базы данных выбираем MySQL/MariaDB (если предлагается выбор) и вводим в качестве логина, пароля и базы nextcloud.
Оптимизируем работу базы данных:
Код: Выделить всёsudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint


В разделе «Параметры сервера» переходим в Основные сведения и при необходимости правим конфигурацию.
1. Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ
Открываем на редактирование файл: /etc/php/7.4/fpm/php.ini
Меняем настройку для memory_limit:
Код: Выделить всёmemory_limit = 512M

Перезапускаем php-fpm:
Код: Выделить всёsystemctl restart php7.4-fpm


2. В системе не установлены рекомендуемые модули PHP
Данная ошибка устраняется в зависимости от списка модулей, которых не хватает системе. Чаще всего, подходит команда:
Код: Выделить всёdnf install php-<название модуля>

Например:
Код: Выделить всёapt-get install php-gmp php-bcmath

После перезапускаем php-fpm:
Код: Выделить всёsystemctl restart php7.4-fpm


3.Модуль php-imagick в этом случае не поддерживает SVG. Для лучшей совместимости рекомендуется установить его.
Решение:
Код: Выделить всё apt install php-imagick imagemagick


Источник: https://www.dmosk.ru/miniinstruktions.p ... oud-ubuntu

И еще немного по исправлению предупреждений и ошибок: https://obu4alka.ru/warning-nextcloud-admin-panel.html