Обновленная установка OwnCloud на Ubuntu 18.04

Posted by

Обновляю разбор шагов по переходу с Ubuntu Trusty на Ubuntu Bionic сервиса owncloud которые в последствии будут отображены на моем домашнем хранилище HP MicroServer Gen8. Сейчас мое облачное хранилище работает на Ubuntu Trusty Server физического сервера HP MicroServer Gen8. Напомню, что owncloud — это веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов на своем железе. Я бы выразился — это инструмент для единого хранения и обеспечения настройки, резервного копирования, восстановления, ограничение по задействованному месту на Вашем личном сервере. Вы не зависите от лицензионного соглашения Dropbox, Yandex, Mail и т. д. Вот что и привлекло меня использовать owncloud и мне это очень нравится. На протяжении многих лет я поклонник owncloud. Все действия происходят на Ubuntu 18.04 Server развернутого под ESXi 6.0 через собственно ручном разобранный pxe сервис.

ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.33.33.7/hg/dproject

ekzorchik@srv-bionic:~$ sudo ./dproject/default

ekzorchik@srv-bionic:~$ sudo apt-get install tasksel -y

ekzorchik@srv-bionic:~$ sudo tasksel install lamp-server

ekzorchik@srv-bionic:~$ echo "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-available/000-default.conf

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ekzorchik@srv-bionic:~$ sudo rm -Rf /var/www/html/

ekzorchik@srv-bionic:~$ sudo mysqladmin -u root password 712mbddr@

ekzorchik@srv-bionic:~$ sudo mysql_secure_installation

ekzorchik@srv-bionic:~$ sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

ekzorchik@srv-bionic:~$ sudo sed -i 's/None/All/g' /etc/apache2/apache2.conf

ekzorchik@srv-bionic:~$ sudo apt-get install php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-intl php7.2-imagick curl php7.2-bz2 php7.2-gd php7.2-mbstring php7.2-xml php7.2-zip -y

ekzorchik@srv-bionic:~$ sudo a2enmod headers

ekzorchik@srv-bionic:~$ sudo a2enmod env

ekzorchik@srv-bionic:~$ sudo a2enmod ssl

ekzorchik@srv-bionic:~$ sudo a2enmod rewrite

ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create database db_owncloud character set utf8"

ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create user 'us_own'@'localhost' identified by '612mbddr@'"

ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "grant all on db_owncloud.* to 'us_own'@'localhost';"

ekzorchik@srv-bionic:~$ wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key -O Release.key

2018-10-14 21:36:14 URL:https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key [4485/4485] -> "Release.key" [1]

ekzorchik@srv-bionic:~$ apt-key add - < Release.key

E: This command can only be used by root.

ekzorchik@srv-bionic:~$ sudo apt-key add - < Release.key

ekzorchik@srv-bionic:~$ sudo bash -c "echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_18.04/ /' > /etc/apt/sources.list.d/owncloud.list"

ekzorchik@srv-bionic:~$ sudo apt-get update

ekzorchik@srv-bionic:~$ sudo apt-get install owncloud-files -y

От 02.12.2018 теперь пакета owncloud-files больше нет, хотя когда я писал эту заметку от 14.10.2018 он был, вот скажите мне разработчики зачем вы делаете вроде добро, но и но с большой буквы? А не проблема в сервере

Reading package lists... Done

W: Failed to fetch http://download.owncloud.org/download/repositories/production/Ubuntu_18.04/InRelease Could not connect to attic.owncloud.com:443 (178.63.148.42), connection timed out

W: Some index files failed to download. They have been ignored, or old ones used instead.

А раз так, то не буду подключать репозитарий, а просто скачаю debпакет:

ekzorchik@srv-bionic:~$ rm /etc/apt/sources.list.d/owncloud.list

От 23.05.2019 — и данного пакета на скачивание через wget больше нет, заменяю следующие две строки на эти:

wget https://download.owncloud.org/community/owncloud-10.2.0.tar.bz2
bzip2 -d owncloud-10.2.0.tar.bz2
tar xf owncloud-10.2.0.tar
rm -f owncloud-10.2.0.tar
mv owncloud /var/www/

ekzorchik@srv-bionic:~$ wget http://download.owncloud.org/download/repositories/production/Ubuntu_18.04/all/owncloud-files_10.1.1-1+1.1_all.deb

ekzorchik@srv-bionic:~$ dpkg -i owncloud-files_10.0.10-1+1.1_all.deb

На заметку: Файлы сервиса OwnCloud располагаются в каталоге: /var/www/owncloud

Теперь настраиваю взаимодействие с сервисом OwnCloud через самоподписанный сертификат:

ekzorchik@srv-bionic:~$ openssl req -new -x509 -days 3650 -keyout srv-bionic.key -out srv-bionic.pem

writing new private key to 'srv-bionic.key'

Enter PEM pass phrase: 712mbddr@

Verifying - Enter PEM pass phrase: 712mbddr@

Common Name (e.g. server FQDN or YOUR name) []:172.33.33.25

ekzorchik@srv-bionic:~$ cp srv-bionic.key{,.orig}

ekzorchik@srv-bionic:~$ openssl rsa -in srv-bionic.key.orig -out srv-bionic.key

Enter pass phrase for srv-bionic.key.orig:

writing RSA key

