Как развернуть ownCloud сервер на Linux часть1.

Введение.

Платформа ownCloud относится к порталам общего назначения, способная обрабатывать большой объёмом текстовой и медийной информацией. Пакет включает в себя серверную и клиентскую часть. Серверная — отвечает за общий дизайн рабочих областей клиентов. Клиентская — для рабочих станций, встраивая свой функционал в офисные редакторы. Сервер через клиента «видит» документы на ПК пользователя и синхронизирует их копии с хранящимся на платформы.

Платформа по своим функциям может конкурировать с такими известным цифровыми коммуникациям как Kablink, MS SharePoint, IBM WebSphera, 1С-Битрик…,

Облако ownCloud выходит под лицензией AGPLv3

Подготовка ownCloud.

  • Стенд:
  • Cервер ALT Linux, имя: lin-owcl; IP 10.0.2.11;
    • CPU Intel Core 3 >
    • HDD >= 500Gb
    • ОЗУ >= 8Gb
    • Apache2
    • phpX
  • ALT Simply Linux, имя lin-sl; ip-10.0.2.33

На момент написания статьи ownCloud поддерживает только PHP7.x

Предварительные условия перед установкой платформы, требуют манипуляций, от характера которых зависит успешная эксплуатация платформы в дальнейшем.

На стенде показаны характеристики ownCloud для малого офис/бизнес.

Для сервера платформы выбираем минимальную конфигурацию, веб-движок запустим на Apache2, а в качестве БД используем библиотеку СУБД SQL. SQLite встроена в менеджер установочного пакета платформы.

SQLite — легкая СУБД SQL с хранилищем в виде txt. файла, без возможности использования режима клиент-сервер и хранения данных на внешнем носителе.

После установки сервера, необходимо обновить репозиторий.

# apt-get update; apt-get dist-upgrade

Установка пакетов.

Установочные архивы включают в себя базовые PHP библиотеки.

Все действия с rpm архивами можно выполнять с помощью менеджера пакетов Synaptic.

Для стенда используем PHP 7.4, обозначим её как PHP x.x в качестве стартовой.

Ниже перечислены необходимые библиотеки для установки.

# apt-get install php7
# apt-get install php7-fpm-fcgi 
# apt-get install php7-imagick
# apt-get install php7-common?
# apt-get install php7-mysqlnd
# apt-get install php7.4-gmp
# apt-get install php7-imap
# apt-get install php7-json
# apt-get install php7-pgsql
# apt-get install php7-ssh2
# apt-get install php7-ldap
# apt-get install php7-curl
# apt-get install php7-mbstring
# apt-get install php7-intl
# apt-get install php7-xmlrpc
# apt-get install php7-gd
# apt-get install php7-xml
# apt-get install php7-cli
# apt-get install php7-zip
# apt-get install php7-pdo 
# apt-get install php7-pdo_sqlite
# apt-get install php7-xmlreader
# apt-get install php7-fileinfo

В качестве менеджера для БД SQLite установим интерфейс командной строки sqlite3.

# apt-get install sqlite3

Все команды внутри sqlite вводятся через точку.

$ sqlite3
...
sqlite> .help

Действия с Apache2.

Установив, настроив и протестировав базовую часть веб-сервера, переходим к тонким настройкам взаимодействия Apache2 — ownCloud.

Разместим папку платформы в корень веб сервера /var/www/html и внесём небольшие изменения в файл настроек Apache2.

# vim /etc/httpd2/conf/sites-available/default.conf

Добавим в конец файла default.conf, секцию ifModule отключающею Dav для протокола WebDAV.

... 
<IfModule mod_dav.c>
              Dav off
 </IfModule>
...

WebDAV — совместное управление файлами на удаленных веб-серверах.

Перегрузим веб-сервера.

# systemctl restart httpd2

Выбор редакции.

  • Платформа выходит под тремя редакциями:
    • Community — бесплатная, содержит основные базовые функции,
      • поддержка на форуме
    • Enterprise — платная, включены дополнительные функции, поддержка,
      • подписка один год
    • Standard — платная, базовый функции, поддержка,
      • подписка один год

Для работы стенда воспользуемся редакцией Community (общественная). Скачать архивный пакет можно непосредственно с консоли, требуется подключение к сети Интернет. После получения архива, скачиваем дополнительный файл контрольной суммы для проверки пакета от действий злоумышленника.

