Безопасность сетевых дисков Nextcloud и оптимизация конфигурации файлов

Недавно мне нужно было настроить собственное облачное хранилище для хранения и публикации файлов. После поиска я нашёл NextCloud довольно хорошим. Его легко установить, и после установки PHP онлайн, настройки имени пользователя, пароля и подключения к базе данных всё было готово. Самое главное, что он поддерживает WebDAV, что очень удобно. NextCloud поддерживает клиентов на мобильных телефонах и компьютерах, а также устройства Android и Apple. Вы также можете скачать другие инструменты для управления файлами в облачном хранилище. После подключения вы сможете напрямую читать и использовать файлы.


Недавно мне нужно было создать сетевой диск для хранения и публикации файлов. После проверки я обнаружил,Он довольно хорош, и установка проста. После установки PHP онлайн, настройки пароля пользователя и подключения к базе данных всё работает. Что самое важное, он поддерживает WebDAV, что очень удобно. NextCloud поддерживает клиентов на мобильных телефонах и компьютерах, как Android, так и Apple. Вы также можете скачать другие инструменты для управления файлами в облаке. После успешного подключения вы сможете напрямую читать и использовать файлы.
После установки облачного хранилища на сервер я проверил обзор и увидел кучу предупреждений о безопасности и настройке. Ещё один серьёзный подводный камень! Я поискал в Google, но информации о NextCloud было мало.

Похоже, PHP установлен некорректно и не может получить доступ к системным переменным окружения. Функция getenv("PATH") вернула значение NULL. Обратитесь к руководству по настройке PHP в документации по установке ↗, чтобы проверить информацию о конфигурации PHP вашего сервера, особенно если вы используете php-fpm.
Вам необходимо добавить строку в конец файла php-fpm.conf. php-fpm.conf находится в каталоге etc каталога PHP на вашем сервере. Это может отличаться в зависимости от установки. Найдите файл php-fpm.conf и отредактируйте его с помощью редактора vi.

vi /usr/local/php/etc/php-fpm.conf

Скопируйте следующий код в конец php-fpm.conf.

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
systemctl reload php-fpm

Перезапустите службу PHP, чтобы изменения вступили в силу.
Ваш веб-сервер неправильно настроен на разрешение "/.well-known/caldav". Ваш веб-сервер неправильно настроен на разрешение "/.well-known/carddav".
Для этого необходимо изменить файл конфигурации nginx.conf в nginx.

vi /usr/local/nginx/conf/nginx.conf

После открытия файла добавьте две строки кода внутрь server{}

перезаписать /.well-known/carddav /remote.php/dav постоянный; перезаписать /.well-known/caldav /remote.php/dav постоянный;

В Apache2x измените файл конфигурации httpd.conf и удалите число # перед LoadModule rewrite_module modules/mod_rewrite.so.
Измените все AllowOverride none в файле конфигурации на AllowOverride all
Кэш-память не настроена. Для улучшения пользовательского опыта, пожалуйста, настройте кэш-память максимально точно.
Кэширование повышает производительность за счёт хранения данных, кода и других объектов в памяти. Для вашего сервера Nextcloud необходимо установить и настроить конфигурацию Memcache.
Сначала измените конфигурацию MySQL, отредактируйте файл my.cnf и установите значение innodb_buffer_pool_size равным 1 ГБ или больше. Это зависит от размера системной памяти. Обычно рекомендуется устанавливать значение в диапазоне от 50% до 70% памяти сервера.
Установите значение innodb_io_capacity равным 4000. Если эта опция недоступна, скопируйте и вставьте её в файл my.cnf. Сохраните файл и перезапустите службу MySQL.
Nextcloud рекомендует Apcu, который можно использовать с Memcached. Включите расширения Apcu и Memcached для PHP, а затем добавьте следующее в файл config.php в сетевом каталоге Nextcloud:
Последние файлы расширения можно найти вhttp://pecl.php.net/Последняя версия — 5.18.
Установите расширение Apcu:

wget http://pecl.php.net/get/apcu-5.1.18.tgz tar zxvf apcu-5.1.18.tgz cd apcu-5.1.18 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install

Установите расширение в папку bin/php-config в каталоге установки PHP. Путь должен соответствовать вашему пути установки, иначе возникнет ошибка.
После завершения установки появится каталог, в котором будет храниться файл apcu.so. Скопируйте следующий код в файл php.ini и перезапустите службу PHP.

расширение=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/apcu.so apc.enabled= на apc.shm_size= 64M apc.enable_cli = на

Установите расширение Memcached:
Расширение Memcached требует компиляции и установки в общей сложности 4 программных обеспечения:

Сначала установите libevent, от которого зависит Memcached;
Затем установите библиотеку Memcached;
Затем установите библиотеку libmemcached, от которой зависит плагин Memcached PHP PECL;
Наконец, установите плагин Memcached из PHP PECL.
Не ошибитесь в заказе!
Сначала необходимо установить расширение Memcached, которое зависит от libevent. Последняя версия libevent — 2.1.11.
Установите зависимости libevent:

wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz tar -zxvf libevent-2.1.11-stable.tar.gz cd libevent-2.1.11-stable ./configure --prefix=/usr/local/libevent make make install

Скачайте, распакуйте, скомпилируйте и установите одним движением. Затем установите следующий.
Установите библиотеку Memcached. Обратите внимание, что библиотека Memcached и расширение Memcached — это разные вещи. Не путайте их. Последняя версия библиотеки Memcached — 1.6.0.
Установите библиотеку Memcached:

wget http://www.memcached.org/files/memcached-1.6.0.tar.gz tar -zxvf memcached-1.6.0.tar.gz cd memcached-1.6.0 ./configure --prefix=/usr/local/memcached make make install

