Домашний сервер на Ubuntu

Облачные сервисы

Используется пакет ownСloud версии 7/8


1. Установка актуальных версий PHP, MySQL и Apache:
  • apt-get install tasksel
  • tasksel install lamp-server
  • apt-get install smbclient curl libcurl3 php5-gd php-xml-parser php5-intl php5-curl

2. Настройка MySQL:
Вход в базу mySQL: mysql -u root -p
Внутри MySQL выполняется:
  • create database clouddb;
  • grant all on clouddb.* to 'clouddbuser'@'localhost' identified by 'password';
  • quit

3. Общие настройка Apache:
3.1. a2enmod rewrite
3.2. a2enmod headers
3.3. Изменения в файл /etc/apache2/sites-available/000-default.conf

  Options Indexes FollowSymLinks MultiViews
  AllowOverride
All
  Order allow,deny
  allow from all
  
3.4. В файл /etc/apache2/apache2.conf добавляем строку ServerName localhost .
3.5. service apache2 restart
3.6 Справочно: страница-заглушка находится по адресу /var/www/html/index.html .

4. Настройка SSL соединения (протокол HTTPS)
4.1. Создание сертификатов: openssl req -new -x509 -days 30 -keyout server.key -out server.pem .
4.2. Снятие паролей с сертификатов:
  • cp server.key{,.orig}
  • openssl rsa -in server.key.orig -out server.key
  • rm server.key.orig
  • sudo cp server.pem /etc/ssl/certs/
  • sudo cp server.key /etc/ssl/private/
  • sudo chmod 0600 /etc/ssl/private/server.key
4.3. Настройка Apache - в файл /etc/apache2/sites-available/default-ssl.conf вставляем следующий текст (знак [[ меняем на <):
[[IfModule mod_ssl.c>
[[VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.pem
SSLCertificateKeyFile //etc/ssl/private/server.key
[[FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
[[/FilesMatch>
[[Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
[[/Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
[[/VirtualHost>
[[/IfModule>
4.4. a2enmod ssl
4.5. sudo a2ensite default-ssl
4.6. sudo service apache2 restart

5. Установка owncloud
5.1. cd /tmp .
5.2. wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_14.04/Release.key .
5.3. apt-key add - < Release.key .
5.4. sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud.list" .
5.5. apt-get update
5.6. sudo apt-get install owncloud

5.7. mkdir /var/www/cloud/data - выполняется в том случае, если данные предполагается хранить в папке /var/www/cloud/data
5.8. chown -R www-data:www-data cloud/data - выполняется из той папки, в которой находится папка cloud, в которой data

5.9. Окончательная настройка установки проводится через веб-интерфейс - ip_адрес/owncloud:
  • в верхнем запросе вводится логин и пароль администратора сервера;
  • в нижнем - логин и пароль администратора облака, которые прописывались на шаге 2;
  • путь (например) - /var/www/cloud/data .

6. Настройка кэширования PHP запросов (в owncloud старших версий, 8.1 - точно). Описана настройка для одиночного сервера.
6.1. Установка программы кэширование APCu версии старше 4.0.6. Это актуально для Ubuntu 14.04.x:
  • sudo apt-get insTALL php5-apcu
  • sudo service apache2 restart
6.2. В папке owncloud\config в конец файла config.php дописать: 'memcache.local' => '\OC\Memcache\APCu' .
6.3. В ряде случаев система требует наличия строки apc.enable_cli=1 в файлах /etc/php5/cli/php.ini и /etc/php5/apache2/php.ini .

7. Изменение пути в адресе браузера до облака:
7.1. По умолчанию для захода в облако нужно набирать домен/owncloud, соответственно сама программа ставится в папку /var/www/owncloud .
7.2. Если хотим, чтобы заход в облако осуществлялся просто по имени домена, то необходимо сменить корневой каталог Apache:
  • для работы по протоколу http вносим правки в файл /etc/apache2/sites-enabled/000-default.conf: /var/www/html -> /var/www/owncloud .
  • для работы по протоколу https вносим аналогичные правки в файл /etc/apache2/sites-enabled/default-ssl.conf .

8. Настройка облака для загрузки больших файлов
8.1. В файл .htaccess в папке owncloud вносим правки: upload_max_filesize = 16G; post_max_size = 16G; output_buffering = 0 {можно и не добавлять}.
8.2. Дать права на запись в файл .htaccess: chown www-data:www-data .htaccess .
8.3. В файл /etc/php5/apache2/php.ini вносим те же правки, что и в п. 7.1, + дополнительные: memory_limit = 512M; max_execution_time = 3600; upload_tmp_dir = “ссылка на папку с достаточным свободным местом + правами на запись".
8.4. service apache2 restart .
8.5. На странице “Admin” администраторского аккаунта в owncloud выставляем нужное значение максимально допустимого размера файла.

9. Настройка антивириса для проверки файлов, загружаемых в облако:
9.1. Установка антивируса: apt-get install clamav clamav-daemon .
9.2. Использование антивируса:
  • обновление сигнатур - freshclam ;
  • проверка текущего каталога - clamscan ;
  • запуск демона - /etc/init.d/clamav-daemon start .
9.3. В каталог /owncloud/apps раcпаковать это.
9.4. Активировать плагин через меню администратора облака. В настройкам плагина указать: Daemon (socket).
9.5. Целесообразно ограничить размер максимального объема проверямого файла, например, 50 Мб:
  • в настройках антивируса (/etc/clamav/clamd.conf) значение StreamMaxLength ставим на 50M
  • в настройках админской консоли ownCloud значение Stream Length указываем 52428800 .

10. Настройка совместной работы с файлами в облаке (collaboration) с помощью пакета LibreOffice:
10.1. add-apt-repository ppa:libreoffice/ppa && sudo apt-get update .
10.2. apt-get install libreoffice .
10.3. на предыдущем шаге можно установить не весь пакет LibreOffice, а его части:
  • libreoffice-writer – текстовый редактор;
  • libreoffice-calc – табличный редактор;
  • libreoffice-impress – презентации;
  • libreoffice-draw – рисование;
  • libreoffice-base – базы данных;
  • libreoffice-math – редактор формул;
  • libreoffice-filter-mobiledev – фильтр для мобильных устройств;
  • libreoffice-filter-binfilter – старые фильтры (еще со времён StarOffice 5.2).

11. Обновление Owncloud
11.1. В админе облака появляется сообщение, что доступна новая версия.
11.2. Новая версия закачивается командами: sudo apt-get update && sudo apt-get install owncloud .
11.3. Заходим в папку с owncloud и выполняем: sudo -u www-data php occ upgrade . Второй вариант - нажимаем что-то типа "Star update" на веб-странице сервера.
11.4. Повторяются шаги 8.1 и 8.2.

12. Дополнительные настройки
12.1. При большом числе файлов в облаке начинаются тормоза при обновлении их миниатюр (превью), помогает отключение их показа: в файл /var/www/owncloud/config/config.php вносится строка: false, .
12.2. Настройка периодического выполнения процедур owncloud посредством cron:
  • crontab -u www-data -e ;
  • добавляем строку: */15 * * * * php -f /var/www/owncloud/cron.php .