Установка Nextcloud Debian 12

Установка Nextcloud
apt update && apt upgrade -y
# ставим PHP 8.2
# для работы Nextcloud также нужно доустановить модули
apt install php php-fpm php-common php-zip php-xml php-intl php-gd php-mysql php-mbstring php-curl php-imagick libapache2-mod-fcgid php-gmp php-bcmath libmagickcore-6.q16-6-extra -y

# включаем PHP
a2enmod php8.2
# проверяем установленную версию PHP
php -v
# проверяем работоспособность
systemctl status apache2

# перезагрузим apache
systemctl restart apache2

разрешаем в Apache модули для fcgi и php-fpm

/usr/sbin/a2enconf php8.2-fpm

и  /usr/sbin/a2enmod proxy_fcgi setenvif

редактируем nano /etc/php/8.2/fpm/php.ini

memory_limit = 512M

opcache.enable_cli=1

opcache.interned_strings_buffer=32

opcache.revalidate_freq=1

перезапускаем Apache и php-fpm

systemctl restart apache2 php8.2-fpm
# ставим MySQL
apt install mariadb-server -y
# выполним скрипт для повышения безопасности только что установленной MySQL:
mysql_secure_installation

 Рекомендуется ответить следующим образом:

  1. Enter current password for root (впервые пустой, жмём Enter)
  2. Set root password? [Y/n] — Нажмите Y и задайте сложный пароль
  3. Remove anonymous users? [Y/n] — Y
  4. Disallow root login remotely? [Y/n] — Y (запретить удалённый вход под root)
  5. Remove test database and access to it? [Y/n] — Y
  6. Reload privilege tables now? [Y/n] — Y

# подключаемся к MySQL:
mysql -u root -p
# создаем базу данных для NextCloud
CREATE DATABASE nextcloud;
# создаем нового пользователя для только что созданной БД
CREATE USER nextcloud_user1@localhost IDENTIFIED BY 'password';
# предоставляем привилегии созданному пользователю для доступа к БД:
GRANT ALL ON nextcloud.* TO nextcloud_user1@localhost;
# перезагружаем таблицы с привилегиями и применяем внесенные изменения, а затем выходим
FLUSH PRIVILEGES;
EXIT;
# скачиваем NextCloud на сервер
cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-31.0.6.zip
# распаковываем архив:
unzip nextcloud-31.0.6.zip
# установим разрешения на папку Nextcloud:
chown -R www-data:www-data /srv/www/nextcloud
chmod -R 755 /srv/www/nextcloud
# настройка веб-сервера Apache
# создаём новый файл конфигурации виртуального хоста для Nextcloud
nano /etc/apache2/sites-available/nextcloud.conf
# Внутри созданного файла размещаем следующий конфиг:

<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName your-domain.com
<Directory /var/www/nextcloud/>
Options FollowSymLinks MultiViews
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

#После чего деактивируйте конфигурацию дефолтного сайта Apache:
a2dissite 000-default.conf
# активируем только что созданный виртуальный хост с помощью следующей команды:
a2ensite nextcloud.conf
# включаем модуль mod_rewrite:
a2enmod rewrite
3 последние команды выполнил через webmin - командная оболочка (shell)
systemctl restart apache2
# увеличиваем значение параметра memory_limit в файле php.ini - (на 7 страниц вниз)
nano /etc/php/8.2/apache2/php.ini
# параметр memory_limit меняем на 512M.
# перезапускаем веб-сервер Apache, чтобы все изменения вступили в силу:
systemctl restart apache2
Для входа из интернета прописываем в файле /srv/www/nextcloud/config/config.php
0 => '192.168.0.2',
1 => 'I6.54.326.426:8080',
# входим - настраиваем - пользуемся.