Установите библиотеку libmemcached:

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached/bin/memcached make make install

После установки указанных выше библиотек зависимостей следующим шагом будет установка расширения Memcached. Перейдите на сайт http://pecl.php.net/ и найдите Memcached. Последняя версия — 3.15.
Установите расширение memcached:

wget http://pecl.php.net/get/memcached-3.1.5.tgz tar -zxvf memcached-3.1.5.tgz cd memcached-3.1.5 phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached --disable-memcached-sasl make -j4 make install

После успешной установки адрес хранилища memcached.so находится за Установка общих расширений:.
Скопируйте и вставьте следующий текст в файл php.ini. Процедура аналогична установке расширения apcu, описанной выше.

расширение=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/memcached.so

Наконец, перезапустите службу PHP, чтобы измененная конфигурация вступила в силу.

systemctl reload php-fpm

Установите расширение redis:

wget http://pecl.php.net/get/redis-5.2.0.tgz tar -zxvf redis-5.2.0.tgz cd redis-5.2.0 phpize ./configure --with-php-config=/usr/local/php/bin/php-config

Скопируйте следующее содержимое в файл php.ini, перезапустите службу PHP и успешно включите расширение redis.

расширение=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/redis.so

Расширение установлено. Теперь отредактируйте файл config.php Nextcloud.
Найдите файл config в каталоге сайта, а внутри него — файл config.php. Отредактируйте файл config.php.
В файле config.php добавьте следующее содержимое под $CONFIG = array (, которое использует расширение apcu.

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

Модуль PHP OPcache не загружен. Рекомендуется включить его для повышения производительности.
Так что же такое Opcache?
Предшественником Opcache был Optimizer+ — бесплатный компонент оптимизации и ускорения PHP с закрытым исходным кодом, разработанный Zend, официальной компанией, стоящей за PHP. Optimizer+ кэширует предварительно скомпилированные файлы PHP-скриптов (опкоды) в общей памяти для многократного использования, избегая трудоёмкой перекомпиляции кода с диска. Он также применяет несколько шаблонов оптимизации кода для более быстрого выполнения кода, тем самым ускоряя выполнение PHP.
Как установить Opcache?
В PHP7 Opcache установлен по умолчанию, но не включён. Давайте включим его сейчас.
Редактировать файл конфигурации PHP7
vim /usr/local/php/etc/php.ini
Введите команду поиска:/opcache
Найдите поле [opcache]
Скопируйте следующий код в php.ini

zend_extension=opcache.so opcache.enable=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 opcache.optimization_level=1 opcache.force_restart_timeout=3600


Opcache успешно включен.
Предел памяти PHP ниже рекомендуемого значения 512 МБ.
Отредактируйте файл php.ini и измените memory_limit на 512M.

vi /usr/local/php/etc/php.ini memory_limit = 512M

Ваш PHP не поддерживает FreeType, что приводит к сбоям в работе интерфейсов изображений профилей и настроек.
Многие думают, что установка библиотеки GD поддерживает freetype. Freetype — это не независимое расширение PHP, а часть библиотеки GD.

wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.gz tar -zxvf freetype-2.10.0.tar.gz cd freetype-2.10.0 ./configure --prefix=/usr/local/freetype make make install

Введите каталог ext/gd установочного файла php7.

./configure --with-php-config=/usr/local/php/bin/php-config --with-freetype=/usr/local/freetype make make install

Теперь библиотека GD уже поддерживает freetype.
В базе данных потеряны некоторые индексы. Поскольку добавление индексов в большие таблицы занимает время, программа не восстанавливает их автоматически.
Эту проблему можно решить, выполнив команды в каталоге сайта.
Используйте CD для входа в каталог хранения веб-сайта, например, веб-сайт находится по адресу wwwroot/nextcloud,

cd /wwwroot/nextcloud sudo -u www php occ db:convert-filecache-bigint sudo -u www php occ db:add-missing-indices


Если система не поддерживает использование команд PHP, будет выведено сообщение об ошибке: PHP: команда не найдена.
Сначала выполните команду echo $PATH для проверки системных переменных. Если переменная usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/php/bin отсутствует, добавьте её с помощью этой команды.

ln -s /usr/local/php/bin/php /usr/bin/php

В этом примере отсутствуют некоторые рекомендуемые модули PHP. Мы настоятельно рекомендуем установить их для повышения производительности и совместимости.
Сначала установите исходный код ImageMagick.

sudo yum -y install http://mirror.centos.org/centos/7/os/x86_64/Packages/ImageMagick-devel-6.7.8.9-18.el7.x86_64.rpm yum search ImageMagick-deve yum install ImageMagick-devel.x86_64

Установите imagick после установки ImageMagick-devel. Обязательно установите ImageMagick-devel, иначе установка завершится ошибкой!
Загрузите последнюю версию с pecl.php.net. Последняя стабильная версия — 3.4.4.

wget http://pecl.php.net/get/imagick-3.4.4.tgz tar -zxvf imagick-3.4.4.tgz cd imagick-3.4.4 phpize ./configure --prefix=/usr/local/imagemagick --enable-shared make make install

Добавьте следующий контент в php.ini и перезапустите службу PHP, чтобы расширение вступило в силу.

расширение=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/imagick.so

Система предложит установить расширение LDAP.
Установите openldap и openldap-devel с помощью yum и скопируйте файлы в каталог /usr/lib/ после установки.

yum install openldap yum install openldap-devel cp -frp /usr/lib64/libldap* /usr/lib/

Введите каталог установочного файла PHP

cd php-7.4.3/ext/ldap phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install

Затем добавьте в файл php.ini

расширение=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/ldap.so
1/5 - (1 голос)

Ответить

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены *