Обновленная установка OwnCloud 9 на MicroServer Gen8

Posted by

Теперь когда мой домашний сервер на базе обзавелся новым процессором и вместо одиночной установки Ubuntu Trusty Server на всю систему у меня развернут гипервизор ESXi 5.5 где уже внутри него много различных виртуальных систем. Так вот одна из них это личный домашний сервис для отличного платного использования Dropbox. У меня все свое и лично настроенное. Ниже обновленная установка сервиса owncloud на Ubuntu Trusty с учетом собственных наработок, как что-то я узнаю нового, то делаю новую заметку, так я вижу хронологию изменений и собственный репозитарий Mercurial наполняется изменениями. Ниже мое видение процесса, хотите используйте, хотите нет.

Отключаю обновление системы на другой релиз, я использую LTS Trusty:

ekzorchik@srv-trusty:~$ sudo nano /etc/update-manager/release-upgrades

Prompt=never

ekzorchik@srv-trusty:~$ sudo nano /etc/default/apport

enabled=0

ekzorchik@srv-trusty:~$ sudo nano /etc/profile

export LC_ALL="en_US.UTF-8"

export LANG="en_US.UTF-8"

ekzorchik@srv-trusty:~$ source /etc/profile

Отключаю использование IPv6:

ekzorchik@srv-trusty:~$ sudo nano /etc/hosts

#::1 localhost ip6-localhost ip6-loopback

#ff02::1 ip6-allnodes

#ff02::2 ip6-allrouters

ekzorchik@srv-trusty:~$ sudo nano /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

ekzorchik@srv-trusty:~$ sudo sysctl -p

Удаляю Apparmor:

ekzorchik@srv-trusty:~$ sudo /etc/init.d/apparmor stop

ekzorchik@srv-trusty:~$ sudo /etc/init.d/apparmor teardown

ekzorchik@srv-trusty:~$ sudo update-rc.d -f apparmor remove

ekzorchik@srv-trusty:~$ sudo rm /etc/init.d/apparmor

ekzorchik@srv-trusty:~$ sudo apt-get remove --purge apparmor -y

ekzorchik@srv-trusty:~$ sudo rm -Rf /etc/apparmor.d/ /etc/apparmor

Обновляю систему до актуального состояния в рамках текущего релиза:

ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists/

ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-trusty:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y

ekzorchik@srv-trusty:~$ sudo rm -rf /etc/localtime && sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

ekzorchik@srv-trusty:~$ sudo apt-get install ntp ntpdate -y

Устанавливаю Webсервис LAMP и настраиваю его на последующую работу для сервиса OwnCloud:

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

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

ekzorchik@srv-trusty:~$ sudo mysql_secure_installation

ekzorchik@srv-trusty:~$ sudo mkdir /var/lib/php5/pool-www

ekzorchik@srv-trusty:~$ sudo nano /etc/fstab

tmpfs /var/lib/php5/pool-www tmpfs defaults,noatime,mode=1777 0 0

ekzorchik@srv-trusty:~$ sudo mount -a

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

ServerName srv-trusty

и заменить все вхождения AllowOverride None на AllowOverride All (чтобы не было ошибок с файлом .htaccess в корне /var/www/owncloud/)

ekzorchik@srv-trusty:~$ sudo nano /etc/php5/apache2/php.ini

date.timezone = Europe/Moscow

upload_max_filesize = 10240M

post_max_size = 10240M

max_file_uploads = 1000

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

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

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

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

ekzorchik@srv-trusty:~$ sudo a2enmod headers

ekzorchik@srv-trusty:~$ sudo a2enmod env

ekzorchik@srv-trusty:~$ sudo a2enmod dir

ekzorchik@srv-trusty:~$ sudo a2enmod mime

ekzorchik@srv-trusty:~$ sudo a2enmod ssl

ekzorchik@srv-trusty:~$ sudo a2enmod rewrite

ekzorchik@srv-trusty:~$ sudo apt-get install php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick curl -y

Создаю базу, пользователя, пароль:

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

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

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

ekzorchik@srv-trusty:~$ sudo wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_14.04/Release.key -O Release.key

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

ekzorchik@srv-trusty:~$ sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud.list"

ekzorchik@srv-trusty:~$ sudo apt-get update -qq

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

Но увы, при просмотре какие версии пакета OwnCloud сейчас мне доступны для установки из репозитариев я упал в осадок, но Как, как разработчики позволяют себе такую дерзость, как изменять их и тогда один кусок из моей заметки опубликованной ранее делает всю заметку никудышной:

ekzorchik@srv-trusty:~$ apt-cache show owncloud | grep Version

Version: 6.0.1+dfsg-1ubuntu1.2

Version: 6.0.1+dfsg-1ubuntu1

а было ранее:

ekzorchik@srv-trusty:~$ apt-cache show owncloud | grep Version

Version: 9.1.1-1.2

Version: 6.0.1+dfsg-1ubuntu1.2

Version: 6.0.1+dfsg-1ubuntu1

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

ekzorchik@srv-trusty:~$ rm -f Release.key

Переходим на сайт https://owncloud.org/changelog/ и ищем релиз 9.

Значит, придется не из репозитария ставить пакет, а скачать его с официального главное чтобы релиз был 9, т. к. у меня все под него расписано и проработано и меня он устраивает:

ekzorchik@srv-trusty:~$ wget https://download.owncloud.org/community/owncloud-9.1.6.tar.bz2

ekzorchik@srv-trusty:~$ bzip2 -d owncloud-9.1.6.tar.bz2

ekzorchik@srv-trusty:~$ tar xf owncloud-9.1.6.tar

ekzorchik@srv-trusty:~$ sudo mv owncloud /var/www/

У меня доступ к личному облачному хранилищу будет осуществляться только через URL вида https://own.ekzorchik.ru:43568 с использованием самоподписанного сертификата.

Теперь настраиваю сайт конфигурации для взаимодействия с Webсервером Apache:

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

writing new private key to ‘owncloud .key’

Enter PEM pass phrase: 712mbddr@

Verifying — Enter PEM pass phrase: 712mbddr@

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

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

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

Enter pass phrase for owncloud.key.orig:712mbddr@

writing RSA key

ekzorchik@srv-trusty:~$ rm owncloud.key.orig

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

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

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

ekzorchik@srv-trusty:~$ 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/owncloud.pem

SSLCertificateKeyFile /etc/ssl/private/owncloud.key

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

SSLOptions +StdEnvVars

</FilesMatch>

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

</Directory>

</VirtualHost>

</IfModule>

ekzorchik@srv-trusty:~$ sudo a2ensite owncloud-ssl

ekzorchik@srv-trusty:~$ sudo apache2ctl configtest

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

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

#Listen 80

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

Переходим на страницу первой настройки: https://10.7.9.130

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

ekzorchik@srv-trusty:~$ sudo -u www-data vi /var/www/owncloud/config/config.php

array (

0 => '10.7.9.130',

1 => 'cloud.ekzorchik.ru'

),

'trashbin_retention_obligation' => 'auto',

'log_type' => 'owncloud',

'logfile' => '/var/log/owncloud.log',

'loglevel' => 2,

'enable_previews' => true,

'upgrade.disable-web' => false,

);

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

Теперь включим функцию кеширования:

ekzorchik@srv-trusty:~$ sudo apt-get install memcached php5-memcache php5-memcached php5-apcu -y

ekzorchik@srv-trusty:~$ sudo -u www-data vi /var/www/owncloud/config/config.php

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

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

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

после перейдя в «Администрирование» проверяю наличие предупреждений безопасности, теперь значится только:

«APCu ниже установленной версии 4.0.6, по причинам стабильности и производительности мы рекомендуем обновиться до новой версии APCu.»

Решение:

ekzorchik@srv-trusty:~$ sudo dpkg -s php5-apcu | grep Version

Version: 4.0.2-2build1

ekzorchik@srv-trusty:~$ sudo php5dismod apcu

ekzorchik@srv-trusty:~$ sudo apt-get remove php5-apcu -y

ekzorchik@srv-trusty:~$ wget http://old-releases.ubuntu.com/ubuntu/pool/universe/p/php-apcu/php5-apcu_4.0.6-1_amd64.deb

ekzorchik@srv-trusty:~$ sudo dpkg -i php5-apcu_4.0.6-1_amd64.deb

ekzorchik@srv-trusty:~$ sudo php5enmod apcu

ekzorchik@srv-trusty:~$ sudo nano /etc/php5/mods-available/apcu-cli.ini

apc.enable_cli = 1

ekzorchik@srv-trusty:~$ sudo php5enmod apcu-cli

ekzorchik@srv-trusty:~$ sudo -u www-data vi /var/www/owncloud/config/config.php

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

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

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

После чего возвращаюсь в меню «Администрирование» и наблюдаю, что все проверки пройдены:

Предупреждения безопасности и установки

Все проверки пройдены.

Итого вот она полная инструкция. На всякий случай пакет owncloud скачанный по ссылке я сохранил к себе в собственное хранилище на будущее. Я за чтобы все всегда было под рукой и с собственными наработками. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.