Завершение настройки в веб-интерфейсе

  1. Откройте в браузере:http://your_domain_or_IP
  2. Должна отобразиться страница начальной настройки Nextcloud:
  3. Укажите имя администратора (логин), пароль (придумайте надёжный).
  4. Укажите каталог данных (по умолчанию /srv/www/nextcloud/data).
    • В поле для подключения к базе данных выберите MariaDB (MySQL/MariaDB).
      • Хост базы данных: localhost
      • Имя базы данных: nextcloud
      • Пользователь БД: nc_user
      • Пароль БД: тот, который вы указывали
  5. Нажмите Установить (или Finish Setup). Nextcloud автоматически настроит базу и файлы для начала работы.

Настройка Nextcloud:

Оптимизируем работу базы данных

sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint

Редактируем конфигурационный файл nextcloud

nano /srv/www/nextcloud/config/config.php

в самый конец файла, перед «);», добавляем

'default_phone_region' => 'RU',

Настройка кэширования

Устанавливаем memcached и php-apcu

apt install memcached php-memcached php-apcu

разрешаем автозапуск

systemctl enable memcached

запускаем сервис кэширования

systemctl start memcached

перезапускаем Apache

systemctl restart apache2

Редактируем конфигурационный файл nextcloud

nano /srv/www/nextcloud/config/config.php

в самый конец файла, перед «);», добавляем

'filelocking.enabled' => true,

'memcache.locking' => '\\OC\\Memcache\\Memcached',

'memcache.local' => '\OC\Memcache\Memcached',

'memcache.distributed' => '\OC\Memcache\Memcached',

'memcached_servers' => [

[ '127.0.0.1', 11211 ],

],

Настраиваем выполнение фоновых заданий

Открываем в браузере Nextcloud, справа вверху жмём на круглую иконку пользователя, в открывшемся меню жмём на «Настройки», далее - «Основные параметры», в разделе «Фоновые задания» выбираем Cron.

Если Cron не установлен, устанавливаем его

apt install cron

Создаем новое задание от пользователя www-data

crontab -e -u www-data

В открывшемся редакторе текста, внизу добавляем

* * * * * /usr/bin/php /var/www/nextcloud/cron.php

Настраиваем загрузку файлов большого объёма

Открываем конфигурационный файл PHP

nano /etc/php/8.2/fpm/php.ini

находим эти опции и изменяем их значения

output_buffering = 0

max_execution_time = 3600

max_input_time = 3600

post_max_size = 256G

upload_max_filesize = 256G

перезапускаем Apache

systemctl restart apache2

задаем новое значение фрагментации загружаемых файлов

sudo -u www-data php /var/www/nextcloud/occ config:app:set files max_chunk_size --value 536870912

Перезагружаем сервер:

systemctl reboot

Устранение некоторых ошибок в Nextcloud:

1. «PHP OPcache не настроен правильно»  Для обеспечения лучшей производительности рекомендуется задать в файле php.ini следующие параметры настроек:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1

2. Убираем предупреждение о кешировании. 

Не настроен механизм кэширования. Для повышения производительности рекомендуется настроить memcache. За дополнительными сведениями обратитесь к документации.

Поэтому прикручиваем систему кэширования, состоящую из локальной системы кэширования на основе APCu и системы распределённого кеширования Redis.

Ставим APCu

sudo apt install php-apcu -y

В файле php.ini включаем apcu

sudo nano /etc/php/8.2/cli/php.ini

вставив в начало

apc.enable_cli=1

Редактируем файл config/config.php в директории установки Nextсloud

sudo nano /srv/www/nextcloud/config/config.php

и вставляем следующую строку перед закрывающем скобкой «);»

'memcache.local' => '\OC\Memcache\APCu',

Ставим Redis.

sudo apt install redis-server php-redis -y

Проверяем, что он запустился

ps ax | grep redis
root@srvi:/srv/www/nextcloud/config# ps ax | grep redis
729768 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379
730216 pts/1 S+ 0:00 grep redis

В тот же файл config/config.php

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

вставьте следующее опять перед закрывающей скобкой « ); »

'memcache.distributed' => '\OC\Memcache\Redis',
'redis' =>
array (
   'host' => '127.0.0.1',
   'port' => 6379,
),
'memcache.locking' => '\OC\Memcache\Redis',

Сохраняем файл. Перезапускаем apache2.

 
 

Comments powered by CComment