Nextcloud увеличить размер загружаемого файла
NextCloud - набор инструментов с открытым исходным кодом для создания личного облачного хранилища.
Возможности NextCloud
- Бесплатно и с открытым исходным кодом.
- Сквозное шифрование, то есть файлы могут быть зашифрованы на клиентских устройствах перед загрузкой на сервер, поэтому даже если кто-то получит доступ к вашему серверу, он не сможет прочитать ваши файлы.
- Может быть интегрирован с пакетом онлайн-офиса (Collobora Online , OnlyOffice), что даст возможность создавать и редактировать файлы doc, ppt, xls прямо из NextCloud.
- Магазин приложений содержит сотни приложений для расширения функциональности (например, приложение календарь, приложение контактов, приложение для создания заметок, приложение для видеоконференций и т. д.).
- Приложения-клиент для синхронизации доступны для систем Linux, macOS, Windows, iOS и Android.
Инструкция по установке довольно обширная, хоть и не сложная, но если вы хотите установить NextCloud максимально легким способом, то тогда вам стоит воспользоваться нашей предыдущей статьей по установки NextCloud с помощью snap пакета: NextCloud: Создаем свое облачное хранилище.
Установка NextCloud (Apache, MariaDB)
Установим Apach и MariaDB:
Установим необходимые PHP модули:
Войдем в консоль базы данных. Поскольку MariaDB теперь использует плагин unix_socket для аутентификации входа пользователя, нет необходимости вводить пароль root MariaDB. Нам просто нужно добавить к команде mysql префикс sudo:
Создаем базу данных, пользователя и задаем свой пароль:
Выходим из консоли базы данных:
В самом верху следующей команды добавляем название своего домена:
Создаём виртуальный хост Apache для Nextcloud:
Меняем владельца каталога:
Устанавливаем NextCloud, задаем нашу базу данных, создаем администратора:
Добавляем свой домен в базу доверенных доменов NextCloud:
Шифрование домена NextCloud:
Не забудьте открыть порты 80 и 443:
Удаление index.php с домена NextCloud
Убираем index.php , тем самым делая адрес более красивым.
И под ним добавляем следующую строку:
Пример на скриншоте.
Затем обновляем .htaccess:
Известные ошибки
Решение ошибки: Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ
В конце, под блоком SSL добавляем следующий параметр:
И перезапускаем веб-сервер:
Решение ошибки: Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информации
Добавляем следующий параметр:
Перезапускаем Apache и PHP-FPM:
Увеличиваем предел размера загружаемого файла
При использовании модулей Apache PHP, по умолчанию задан предел загружаемого файла в 2 МБ. Обходим данное ограничение, увеличиваем предел загружаемого файла по своему усмотрению (в этом примере мы задаем предел в 5024 МБ):
Решение ошибки: В базе данных отсутствуют некоторые индексы. Из-за того, что добавление индексов в большие таблицы могло занять некоторое время, они не добавлялись автоматически
Решение ошибки: В некоторых столбцах базы данных отсутствует преобразование в большой тип int. Из-за того, что изменение типов столбцов в больших таблицах могло занять некоторое время, они не менялись автоматически
Переводим NextCloud в режим обслуживания:
И вводим следующую команду:
Отключаем режим обслуживания:
После этого Проверка безопасности и параметров, скорее всего не выявит проблем.
N extcloud – это один из самых популярных наборов программного обеспечения с открытым исходным кодом. Вы можете использовать его для хранения ваших личных файлов, контактов, изображений, музыки и многое другое, и это позволяет вам получить к ним доступ или поделиться им с друзьями в любое время. Это популярная альтернатива другому широко используемому файловому хостингу с именем ownCloud.
установите репозиторий epel.
Установка веб-сервера Nginx
Включите Nginx для запуска при загрузке и запуска службы, используя:
Установка веб-сервера Apache
Если вы хотите выбрать Apache вместо Nginx, вы можете пропустить установку nginx, и установить Apache.
Включите Apache, чтобы начать загрузку и запустить службу, используя:
Установите PHP 7
Версия PHP по умолчанию для CentOS 7 – это PHP 5.4, а для Nextcloud 14 требуется PHP 7 или выше, на этом этапе мы установим PHP версии 7.
Установите пакеты репозитория Remi и EPEL :
Включение Remi PHP 7 repo:
и установите PHP 7 и несколько PHP-модулей, требуемых Nextcloud, выполнив следующую команду:
yum install php php-mysql php-pecl-zip php-xml php-mbstring php-gd php-fpm php-intlЗамените значения на
Затем измените разрешение для каталога сеансов PHP , вам нужно пропустить этот шаг, если вы хотите использовать Apache вместо Nginx.
Наконец, перезапустите php-fpm
Установка сервера базы данных MariaDB
На этом этапе MariaDB запущен, и теперь мы создадим пароль для пользователя root. Выполните следующую команду, чтобы создать пароль root, удалить тестовую базу данных, удалить анонимного пользователя, а затем перезагрузить эти привилегии.
После создания вы можете протестировать пароль, вызвав эту команду, вам будет предложено ввести пароль:
Создание базы данных.
mysql -uroot -p -e " CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" mysql -uroot -p -e " GRANT ALL on nextcloud.* to nextcloud@localhost identified by 'M0d1fyth15'"Шаг 7. Настройка веб-сервера.
На предыдущем шаге вы выбрали веб-сервер для установки, теперь вам нужно его настроить.
Конфигурация Nginx
Если вы хотите использовать nginx, создайте файл конфигурации для блока сервера nginx
add_header X - Permitted - Cross - Domain - Policies none ; gzip_proxied expired no - cache no - store private no_last_modified no_etag auth ; gzip_types application / atom + xml application / javascript application / json application / ld + json application / manifest + json application / rss + xml application / vnd . geo + json application / vnd . ms - fontobject application / x - font - ttf application / x - web - app - manifest + json application / xhtml + xml application / xml font / opentype image / bmp image / svg + xml image / x - icon text / cache - manifest text / css text / plain text / vcard text / vnd . rim . location . xloc text / vtt text / x - component text / x - cross - domain - policy ;^ / ( ? : build | tests | config | lib | 3rdparty | templates | data ) /
^ / ( ? : \ . | autotest | occ | issue | indie | db_ | console )
^ / ( ? : index | remote | public | cron | core / ajax / update | status | ocs / v [ 12 ] | updater / . + | ocs - provider / . + ) \ . php ( ? : $ | / ) fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name ;
^ / ( ? : updater | ocs - provider ) ( ? : $ | / ) Добавление заголовка cache control для файлов js и css
\ . ( ? : css | js | woff | svg | gif ) $ add_header Cache - Control “ public , max - age = 15778463 ” ; add_header X - Permitted - Cross - Domain - Policies none ;
\ . ( ? : png | html | ttf | ico | jpg | jpeg ) $ Необязательно : не регистрировать доступ к другим ресурсам
Проверьте конфигурационный файл nginx, затем перезапустите службу
Конфигурация Apache
Создайте файл конфигурации виртуального хоста для домена, который вы хотите использовать для размещения Nextcloud.
Перейдите на официальный сайт Nextcloud и загрузите последнюю стабильную версию приложения
Распакуйте загруженный zip-архив в корневой каталог документа на вашем сервере
Если вы выбрали Apache, то вам нужно установить разрешение для пользователя Apache
На этом этапе мы покажем вам, как установить сертификат SSL из Let’s Encrypt.
Вам будет предложено указать ваш адрес электронной почты, тогда вам нужно согласиться с ToS, чтобы продолжить установку сертификата.
Если при запросе сертификата нет проблем, Certbot автоматически отредактирует ваш существующий блок сервера nginx для установки сертификата.
И вот что, с последнего шага этой статьи мы успешно установили Nextcloud 14 на вашем CentOs 7, и вы можете войти в систему с учетными данными пользователя вашего администратора
Ну для начала надо определить что значит маленькая скорость, и что ее ограничивает.
Канал у вас 1гигабит.
Значит теоретически по нему можно прокачать в районе 120мегабайт/с.
Практически меньше - зависит от настроек сети, типа трафика, используемых протоколов.
К тому же канал может быть загружен.
В общем нормальная скорость передачи в среднем для гигабитного канала это 50-60мб/сек.
Ваши значения вроде такие и есть.
Так же следует понимать что вы не просто трафик гоняете вы его с диска читаете - далеко не каждый диск сможет выдать те же 30мб/с в любой ситуации.
Все зависит от нагрузки, размера обращений, соотношения записи к чтению, размера кластера,
Поэтому определите какая скорость вам нужна, насколько реальная отличается от нужной.
И тогда уже можно думать что именно стоит сделать.
Для примера я беру обычную smb-шару и монтирую ее убунтой получаю нормальную скорость, а подключаю через некстклауд получаю в 2-3 раза меньше.
Тот же самый SSD - среднестатистический может обеспечить скорость при чтении мелкими блоками в районе 20мб/с, а топовые модели до 80мб/с!
И это только диски.
А передача по сети. В некоторых протоколах служебной информации передается в два, четыре раза больше чем пользовательской. Например чтобы передать фотку размером мегабайт, по сети будет передаваться четыре мегабайта служебного трафика и собственно мегабайт фотки.
Далее - неизвестна нагрузка на канал.
Далее - некстклауд кушает процессор и требует памяти для обработки - так что есть вероятность что будет упираться и в это.
В общем то озвученная вами скорость вполне нормальна.
Возможно ее удастся увеличить, но надо копать, смотреть где узкое место.
Штатной утилитой smbclient я гоняю этот файл на предельных для физической среды скоростях, а при подключении через nextcloud external dev -> smb получаю меньше. Я специально упростил все по максимуму, чтоб посмотреть реальную скорость одного соединения. Проц на тестовой машине i7/16гб ОЗУ.
Во вторых вы гоняете огромный файл - 4гб это линейное чтение.
А некстклоуд бъет файлы на мелкие порции и передает их в общем то почти случайным образом. Соответственно в разы отличается нагрузка на диск.
Рассмотренные примеры подойдут для Linux Ubuntu версий 16, 18 и 20.
Подготовка системы
Синхронизируем время.
Устанавливаем утилиту chrony:
apt-get install chrony
Выставляем нужный часовой пояс:
timedatectl set-timezone Europe/Moscow
* в данном примере московское время.
Разрешаем запуск демона chrony:
systemctl enable chrony
Настройка сервера баз данных
В качестве СУБД используем MariaDB.
apt-get install mariadb-server
Разрешаем автозапуск и стартуем сервис:
systemctl enable mariadb
systemctl start mariadb
Задаем пароль для суперпользователя mysql:
mysqladmin -u root password
Подключаемся к MariaDB, создаем базу данных и пользователя:
> CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Установка и настройка веб-сервера
Устанавливаем PHP, PHP-FPM и необходимые для работы nextcloud модули:
apt-get install php php-fpm php-common php-zip php-xml php-intl php-gd php-mysql php-mbstring php-curl php-imagick
* путь к данной папке зависит от установленной версии php. В данном примере это 7.4.
Снимаем комментарии со следующей строки:
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
* php7.4-fpm зависит от версии установленного php.
NGINX
Nextcloud можно развернуть на NGINX или Apache. В данной инструкции будем использовать первый.
apt-get install nginx
Создаем виртуальный домен и настраиваем его для работы с облачным сервисом:
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
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;
>
^/(data|config|\.ht|db_structure\.xml|README) deny all;
>
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;
>
* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ expires modified +30d;
access_log off;
>
>
Создаем каталог для хранения сертификатов и переходим в него:
После установки php мог установиться и запуститься apache. Отключаем его:
systemctl stop apache2
systemctl disable apache2
Проверяем конфигурацию nginx, завершаем его автозапуск и перезапускаем сервис:
systemctl enable nginx
systemctl restart nginx
Установка Nextcloud
Устанавливаем пакет unzip:
apt-get install unzip
Заходим на страницу nextcloud и копируем ссылку на скачивание последней версии программы:
Переходим во временную папку и скачиваем исходник для установки, воспользовавшись скопированной ссылкой:
* на момент обновления инструкции последняя версия была 22.
Распаковываем скачанный архив:
И переносим содержимое архива в каталог /var/www:
mv nextcloud /var/www
Задаем права доступа:
chown -R www-data:www-data /var/www/nextcloud
Задаем логин и пароль для администратора. В качестве базы данных выбираем MySQL/MariaDB (если предлагается выбор) и вводим в качестве логина, пароля и базы nextcloud.
Оптимизируем работу базы данных:
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Тюнинг после установки
Для корректной работы системы выполним дополнительную настройку. После входа в nextcloud под администратором, переходим в настройки для пользователя:
В разделе «Параметры сервера» переходим в Основные сведения:
В разделе «Проверка безопасности и параметров» мы можем увидеть список проблем:
Рассмотрим процесс решения некоторых из них.
1. Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ
Открываем на редактирование файл:
Меняем настройку для memory_limit:
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. Не настроена система кеширования
Для решения проблемы мы должны установить и настроить одно из средств кэширования:
Мы рассмотрим два последних варианта.
Redis
Устанавливаем сам Redis Server и модуль php:
apt-get install redis-server php-redis
* в случае установки сервера Redis на отдельный сервер, необходимо выполнить на сервере Nextcloud только установку php-redis.
systemctl restart php7.4-fpm
Открываем конфигурационный файл для nextcloud:
Memcached
Выполняем установку модуля для php и сам сервис memcached:
apt-get install memcached php-memcached
После разрешаем его автозапуск:
systemctl enable memcached
systemctl restart php7.4-fpm
После этого открываем конфигурационный файл для nextcloud:
4. Не указан регион размещения этого сервера Nextcloud
Для решения проблемы открываем конфигурационный файл nextcloud:
Работа с пользователями из UNIX-Shell
В состав nextcloud входит php-скрипт occ, с помощью которого можно управлять сервисом из командной строки Linux.
Добавление пользователя
Создать нового пользователя можно командой:
sudo -u www-data php /var/www/nextcloud/occ user:add admin
* где admin — имя учетной записи.
Сброс пароля
При необходимости сбросить пароль пользователя, можно воспользоваться командой:
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
* где admin — учетная запись пользователя, чей пароль хотим сбросить.
Подключение папки nextcloud по webdav
Мы можем подключить пользовательские данные nextcloud в качестве сетевого диска или раздела. Рассмотрим процесс для Windows и Linux.
Windows
Для начала необходимо включить службу «Веб-клиент». Для этого открываем от администратора командную строку и вводим команды:
sc config webclient start= auto
net start webclient
* первая команда включит автозапуск службы; вторая — запустит ее.
После открываем командную строку от пользователя и создаем сетевой диск командой:
Например, для нашей настройки:
Ограничение на копирование файла с webdav
В Windows при попытке скопировать большой файл с папки webdav, мы можем получить ошибку «Ошибка 0x800700DF: Размер файла превышает установленное ограничение, сохранение файла невозможно.»:
Для решения проблемы необходимо на клиенте разрешить больший объем для загрузки файлов. Это делается в реестре — ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters, параметр FileSizeLimitInBytes. Для примера, если задать значение 4294967295 (максимально возможное), то мы получим ограничение в 4 Гб.
Также можно воспользоваться командой:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v FileSizeLimitInBytes /t REG_DWORD /d 4294967295 /f
* команду нужно запускать в консоли, запущенной от администратора. В данном примере мы задаем также ограничение в 4 Гб.
Linux
Установим клиент davfs2. Действия будут немного различаться в зависимости от дистрибутива Linux.
а) Ubuntu / Debian:
apt-get install davfs2
б) CentOS / Red Hat:
yum install davfs2
Теперь мы можем примонтировать
После ввода команды, система попросит нас ввести логин и пароль от учетной записи Nextcloud:
Username: user
.
Password:
После каталог будет примонтирован.
Для постоянного монтирования серез fstab, открываем файл:
После открываем файл:
И добавляем строку:
/mnt user password
* где /mnt — предполагаемый каталог, куда мы будем монтировать данные; user и password — логин и пароль от учетной записи в Nextcloud.
Запускаем и создаем сервис для Apache Web server’s используя systemctl:
2. Установка и настройка MariaDB для Nextcloud
Выполним команду для установки MariaDB.
Запуск и создание сервиса MariaDB.
Выполним начальную конфигурацию базы данных, установим root пароль для MaraiDB и настроим другие параметры, удалим тестовую базу данных и удаленный root логин.
Создадим базу данных с именем nextcloud_db. Подключаемся из терминала к консоли mysql и выполняем команды
Welcome to the MariaDB monitor . Commands end with ; or \ g . Copyright ( c ) 2000 , 2015 , Oracle , MariaDB Corporation Ab and others . Type 'help;' or '\h' for help . Type '\c' to clear the current input statement . MariaDB [ ( none ) ] & gt ; create database nextcloud_db ;Создадим пользователя nxtuser и выдадим все привелегии ему для базы nextcloud_db
4. Скачиваем последнюю версию NextCloud
Замечание: необходимо убедиться что пакеты wget и bzip2 установлены на вашем сервере, в противном случаи выполните следующие команды для их установки.
Установливаем необходимые атрибуты для директории и файлов
5. открытие необходимых портов в firewall для nextcloud
В случаи если firewalld используется в качестве основного firewall используем следующие команды.
Переводим selinux в permissive режим
Проверяем/изменяем файл /etc/sysconfig/selinux
6. Зайдем на наш nextCloud используя web браузер
В результате успешной установки nextcloud мы сможем зайти по ссылки в браузере и увидеть окно приглашения
В моем случаи доступ по IP 192.168.56.15
7. Изменяем лимит для загрузки файлов в nextcloud (upload file size)
По-умолчанию максимальный размер, который можно загрузить 2MB, если есть потребность загружать файлы более 2MB в такком случаи необходимо изменить некоторые параметры в файле /etc/php.ini, к примеру установим 30 MB
Перезагружаем web сервер
8. Настройки безопастности
Проверить в файле /var/www/owncloud/data/.htaccess наличие:
9. Настройка клиентов по протоколу WebDAV
Если необходимо, можно использовать WebDAV для подключения сетевого диска, вашего пользователя nextcloud
Для Windows клиентов.
Для начала необходимо внести правки в реестр, изменить данные для обработки политики авторизации:
Читайте также: