Теперь когда мой домашний сервер на базе HP MicroServer Gen8 обзавелся новым процессором и вместо одиночной установки Ubuntu Trusty Server на всю систему у меня развернут гипервизор ESXi 5.5 где уже внутри него много различных виртуальных систем. Так вот одна из них это личный домашний сервис OwnCloud для отличного платного использования 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.