# apt-get update # apt-get install wget # cd /var/www/html # wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 # wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.md5 # cat owncloud-complete-latest.tar.bz2.md5 ... # md5sum owncloud-complete-latest.tar.bz2 ...

Wget — утилита сетевой загрузки, использует не интерактивный режим работы.

Если возможность прямого соединения с Интернет отсутствует, скачать архив можно с сайта.

Скачать архив ownCloud.
Скачать архив ownCloud.

Запуск ownCloud.

Скачав пакет платформы одним из выше перечисленных способов, распаковываем его в корне веб-сервера.

# tar -xvf owncloud-complete-latest.tar.bz2

В каталоге /var/www/html создаётся папка owncloud, нам необходимо установить права владельца на эту папку. Делается это в ручную из командной линии или с помощью сценария instance.sh, который можно использовать для установки и обновления, при получения новой версии. Мы выполним установку прав в ручную, а действиям с помощью скрипта instance.sh будет посвящена отдельная статья.

Устанавливаем права и владельца для каталога owncloud.

# chmod -R 755 /var/www/owncloud/
# chown -R apache2:apache2 /var/www/html/owncloud/

Открываем любимый браузер, набираем URL html://ip/owncloud.

Придумайте имя и надёжный пароль для администратора.

Регистрация в ownCloud.
Регистрация в ownCloud.

После успешного прохождения процедуры регистрации пользователя с правами администратора, система предложит войти под именем нового зарегистрированного пользователя.

Войти как администратор в ownCloud.
Войти как администратор в own-Cloud.

Теперь платформа, после настройки и изучения, готова к работе.

Каталоги.

Дерево папок платформы представлено большим количеством каталогов, в низу показаны основные:

  • Навигация в дереве папок платформы.
    • /var/www/html/owncloud — домашний каталог
      • ../owncloud/config/config.php — файл настроек
      • ../owncloud/date — хранилище БД SQLite и папок пользователей

Заключение

Коммуникационная платформа успешно установлена и работает, после ознакомления с интерфейсом, необходимо решить важный вопрос, на какой БД будет работать ваше облако. Для небольшой организации до ~10 чел. достаточно БД SQLite — имеет ряд ограничений. Для расширения возможностей и перспективы роста облачной платформы необходимо усилить БД, перейдя на MySQL. В следующих частях будет рассказано о действиях после установки и миграции с БД SQLite на MySQL.

Ещё один важный вопрос — создание надёжного механизма резервного копирования. Это надо решать сразу, не дожидаясь перето…Вы можете успешно внедрить облако в организации, но без возможности восстановления из резервной копии все усилия будут напрасны. В дальнейшем вопросу backup / restore будет посвящена отдельная часть.

Полезные ссылки.

Как установить Apache2 на Linux.

Введение.

Веб сервер Apache2 является одним из старейших сервисных приложений с хорошей историей и устойчивой репутацией. Apache2 не требует особых знаний и опыта в эксплуатации. После установки из «коробки» офисного варианта сервера, Apache готов к работе, ожидая установки в корневой папке программных приложений, например CMC Joomla или WordPress. Web сервер распространяется под лицензией Apache License 2.0, фонда Apache Software Foundation (ASF), способствующего развитию проектов веб-сервера Apache.

Подготовка.

Исходя из того, что количество документов хранящихся на веб-сервере со временем будет расти, выделим для этой задачи отдельный сервер в минимальной конфигурации и развернём на нём Apache2. 

Основной язык работы сервера, HTTP и PHP.

  • Стенд
    • Cервер ALT Linux, имя lin-web; ip-10.0.2.33
      • CPU Intel Core 5
      • HDD >100Gb
      • ОЗУ > 8Gb

Установка PHP зависит от того программного приложения, которое необходимо для работы проекта, поэтому мы не будем специально указывать версию PHP.

X — обозначает текущею версию пакетов PHP.

Просмотреть какие версии PHP нам доступны можно по запросу.

# apt-get update
# apt-cache search php|grep php
...

Установка требуемой версии PHP.

# apt-get install phpX
# php -v
...

Развёртывание базовых модулей web-сервера.

# apt-get install apache2 
# apt-get install apache2-mod_phpX 
# apt-get install phpX-mbstring
# apt-get install phpX-zip 
# apt-get install phpX-xmlreader

Для установки пакетов можно использовать графический менеджер — synaptic.

Настроить владельца корневого каталога веб-сервера.

# chown -R apache2:apache2 /var/www/html/

Просмотр прав владельца папок веб-сервера Apache2.

