Обновляю разбор шагов по переходу с 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:
ekzorchikPass:
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.