Установка сервера ownCloud
Установка Apache и PHP
Установить PHP 7.3. Для PHP необходимо установить библиотеку:
# dnf --enablerepo=PowerTools install libedit-devel
Открыть на редактирование /etc/php.ini и изменить параметр:
memory_limit = 512M
Перейти в папку, скачать дистрибутив и разархивировать:
# cd /var/www
# wget https://download.owncloud.org/community/owncloud-10.4.1.zip
# unzip ./owncloud-10.4.1.zip
Назначить директории права на пользователя Apache:
# chown -R apache:apache owncloud
Создать и отредактировать файл:
# touch /etc/httpd/conf.d/owncloud.conf
# vi /etc/httpd/conf.d/owncloud.conf
Вставить текст:
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
</Directory>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
Настройку можно вставить в любой виртуальный хост
Подключение Memcached
В файле /var/www/disk/config/config.php добавить:
'memcache.local' => '\OC\Memcache\Memcached',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
),
HSTS
<VirtualHost *:443>
......
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
......
</VirtualHost>
Транзакционная блокировка файлов
Установить Redis:
# yum install redis
Запустить и добавить в автозапуск
# systemctl start redis.service
# systemctl enable redis
Для проверки что Redis работает можно ввести команду (в ответ должно вывести PONG):
# redis-cli ping
Установить модуль для PHP
# yum install php-pecl-redis5
В файле /var/www/disk/config/config.php добавить:
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
'password' => '', // Optional, if not defined no password will be used.
),
Загрузка файлов из вне при помощи CURL:
# curl -X PUT -u "<ЛОГИН>:<ПАРОЛЬ>" "https://server/owncloud/remote.php/webdav/<РАСПОЛОЖЕНИЯ ФАЙЛА В МЕТО ЗАГРУЗКИ>" --data-binary @"<РАСПОЛОЖЕНИЕ ФАЙЛА>"
пример:
# curl -X PUT -u "user:password" "https://cloud.disweb.ru/owncloud/remote.php/webdav/2020-08-17-10-11-file.tar.gz" --data-binary @"/home/user/site/backup/2020-08-17-10-11-file.tar.gz"
Примеры переиндексации всех файлов:
всех пользователей:
# sudo -u apache php ./occ files:scan --all
для одного пользователя:
# sudo -u www-data php ./occ files:scan -all ./occ files:scan username
Решение ошибок
Решение:
Обновить файл корневых сертификатов с сайта https://curl.haxx.se/docs/caextract.html:
resources/config/ca-bundle.crt