# namei -mol /var/www/html/
f: /var/www/html/
drwxr-xr-x root    root      /
drwxr-xr-x root    root      var
drwxr-xr-x root    webmaster www
drwxrwsr-x apache2 apache2   html

Контроль «пути» корневого каталога в файле конфигурации Apache2.

# vim /etc/httpd2/conf/sites-available/default.conf
...
DocumentRoot /var/www/html
...
<Directory "/var/www/html">

Безопасность Apache2

 Сервер Apache2 является публичным сервисом, для доступа к своим приложениям авторизованным пользователям и гостям. В задачу администратора входит обеспечить защиту сервера от проникновения злоумышленника.

В качестве одной из защиты административной панели любого приложения установленного на Apache, хорошо зарекомендовал себя метод доверия для IP адресов, с которых осуществляется администрирование, при помощи файла .htaccess.

Для поддержки .htaccess сервера Apache необходимо в секцию «Directory» добавить.

 # /etc/httpd2/conf/sites-available/default.conf
...
<Directory "/var/www/html">
...
AllowOveride All
</Directory>

 Сервер Apache, по умолчанию, нацелен  на каталог справочной документации, тематически направленной на изучение особенностей использования дистрибутива, который установлен для работы или учёбы. Исходя из сказанного, пользователю необходимо решить вопрос использовать страницы документации при работе с Apache или отказаться, создав веб-сервер для работы приложений.

Закомментировать или удалить ссылки на справочную документацию.

...
</IfModule> 
   
    # "/var/www/cgi-bin" should be changed to whatever your ScriptAliased 
    # CGI directory exists, if you have that configured.
    #
    <Directory "/var/www/cgi-bin">
        # Summary: Configure for default CGI directory
        # Requires: Directory-cgi
        Include conf/include/Directory_cgibin_default.conf
    </Directory>

# RewriteEngine On
# RewriteCond %{HTTPS} !=on
# RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R,L]

</VirtualHost>

Запуск сервера Apache2.

Сервер развёрнут, модули подключены остаётся запустить Apache и установить режим автозагрузки.

# systemctl start httpd2 
# systemctl enable httpd2
# systemctl is-enabled httpd2

Проверка работы Apache2.

 Проверить работу сервера можно с помощью любимого браузера. Набрав в адресной строке адрес веб-сервера получите ответ, если нет следует просмотреть журнал Apache в каталоге /var/log/httpd2.

Расширение Apache2.

 На ресурсах Apache2 могут быть развёрнуты различные приложения. Для их успешной работы требуются библиотеки, ниже приводится список пакетов, которые необходимы для запуска приложений.

  • Библиотеки популярных приложений.
# apt-get update 
# apt-get install phpX-mbstring
# apt-get install phpX-zip
# apt-get install phpX-ldap
# apt-get install phpX-xmlreader
# apt-get install phpX-socket
  • LDAP — облегчённый протокол доступа к каталогам
  • mbstring — для работы с Unicode
  • ZIP — обработка ZIP-архивов
  • XMLReader — анализатор XML
  • sockets — для связи сокетов

 Заключение.

  Сервер веб-приложений Apache хорошо зарекомендовал себя во многих проектах, являясь свободным продуктов, он пользуется мощной поддержкой сообщества Apache Software Foundation, обладает хорошей гибкостью и модульной кроссплатформенной архитектурой. Используя Apache в качестве базового сервера, пользователи получают надёжную информационную систему для запуска своих бизнес проектов.

Полезные ссылки.

Как установить Joomla Linux

Ведение.

 Тема блога, CMS Joomla — система управления содержимым (CMS), является проектом с открытым исходным кодом под лицензией GNU GPL. Слово «Joomla» — производное от слова «Jumla» из африканского языка суахили и означает «все вместе». Практически весь интернет так или иначе работает на движках CMS, к которым принадлежит Joomla. Язык написания, PHP и JavaScript, в качестве БД используется MySQL или PostgreSQL.

Пользователям линейки дистрибутивов ALT Linux, вероятно будет интересно воспользоваться широкими возможностями представляемыми этой CMS. Проекты CMS Joomla и WordPres могут использоваться для развёртывания сайтов в учебных, медицинских, государственных учреждениях в качестве информационных досок. CMS Joomla развёрнут на сервере Apache2, если оборудование «слабое » можно использовать Nginx, как это сделать читайте здесь.

  • Стенд:
    • ALT Linux сервер, имя lin-jml; ip-10.0.2.10;

