Установка сервера ownCloud

Установка Apache и PHP
Установить PHP 7.3. Для PHP необходимо установить библиотеку:

# dnf --enablerepo=PowerTools install libedit-devel

Установка MariaDB

Открыть на редактирование /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

Установка 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"

 

Решение ошибок

cURL error 60: SSL certificate problem: unable to get local issuer certificate

Решение:

Обновить файл корневых сертификатов с сайта https://curl.haxx.se/docs/caextract.html:

resources/config/ca-bundle.crt