ekzorchik@srv-bionic:~$ rm srv-bionic.key.orig

ekzorchik@srv-bionic:~$ sudo cp srv-bionic.pem /etc/ssl/certs/

ekzorchik@srv-bionic:~$ sudo cp srv-bionic.key /etc/ssl/private/

ekzorchik@srv-bionic:~$ sudo chmod 0600 /etc/ssl/private/srv-bionic.key

ekzorchik@srv-bionic:~$ sudo nano /etc/apache2/sites-available/owncloud-ssl.conf

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"

ServerAdmin webmaster@localhost

DocumentRoot /var/www/owncloud

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLProtocol all -SSLv2

SSLCertificateFile /etc/ssl/certs/srv-bionic.pem

SSLCertificateKeyFile /etc/ssl/private/srv-bionic.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">

SSLOptions +StdEnvVars

</FilesMatch>

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

</Directory>

</VirtualHost>

</IfModule>

ekzorchik@srv-bionic:~$ sudo a2ensite owncloud-ssl.conf

Enabling site owncloud-ssl.

To activate the new configuration, you need to run:

systemctl reload apache2

ekzorchik@srv-bionic:~$ sudo apache2ctl configtest

Syntax OK

ekzorchik@srv-bionic:~$ sudo nano /etc/apache2/ports.conf

#Listen 80

ekzorchik@srv-bionic:~$ sudo systemctl restart apache2

ekzorchik@srv-bionic:~$ sudo chown -R www-data:www-data /var/www/owncloud/

Переходим на страницу первой настройки: https://IP&DNS (https://172.33.33.25)

Создать учетную запись администратора:

  • Login: ekzorchik
  • Pass: 712mbddr@
  • Каталог с данными: /var/www/owncloud/data
  • Имя пользователя базы данных: us_own
  • Пароль пользователя базы данных: 612mbddr@
  • База данных под сервис OwnCloud: db_owncloud
  • Месторасположение базы данных: localhost

и после нажимаю «Завершить установку», ожидаю и через некоторое время меня перекидывает на страницу где нужно авторизоваться с заведенными административными учетными данными:

После ввода связки Логин+Пароль нажимаю клавишу Enter

И сервис безопасного хранения Ваших данных успешно инсталлирован на Вашу подконтрольную только Вам систему Ubuntu 18.04 Server amd64

Или же установку можно выполнить через инструмент occ находящийся в папке owncloud:

ekzorchik@srv-bionic:~$ cd /var/www/owncloud

ekzorchik@srv-bionic:/var/www/owncloud$ sudo -u www-data php occ maintenance:install --database mysql --database-name db_owncloud --database-host 127.0.0.1 --database-user us_own --database-pass 612mbddr@ --database-table-prefix prefix_ --admin-user ekzorchik --admin-pass 712mbddr@ --data-dir /var/www/owncloud/data

ownCloud was successfully installed

На Ваши плечи ляжет задача, как обезопасить Ваш сервис, настроить бекапирование, настроить fail2ban, брандмауэр (ufw), проброс порта из вне к Вашему хранилищу и много многое другое. Такое под силу только тому человеку кто не доверяет облачным сервисам, например: Dropbox, Mail Disk, Yandex Disk и любит все только свое и лично контролируемое, как например делаю Я автор блога Олло Александр aka ekzorchik.

Если вы будете использовать проброс порта из вне во внутрь к этому сервису, то Вам потребуется для удобства настроить CNAME запись для Вашего IP адреса, но только если такая возможность у Вас есть, т. к. я описываю свой опыт и не претендую на универсальность.

ekzorchik@srv-bionic:~$ sudo nano /var/www/owncloud/config/config.php

<?php

$CONFIG = array (

'updatechecker' => false,

'instanceid' => 'oc33dewc1006',

'passwordsalt' => 'JgX0KoB6lFfCYC3FoUedqVUZHj5MKV',

'secret' => 'YlSTIdq7B/lWUhdADIDtfHoUOPJpOZhn3R78KJDTkHRCecgg',

'trusted_domains' =>

array (

0 => '172.33.33.25',

1 => 'cloud.ekzorchik.ru'

),

'datadirectory' => '/var/www/owncloud/data',

'overwrite.cli.url' => 'https://172.33.33.25',

'dbtype' => 'mysql',

'version' => '10.0.10.4',

'version.hide' => false,

'show_server_hostname' => false,

'dbname' => 'db_owncloud',

'dbhost' => 'localhost',

'dbtableprefix' => 'oc_',

'mysql.utf8mb4' => true,

'dbuser' => 'us_own',

'dbpassword' => '612mbddr@',

'logtimezone' => 'UTC',

'installed' => true,

);

ekzorchik@srv-bionic:~$ sudo service apache2 restart

ekzorchik@srv-bionic:~$ sudo crontab -u www-data -e

*/15 * * * * /usr/bin/php -f /var/www/owncloud/cron.php

crontab: installing new crontab

Уведомляем поисковых роботов не индексировать мое хранилище:

ekzorchik@srv-bionic:~$ sudo nano /var/www/owncloud/robots.txt

User-agent: *

Disallow: /

Уместить все в одной заметке не представляется возможным, да и у Каждого свои предпочтения защиты, озвучивать свои — нет, пусть каждый сам проходит долгий путь познаний.

На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.