Подготовка.

  • Базовую установку веб сервера Apache2 смотри здесь.
  • Выполнить установку пакетов X обозначает версию php.
# apt-get update
# apt-get install apache2
# apt-get install apache2-mod_phpX
# apt-get install phpX-mysqli
# apt-get install phpX-pgsql
# apt-get install phpX-mbstring
# apt-get install phpX-zip
# apt-get install phpX-xmlreader
# mkdir /var/www/html/joomla
# chown -R apache2:apache2 /var/www/html/joomla
# systemctl start httpd2
# systemctl enable httpd2

Выбор БД для CMS Joomla.

 В зависимости от ваших предпочтений и корпоративных требований выберите БД для работы сайта.

  • БД
    • базовые настройки MySQL смотри
      • установить модуль — phpX-mysqli
    • базовые настройки PostgreSQL смотри
      • установить модуль phpX-pgsql.

Первый этап установки CMS Joomla.

Развёртывание каталогов Joomla.

Все действия проводятся с каталогами сервера Apache. Необходимо скачать свежую версию пакета joomla с сайта Joomla.ru [1] и распаковать в корневой каталог вэб сервера.

# mkdir /var/www/html/joomla 
# cd /var/www/html/joomla/
# unzip Joomla_x.x.x-Stable-Full_Package-jino-ru.zip
  • установить права на файлы и каталоги joomla
# chown -R apache2:apache2 /var/www/html/joomla # systemctl start httpd2 # systemctl enable httpd2 # find /var/www/html/joomla/ -type f -exec chmod 644 {} \; # find /var/www/html/joomla/ -type d -exec chmod 755 {} \;
  • уроверить порты программ, обеспечивающих работу joomla
# nmap localhost Starting Nmap 5.51 ( http://nmap.org ) at 20xx-xx-xx xx:xx MSK Nmap scan report for localhost (127.0.0.1) ... 80/tcp open http ... 3306/tcp open mysql ... 5432/tcp open postgresql ...
  • отключить буферизацию в файле php.ini настроек Apache2.
# /etc/php/X.X/apache2-mod_php/php.ini 
output_buffering = off
... 
# systemctl restart httpd2

Второй этап установки CMS Joomla.

Мастер графической установки CMS Joomla.

 Шаг №1. В браузере ввести адрес, после чего, мастер пошаговой настройки проведёт вас по установочным страницам.

Шаг №2. Конфигурация БД, здесь нам предлагается создать базу данных для Joomla, по условию темы блога, мы  находимся в среде движков двух БД: MySQL и PostgreSQL. Не будем отдавать предпочтения ни одному из них, просто  распишем технологический процесс, но для PostgreSQL необходимо будет предварительно создать чистую БД для Joomla. Когда подготовительные действия с БД произведены, возвращаемся к шагу 2, мастера установки Joomla и выбираем одну из баз MySQL или PostgreSQL.

Пример создания чистой БД для PostgreSQL

$ psql -U postgres Пароль пользователя postgres: CREATE DATABASE jml; //условное название CREATE DATABASE \l Список баз данных Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа -----+----------+-----------+------------+----------+--------------- jml | postgres | UTF8 |ru_RU.UTF-8 |ru_RU.UTF-8 | ... (5 строк) \q

Оптимизация производительности Joomla после установки.

Система кеширования данных,memcached, позволяет значительно ускорить открытие страниц сайта при обращение к ним

# apt-get install memcached # vim /etc/sysconfig/memcached RUNAS="memcached" LISTEN="127.0.0.1" MAXCONN="1024" CACHESIZE="64" EXTRAOPTIONS="" PORT="11211" ... # systemctl restart httpd2 # systemctl start memcached # systemctl enable memcached //проверка службы # netstat -tap | grep memcached tcp 0 0 localhost.localdomain:11211 *:* LISTEN 26227/memcached //пробуем подключится # telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. stats //выводит статистику ... END quit //выход из telnet

В настройки Joomla вносим изменения шаги, для переключения в режим кеширования.

Если по требованиям безопасности Joomla должна работать в закрытом сегменте вашей сети, без выхода в интернет, отключите шрифты google, выполнив в панели инструментов администратора следующие действия. Это позволит увеличить быстродействие, при обращение к страницам сайта.

Защита Joomla.

 Случаи взламывания сайтов на основе CMS Joomla широко известны, существуют разные методики и средства защиты от несанкционированного доступа, одним из которых является использование файла .htaccess, ограничивающий доступ к панели управления Joomla.

Защитить учётную запись пользователя, от злодея, можно настроив политику сложностей паролей для пользователей, включением двух факторной авторизацией, активацией сaptcha и установкой SSL сертификата, обеспечив защиту соединения от злоумышленника. Особо мнительные администраторы могут удалить модуль пользовательского входа из области папок, расположенного в дереве каталогов Joomla, не забудьте после перегрузить Apache.

Все эти меры в комплексе или выборочно позволят уберечь ваш сайт от неприятностей. Не забывайте о регулярном обновлении Joomla, не старайтесь ставить большое количество плагинов и модулей. Изучите то, что включено в ядро Joomla, а если решили добавить расширение, то загляните сюда и почитайте отзывы о модуле/плагине.

Рекомендации.

  • Права доступа на каталоги и папки должны быть установлены соответственно 755 и 644.
  • Для мониторинга изменений в каталогах и файлах Joomla, которые могли произойти без вашего участия или обнаружения подозрительной активности, можно воспользоваться инструкцией control, позволяющей собирать и сравнивать изменение размера файлов и каталогов Joomla за отчётный период.
  • Порядок создания control.
    • создать файл скрипта control
      • поместить в /usr/local/bin
        • создать cron задачу, отправки отчёта на e-mail
#!/bin/bash
# инструкция control
find /var/www/html/joomla/ -type f -ctime -1 -exec ls -ls {} \;
  • Создание .htaccess.
    • что бы включить поддержку .htaccess, добавьте в /etc/httpd2/sites-available/default.conf сервера Apache следующею строку.
    • в текстовом редакторе создайте файл  .htaccess и поместите его в каталог администратора. Доступ к панели станет возможен только с доверенного IP адреса.
# cd /var/www/html/administrator # cat> .htaccess order deny,allow deny from all allow from 10.0.2.18 Ctrl+D # chmod 644 .htacces

 Если произошли критические изменения с сайтом и вы не знаете, как поступить. Воспользуйтесь инструкцией создания отчёта аварийной работы сайта и отправьте его на форум или администратору. Файл отчёта называется fpa-en.php, скачать можно отсюда, после распаковки читайте инструкцию, как оформить fpa-en.php, поместить файл в корень сайта. Когда все действия будут выполнены, в командной строке вашего браузера введите адрес http://joomla/fpa-en.php, сформируется отчёт о всех событиях Joomla.

Скрипт fpaen.php содержит важную информацию о сайте, после ознакомления необходимо файл fpa-en.php удалить из корневого каталога, помните об этом!!!

 Постоянно меняйте пароли, используйте политику сложности паролей, пользователей и админов. Отключите учётную запись пользователя admin, замените его другой учётной записью с правами суперпользователя. Регулярно обновляйте свой сайт с официального сайта сообщества Joomla.

 Обслуживание Joomla.

 В качестве резервного копирование и восстановление сайта на движке joomla воспользуемся, для архивации, компонентом Akeeba Backup for Joomla, для восстановления Akeeba Kickstart скачать можно здесь. При этом надо учитывать возможность коммерческой, с оформлением подписки Pro версии, в отличие от её «укороченного» аналога free версии.

 Рассмотрим практические действия по восстановлению типового сайта joomla. Прежде чем приступить к восстановлению, мы должны иметь архив одной резервной копии сайта, делается это с помощью Akeeba Backup установленной на вашем сайте, сам архив лучше забрать отсюда.

Дальнейшие действия могут развиваться в зависимости от ситуации, например, появилось новое оборудование на которое надо перенести сервер с joomla. Когда новый сервер будет установлен и подготовлен к работе необходимо в корень каталога веб-сервера, выложить следующие файлы. После настройки прав на каталог вэб-сервера, можно приступить к восстановлению из резервной копии сайт с Joomla, используя Akeeba Kickstart.

Заключение.

 Проект Joomla хорошо документированный CMS движок, имеет мощную поддержку сообщества, огромное количество расширяющих его модулей, шаблонов и плагинов, как на платной основе так и свободных, free версий. Ещё один популярный CMS WordPress, может заинтересовать пользователей, подробности смотри здесь. Ниже приводится список ресурсов — может быть полезен для администраторов и всех желающих познакомиться с особенностями Joomla. В заключение хотелось бы отметить ещё один популярный CMS который можно успешно установить на ALT Linux, подробности читай здесь.

Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты