Как развернуть 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 в качестве базового сервера, пользователи получают надёжную информационную систему для запуска своих бизнес проектов.

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

Как установить сертификат Минцифры.

Введение.

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

Сетевые коммуникации: магазины, аптеки, банки, бани … и другие публичные интернет сервисы, оказывают повышенные требования к пользователям с которыми они работают.

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

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации, заботясь о сетевой безопасности своих граждан приступило к выпуску цифровых сертификатов.1

Работа цифрового сертификата2 Минцифры сводится к одному действию — подтвердить доверенное юридическое или физическое лицо в том, что оно в праве осуществлять действия с помощью коммуникационного устройства и программы установленной на нём.

Как работает сертификат Минцифры.

Основная задача сертификата — защита. Сертификаты многолики, если требуется подтвердить целостность документа или почтового e-mail сообщения, ставим цифровую подпись. Когда проводим денежно-финансовые или бизнес операции, требующие усиленной безопасности при соединении с сайтом в Интернете, применяем цифровой сертификат, позволяющий шифровать трафик от злоумышленника.

Узнать наличие сертификата и информацию о владельце или организации выдавшей его, можно по конечному символу https, в заголовке URL3 адреса и иконкой замка рядом.

Приведём пример соединения с ресурсом Сбербанк Онлайн, при установленном в браузер Yandex сертификате Минцифры РФ.

Пояснение к сообщению выше
Защита.
Режим защиты.
Вы находитесь в онлайн-банке на сайте платежной системы. Чтобы сохранить информацию о вашей учетной записи и платежных реквизитах в безопасности, браузер включил более строгий режим безопасности.

Подготовка.

  • Стенд:
  • Simply Linux, имя: lin-sl, IP=10.0.2.30
  • Браузер Firefox
  • Браузер Yandex

В качестве обозревателя были выбраны самые популярные браузеры в среде Linux: Mozilla Firefox и Yandex4.

Получение сертификата Минцифры.

Для получения сертификата необходимо иметь регистрацию на портале Госуслуг.

После прохождения авторизации ищем информацию о сертификатах.

Можно скачать один из предлагаемых выше Браузеров, но проверка наличие сертификата обязательна.

Установка сертификатов Минцифры.

Теперь, когда у нас имеются комплект сертификатов мы можем приступить к их установке. Для понимания процесса поясним, почему сертификатов два?

Корневой сертификат Минцифры требуется для проверки авторизованного центра сертификации гос. или коммерческой организации находящегося на территории РФ, которая выпускает сертификатны ключей. Сертификат представляет собой часть кода (огрызок), остальная часть находится в центре выпускающего ключи.

Сам алгоритм шифрования представляет сложную математическую хеш генерацию набора цифр, символов и знаков.

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

Когда происходит соединение, «рукопожатие«, браузера пользователя и сайта, например сбербанка РФ. Формируется запрос на GlobalSign для проверки валидности сайта, если всё нормально, возвращается ответ verified by: GlobalSign nv-sa (проверено с помощью: GlobalSign nv-sa).

Загрузка Yandex браузера.

Сам браузер можно установить из репозитория Sisyphus6 — ветка Branch, с помощью графического менеджера Synaptic.

Мы же, по условию задачи, остановимся на установке браузера загруженного с сайта госуслуг.

Графический режим установки.

При графическом режиме установки, скачиваемый пакет находится в папке «Загрузка». Используя файловый менеджер, щёлкаем мышкой по названию пакета.

В процессе установки возникает предупреждение, шаг1, это нормально — компания «Базальт СПО» заботится о безопасности своих пользователей.

Консольный режим установки.

Консольный режим установки браузера Yandex, требует соединения с терминалом станции локально или удалённо.

Переходим в папку «Загрузки», устанавливаем браузер.

$ cd Загрузки
$ sudo apt-get install ./yandex-browser-downloader.rpm
....
Завершено.

Все описанные действия выполняются от имени пользователя root

Когда манипуляции с установкой браузера закончатся, в дереве диспетчера задач появится иконка Y.

Вид браузера Yandex в диспетчере задач.
Вид браузера Yandex в диспетчере задач.

Импорт сертификата в Yandex.

У нас всё готово, остаётся импортировать сертификат Минцифры в хранилище браузера Yandex, с помощью следующих действий.

Импорт сертификата в Firefox.

Пошаговая процедура импорта сертификата в браузер Firefox.

Заключение.

Требования безопасности в открытом информационном пространстве становятся приоритетом, отодвигая на второй план другие задачи. Многие интернет платформы предоставляют свои цифровые площадки для проведения операций в режиме онлайн соединения. Пользователь зная о рисках связанных с передачей сведений финансово — юридического характера прежде всего должен проверять «паспортные данные» сайта в виде наличия замка в URL и сопроводительной записки к нему7.

Использование сертификата Минцифры РФ рекомендовано в качестве защиты от злоумышленников, при посещении государственных сайтов, порталов и торговых площадок на территории РФ.

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

Сноски.

  1. сертификатами могут пользоваться юридические и физические лица. ↩︎
  2. сертификат и цифровой ключ(ключ)— синонимы. ↩︎
  3. URL— Uniform Resource Locators — единые указатели ресурсов ↩︎
  4. браузер Yandex является предпочтительным — рекомендован Минцифры РФ. ↩︎
  5. проверяет и выдаёт сертификат специальный центр GlobalSign nv-sa. — старейшая компания, предоставляющая услуги идентификации и безопасности в сетевом окружении. ↩︎
  6. Sisyphus — репозиторий пакетов свободных программ ALT Linux ↩︎
  7. пример, читая «паспорт» известного сайта www.ozon.ru, как описывалось выше, пользователь будет уверен, что свои деньги он перечисляет, при оплате товара, именно продавцу ozon. ↩︎

Как установить Matomo аналитика на host.

Введение.

Системная аналитика позволяет контролировать и анализировать посещение сайта(ов), для выработки оптимальных решений при подборе материалов. Крупные поисковые компании Google и Yandex предоставляют метрические средства построения журналов посещений и анализа трафика. Они без сомнения обладают широкими возможностями и мощным поисковым механизмом. В то же время некоторый функционал, перечисленных выше компаний, перегружен сложными системными настройками и окнами визуализации. Для тех владельцев сайтов, которые желают иметь под рукой простую, наглядную и удобную платформу для анализа трафика своих хостов представляется — Matomo.

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

Matomo — платформа для веб-аналитики с открытым исходным кодом, лицензия GNU General Public License v3.01, ранее имела название Piwik.

Прежде чем начать работать с платформой, нужен вебхостинг. Самым лучшим вариантом для владельца сайта — регистрация на надёжном и проверенном провайдере SPACEWEB.

Безусловно системная аналитическая платформа, может работать и в локальной сети предприятия, собирая статистику с внутренних вэб-ресурсов. Но нам, для своих задач, требуется DNS видимый в Интернете. Можно зарегистрировать отдельно имя своего сервера в Интернете, найти под него «железо» и т.д. Но проще и безопасней всё перенести на хостинг SPACEWEB, где осуществляется грамотное обслуживание, резервное копирование, поддержка и многое другое.

  • Стенд:
  • Хостинг — SPACEWEB
    • Веб-сервер; имя https://kabtim-trt.ru
    • Сайт — движок WordPres
    • БД — MySQL.; имя базы trt
  • Matomo

Для начала нам нужно скачать архив свежей версии с сайта Matomo.

Обратите внимание, требуется скачать архив серверной части, но не плагина.2

Действия на хостинге SPACEWEB.

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

Пройдя авторизацию, находясь в панели хостинга, переходим на вкладку «Базы данных», нажимаем «Создать базу данных», заполняем поле в формате: логин_matomo.3

Теперь переходим на вкладку «Файловый менеджер», справа находим каталог public_html. С помощью кнопки панели управления «Загрузить файлы» скачиваем архив, нажимаем кнопку «Распаковать архив» — в корне сайта создаётся папка «Матомо».

Настройка хостинга для Matomo.
Настройка хостинга для Matomo.

Установка.

Выполнив подготовительные действия, переходим к настроечным шагам. Открываем браузер и вводим https://kabtim-trt.ru/matomo. Перед нами появляется первое окно пошаговой инструкции установки Matomo.

После ответа на все вопросы, открывается последнее, девятое окно, панели управления приглашая к регистрации.

Действия после установке Matomo.

Войдя в панель на вкладке «Все проекты» создаём сайт(ы) с которых требуется получать аналитику.

Теперь надо скопировать код отслеживания и вставить его непосредственно перед закрывающим </head> тегом шаблона сайта.

Код Matomo для вставки на сайт.
Код Matomo для вставки на сайт.

Заключение.

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

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

Сноски.

  1. GNU’s Not UNIX — «GNU — не Unix ↩︎
  2. плагин без серверной части не работает, плагин
    осуществляет, ограниченно, просмотр аналитики из панели WP ↩︎
  3. ваш логин при авторизации в SPACEWEB. ↩︎

Как установить 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, подробности читай здесь.

Работа сервера Linux Nginx WordPress.

Введение.

Продолжая публикации об использовании сервера Nginx, рассмотрим установку и настройку CMS1 Nginx WordPress. Ранние мы уже рассказывали о CMS Nginx Joomla, являющейся конкурентом WP2. В статье не будет проводиться сравнение этих двух CMS, желающие выберут то, что для них будет удобно. Объединять два приложения, в качестве движка, будет веб-сервер Nginx, базовую установка которого смотрите здесь.

Подготовка.

  • Стенд:
  • ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;
  • mysql 8.0.xx
  • php8.0.x

Для правильной работы WordPress, установленного на сервере Nginx, требуется поддержка интерпретатора языка PHP пакет FastCGI3.

В модуль FastCGI входит пакет FPMFast Process Manager, управляющий PHP запросами с помощью FastCGI протокола. Менеджер PHP-FPM контролирует количество процессов PHP и частоту их создания.

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

# php -v

Настройка.

Установка и запуск менеджера php-fpm.

# apt-get update
# apt-get install php8.0-fpm-fcgi
# systemctl start|stop|restart|status php8.0-fpm
# systemctl enable php8.0-fpm

Конфигурация PHP находится /etc/php/8.0/fpm-fcgi/php.ini

Редактируем файл www.conf настроек PHP fpm.

# cd /etc/fpm8.0/php-fpm.d
# vim www.conf
...
listen = 127.0.0.1:9000
;listen=/var/run/php8.0-fpm/php8.0-fpm.sock
...
# systemctl restart php8.0-fpm 

Создаём отдельный каталог для wordpres.

# mkdir /var/www/html/wordpress

В /etc/nginx/sites-available.d/ поместим сценарий wordpress.conf.

server {
        ## Your website name goes here.
        server_name 10.0.2.11;
        ## Your only path reference.
        root /var/www/html/wordpress;
        ## This should be in your http block and if it is, it's not needed here.
        index index.php;

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi_params;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
                #The following parameter can be also included in fastcgi_params file
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

Обратите внимание на строки с жирным шрифтом.

Создаём символическую ссылку и выполняем рестарт Nginx.

# ln -s /etc/nginx/sites-available.d/wordpress.conf /etc/nginx/sites-enabled.d/wordpress.conf
# nginx -s reload

Для проверки работы PHP создаём сценарий.

# cd /var/www/html/wordpress
# vim index.php
<?php
phpinfo();
?>

При обращении к серверу, проверяем информацию о поддержке PHP.

Фрагмент листинга работы Nginx c PHP
Фрагмент листинга работы Nginx c PHP

Вопросы БД.

Для успешной установки и запуска WP необходима БД4. Обычно используют популярную, имеющею хорошею историю — MySQL. При установке MySQL, следует установить дополнительные пакеты для PHP.

# apt-get update
# apt-get install php8.0-mysqlnd
# apt-get install php8.0-mysqlnd-mysqli

Установка Nginx WordPress.

Развёртывание WordPress производим с помощью мастера установок, о чём уже рассказывалось ранние. Действия мастера настроек WP для Apache2, ни чем не отличаются от установок для Nginx. Единственное отличие — PHP, для Nginx большинство изменений следует производить с файлом настроек в /etc/fpm8.0/php-fpm.d/www.conf.

Права доступа Nginx WordPres.

От того, как выставлены права на каталоги, зависит безопасность WordPress. Защита каталогов с помощью ограничения прав доступа, является первым шагом защиты сайта. При установке WP, могут возникнуть разные ситуации, когда приходится менять уровень разрешения на каталоги. После того как сайт WP начнёт работать, необходимо проверить права каталогов, в соответствии с рекомендацией сообщества WordPress.

# find /var/www/html/wordpress/ -type f -exec chmod 644 {} \;
# find /var/www/html/wordpress/ -type d -exec chmod 755 {} \;
  • пояснения
    • -type f обычный файл
    • -exec выполнить команду
    • {} результат поиска
    • \; команда заканчивается

Заключение.

В статье показана процедура установки популярной CMS WordPress на веб сервер Nginx. В отличие от Apache2, сервер Nginx может работать на оборудовании с небольшими системными требованиями. Всё программное обеспечение, для работы сайта, использует лицензионное соглашение GNU. Если в качестве сервера использовать дистрибутив ALT Simply Linux, без GUI5, то затраты на сайт сведутся к минимуму, что положительно отразится на сам проект в целом.

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

Сноски.

  1. CMS content management system, система управления контентом ↩︎
  2. WordPress ↩︎
  3. позволяет организовать взаимодействие с процессами PHP обращений создавая многофотонные запросы ↩︎
  4. база данных ↩︎
  5. графический пользовательский интерфейс ↩︎

Работа сервера Linux Nginx с Joomla.

Введение.

В предыдущей статье мы рассказали о базовых понятиях, структуре, установке и настройке веб сервера Nginx. Этот сервер может работать как самостоятельный узел, в коммуникационных сети предприятия, обслуживая приложения находящегося на его «борту». В статье будет показано управление CMS1 Joomla с помощью Nginx. Установка основных пакетов, необходимых для запуска Nginx, можно уточнить в предыдущей статье, здесь будут показана установка дополнительных расширений для запуска Joomla.

Подготовка.

  • Стенд:
  • ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;
  • mysql 8.0.xx
  • php7
  • веб сервер, имя: Kabtim-t

В своей работе CMS Joomla, использует язык программирования PHP. Для поддержки PHP в Nginx, потребуется установить интерфейс FastCGI2, в качестве отдельного демона.

В FastCGI входит пакет FPM — Fast Process Manager, основная задача которого управлять PHP запросами с помощью FastCGI протокола. Менеджер PHP-FPM выполняет свою работу быстро, контролируя количество и частоту PHP процессов.

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

# php -version

Настройка.

Устанавливаем пакет php-fpm и запускаем его, как отдельный процесс.

# apt-get update
# apt-get install php7-fpm-fcgi
# systemctl start|stop|restart|status php7-fpm
# systemctl enable php7-fpm

Вносим изменения в настройки PHP для fpm, редактируем www.conf.

# cd /etc/fpm7/php-fpm.d
# vim www.conf
...
listen = 127.0.0.1:9000
;listen=/var/run/php7-fpm/php7-fpm.sock
...
# systemctl restart php7-fpm 

Создаём отдельный каталог для joomla.

# mkdir /var/www/html/joomla

В /etc/nginx/sites-available.d/ поместим сценарий joomla.conf.

server {
        listen 80;
        server_name lin-nginx;
        server_name_in_redirect off;

        access_log /var/log/nginx/localhost.access_log;
        error_log /var/log/nginx/localhost.error_log info;

        root /var/www/html/joomla;
        index index.php index.html index.htm default.html default.htm;
        # Support Clean (aka Search Engine Friendly) URLs
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        # add global x-content-type-options header
        add_header X-Content-Type-Options nosniff;

        # deny running scripts inside writable directories
        location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                return 403;
                error_page 403 /403_error.html;
        }

        location ~ \.php$ {
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi.conf;
        }

        # caching of files 
        location ~* \.(ico|pdf|flv)$ {
                expires 1y;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
                expires 14d;
        }

}

В joomla.conf, обратите внимание на строки с жирным шрифтом.

Указываем символическую ссылку, выполним рестарт Nginx.

# ln -s /etc/nginx/sites-available.d/joomla.conf /etc/nginx/sites-enabled.d/joomla.conf
# nginx -s reload

Вопросы БД.

Для успешной установки и запуска WP необходима БД. Обычно используют популярную и хорошо себя зарекомендовавшею в эксплуатации, MySQL. При установке, которой следует учитывать включение дополнительных пакетов для поддержки PHP.

# apt-get update
# apt-get install php7-mysqlnd
# apt-get install php7-mysqlnd-mysqli

В /var/www/html/joomla создадим проверочный index.php файл.

# cd /var/www/html/joomla
# vim index.php
<?php
echo <h1>'Hello Kabtim-t'</h1>;
?>

Смотрим ответ сервера Nginx на вызов PHP код.

Установка Joomla.

Базовую установку Joomla можно посмотреть здесь, мы же рассмотрим некоторые особенности настройки Nginx для работы с Joomla. Когда все предварительные условия для установки CMS будут выполнены и Вы перейдёте к работе с графическим помощником мастера установки. Учитывайте, при переходе на страницу, шаг № 3, проверки совместимости значений PHP — редактирование следует проводить в файле www.conf расположенного в /etc/fpm7/php-fpm.d

Права доступа Joomla.

В процессе установки могут возникнуть коллизии и «непонятки», когда приходится устанавливать, временно, права на каталоги и файлы с доступом chmod 777. Следует строго помнить, после того, как сайт заработает необходимо вернутся и восстановить значения прав, как указанно в документации к Joomla.

# find /var/www/html/joomla/ -type f -exec chmod 644 {} \;
# find /var/www/html/joomla/ -type d -exec chmod 755 {} \;
  • Расшифровка
    • -type f обычный файл
    • -exec выполнить команду
    • {} результат поиска
    • \; команда заканчивается

Заключение.

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

Сервер Nginx имеет неплохую историю, основные ресурсы разработчика находятся в России. Nginx используется во многих программных продуктах Реестра программного обеспечения3, рекомендован к использованию для организаций.

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

Сноски.

  1. CMS content management system, система управления контентом ↩︎
  2. FastCGI — протокол взаимодействия веб-сервера и php приложения. ↩︎
  3. Реестр программ для электронных вычислительных машин и баз данных Минцифры РФ. ↩︎

Установка и настройка сервера Nginx Linux.

Введение.

В операционной среде Linux существует несколько веб серверов для работы с приложениями, использующих в качестве клиентов браузеры. Одним из них является Nginx (энджи́нкс) — лёгкий и быстрый веб-сервер. Используется как HTTP1 движок или в качестве прокси, для «тяжёлых» веб-серверов Apache2, IIS3. Сервер занимает, в ресурсном сегменте IT приложений, одно из основных мест для различных интернет площадок. Выпускается под BSD4 лицензией. В статье рассмотрены вопросы базовой установки сервера для обслуживания HTTP запросов на «слабом» оборудовании.

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

Функциональность Nginx.

  • Сервер может использоваться для:
    • индексирования запросов
    • кеширования основного сервера
    • распределения нагрузки серверов
    • создания виртуальных серверов по IP адресам
    • узла выполняющего геолокации по IP адресам
    • как ретранслятор для IMAP5 и POP36 запросов

Архитектура.

В качестве модели используется архитектура модульной системы — один главный и несколько дочерних рабочих процессов. Рабочие процессы, запускаются под непривилегированным пользователем. Самое простое использование сервера Nginx — отвечать на html запросы с помощью одного модуля, как будет показанное ниже.

Установка.

Для стенда, выбираем сервер минимальной конфигурации на котором установим следующие пакеты.

# apt-get update
# apt-get install nginx

Настройка Nginx.

Основные действия проводятся в файле конфигурации каталога Nginx. Мы покажем классическую схему настройки сервера для ответов на html запросы.

  • Каталоги Nginx.
    • /etc/nginx/ — домашний каталог
    • /etc/nginx/nginx.conf — каталог настроек сервера
    • /usr/local/nginx/logs/nginx.pid — каталог главного процесса
  • /etc/nginx/sites-available.d — каталог настроек сайта
    • /etc/nginx/sites-enabled.d/ — каталог запуска сайта
    • /var/log/nginx — каталог журналов
    • ps -ax | grep nginx — процессы

Сценарий работы сайта.

Рассмотрим базовый файл настроек сервера /etc/nginx/nginx.conf

# cat /etc/nginx/nginx.conf
# load dynamic nginx modules
include /etc/nginx/modules-enabled.d/*.conf;

# see http://nginx.net for info & docs

worker_processes  10;

error_log   /var/log/nginx/error.log;

events {
        worker_connections  1024;
}

include /etc/nginx/conf-enabled.d/*.conf;

http {
        proxy_temp_path /var/spool/nginx/tmp/proxy;
        fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
        client_body_temp_path /var/spool/nginx/tmp/client;

        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        sendfile  on;

        gzip  on;

        # text/html doesn't need to be defined there, it's compressed always
        gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;

        # gzip_comp_level 9;
        include /etc/nginx/sites-enabled.d/*.conf;
}

Из листинга видно, что основных процессов 10, число соединений 1024, так же указаны рабочие каталоги журналов и исполняемых файлов.

Построим стендовый сайт. В каталог /etc/nginx/sites-available.d поместим файл nglab.conf.

# cd /etc/nginx/sites-available.d/
# touch nglab.conf

Запишем в файл nglab.conf первый кодовый блок.

server {
  listen 80;
  server_name localhost .local 10.0.2.11;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  location / {
    root /var/www/html/;
    autoindex on;
   }
}

Создадим символическую ссылку для nglab.conf в рабочем каталоге /etc/nginx/sites-enabled.d/

ln -s /etc/nginx/sites-available.d/nglab.conf /etc/nginx/sites-enabled.d/nglab.conf

Управление Nginx.

Управление сервером определяется стандартными командами Linux

# systemctl start|stop|restart|status nginx
# systemctl enable|disable|is-enabled nginx
# ps -ax | grep nginx

Внутри Nginx используются свои команды, наиболее популярные из которых приводятся ниже.

  • команды Nginx,
    • nginx -s stop остановка сервера
    • nginx -s reload перезапуск настроек сервера
    • nginx -T проверка конфигурации, полная
    • nginx -t проверка конфигурации, краткая
    • nginx -h справочная информация

Пример.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfu

Работа с сайтом.

Все подготовительные действия для запуска сервера Nginx выполнены. Поместим в корневой каталог /var/www/html файл index.html.

<html><body><h1>It works! Nginx</h1></body></html>

Набрав в браузере адрес стенда убедимся, что всё работает.

Добавим в конфигурацию сервера, секцию для публикаций снимков.

# mkdir /var/www/html/images
# nginx -s reload
server {
  listen 80;
  server_name localhost .local 10.0.2.11;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  location / {
        root /var/www/html/;
    }

    location /images/ {
        root /var/www/html/;
    }
}

Для проверки поместим в каталог images файл foto.jpg и отредактируем index.html.

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
<title>Галерея</title>
</head>
<body>
<p><a href="images/foto.jpg" target="_blank" dir="ltr">Вид красивого моста через реку. </a></p>
</body>
</html>

Теперь при обращении к серверу появляется надпись.

Безопасность сервера.

Для ограничения действия злоумышленников, ограничим права доступ к основным каталогам и файлам Nginx.

# chmod 755 /var/www/html
# chmod 644 /var/www/html/index.html
# chmod 755 /var/www/html/images
# chmod 644 /var/www/html/images/foto.jpg
# chown -R _nginx._nginx /var/www/html

Заключение.

В статье показаны основные, базовые понятия, установки и настройке веб сервера Nginx на базе ОС ALT Linux. Администратор или опытный пользователь может без труда повторить действия описанные выше. На базе изложенного материала можно создать информационный сайт, обладающий надёжностью, низкой стоимостью и скоростью. Одним из достоинств сайта — возможность использования его на очень «слабых» компьютерах и серверах.

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

Сноски.

  1. протокол передачи гипертекста (HyperText Transfer Protocol) ↩︎
  2. программное обеспечение для развертывания веб сервера ↩︎
  3. набор серверов для нескольких служб Интернета от компании Microsoft. ↩︎
  4. позволяет свободно использовать, изменять и распространять программное обеспечение. ↩︎
  5. IMAP (Internet Message Access Protocol) — протокол для доступа к сообщениям хранящимся на сервере электронной почты ↩︎
  6. POP3 (Post Office Protocol Version 3 )— почтового протокол хранящимся на ПК электронной почты ↩︎

Как сделать backup WordPress.

Введение.

Продолжая разговор1 об установке и обновлению WordPress, необходимо уделить особое внимание созданию резервной копии WP2. К этому вопросу требуется отнестись серьёзно. На рынке существует несколько плагинов резервирования и восстановления WordPress, которые можно успешно применять в работе. Различные модули плагинов backup/restore используют в своей работе ресурсы Интернет. Ситуации при которых Интернет отсутствует не редки. В статье блога рассматривается локальный способ создания backup/restore для WP и возможности его автоматизации.

Порядок действий.

  • Стенд:
    • ALT Linux сервер, имя lin-wp; ip-10.0.2.8;
    • ALT Simply Linux, имя: lin-sl, IP=10.0.2.33;
    • БД MySQL имя: wp

Основные действия при создании архива, выполняются из командной строки при ssh3 соединении с сервером WordPress. Для подключения к серверу WP подойдёт любая рабочая станция Linux. Весь процесс создания резервной копии и восстановления из архива состоит:

  • Порядок выполнения:
    • создание резервной копии базы данных WP
    • создание резервной копии папок и файлов WP
    • выполнение автоматизации backup
    • проверка архива и восстановление резервной копии

Создание backup БД.

Выполнить инструкцию создания dump4 БД WordPress.

# cd /home
# mysqldump -uroot -pwordpress wp > wp_db.sql

В каталоге /home создаётся файл dump, wp_db.sql.

Backup папок и файлов WordPress.

Создание архива папок и файлов WordPress в каталоге /home с маркировкой даты создания.

# cp -r /var/www/html/wordpress /home
# cd /home
# tar -cjf wp_`date +%d`_back.tar.bz2 wordpress
# ls 
# wp_16_back.tar.bz2

Автоматизация backup WordPress

Программа, bkwp, поможет автоматизировать процесс резервного копирования WP. Скрипт последовательно выполняет действия backup. В результате создаёт структура из каталогов, файлов и dump(А) WP скопированных во временную папку. На финише программа сжимает всё, что хранится во временном каталоге с помощью архиватора5.

#!/bin/bash
TEMPDIR=/bkwp/
BACKUPDIR=/home/
mkdir -p $TEMPDIR
# Стор Apache2.
systemctl stop httpd2
# Стоп mysql
systemctl stop_mysqld
# dump MySQL.
mysqldump -uroot -pwordpress wp > $TEMPDIR/wp.sql
# Старт Apache2.
systemctl start httpd2
# Старт MySQL.
systemctl start mysqld
# Копировать каталоги и файлы WP.
cp -r /var/www/html/wordpress $TEMPDIR
# Сжать указав день создания.
tar -cjf $BACKUPDIR/wordpress_`date +%d`_back.tar.bz2 $TEMPDIR
# Удалить временный каталог
rm -rf /bkwp

В результате создаётся файл архива с указанием даты.

# ls
...
wordpress_19_back.tar.bz2

При распаковке архива, появляется папка с файлами и каталогами WordPress и БД dump wp.sql.

# tar xvf wordpress_data_back.tar.bz2
# ls -l bkwp
...
drwxr-xr-x... wordpress
-rw-r--r--... wp.sql

Скрипт, bkwp, нужно поместить в каталог /usr/local/bin. Назначить задачу crontab6 для запуска сценария по расписанию один7 раз в неделю.

# crontab -e
minute (0-59),
| hour (0-23),
| | day of the month (1-31),
| | | month of the year (1-12),
| | | | day of the week (0-6 with 0=Sunday).
| | | | | commands
00 00 * * 0 bkwp

Restore Backup.

Перед восстановлением необходимо, создать «чистую8» базу для WordPress, стендовое имя БД: wp

  • Порядок действия при восстановлении:
    • распаковать архив
    • удалить, если требуется, папку /var…/wordpress9
    • скопировать каталог wordpress из архива в /var…/wordpress
    • восстановить БД
    • проверить БД
home]# tar xvf wordpress_data_back.tar.bz2
home]# rm -rf /var/www/html/wordpress
home]# cd bkwp
bkwp]# cp -r wordpress /var/www/html/wordpress
bkwp]# mysql -uroot -pwordpress wp < wp.sql

Проверка целостности базы.

# mysqlcheck -uroot -pwordpress  --auto-repair --check --all-databases

Заключение.

К вопросу резервного копирования и восстановления надо подойти серьёзно. По мере наполнения сайта информацией, возрастает ответственность администратора за сохранность материала. На работу WordPress могут влиять различные факторы техногенного характера. Хорошая и проверенная резервная копия гарантирует надёжную работу сайта. Не ленитесь, смоделируйте на стенде технологический процесс Buckup/Restore, в дальнейшим это выручат при сбоях в работе оборудовании. Копии архивов храните на отдельных сетевых устройствах предприятия. Отслеживайте количество архивных копий, удаляйте старые копии и журналы, предупреждая этим от переполнения дисковую систему. Автоматизировать процесс удаления старых архивов WordPress, можно с помощью сценарий delkb как описано в этой статье.

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

Сноски.

  1. смотри полезные ссылки ↩︎
  2. WordPress ↩︎
  3. Secure Shell — безопасная оболочка ↩︎
  4. файл, включающий в себя содержимое базы данных ↩︎
  5. используется архиватор tar, для сжатия утилита bzip2, общее название суффикса tar.bz2 ↩︎
  6. компьютерная программа(демон) в UNIX, для периодического выполнения заданий в определённое время ↩︎
  7. расписание стенда ↩︎
  8. имеется в виду новая бд ↩︎
  9. полный путь корень веб сервера /var/www/html/wordpress ↩︎

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

Введение.

Ситуации, когда государственные структуры вынужденны, выполняя требования ФЗ, разделить сеть Интернет от локальной LAN становится привычным. Системным администраторам приходится разворачивать локальные репозитории-зеркала, создавая хранилища. При установке публичных платформ, например WordPress, следует учитывать отсутствие связи с Интернет. Ранние уже рассматривалась работа CMS Joomla и подробное описание её установки. Теперь поговорим про установку CMS WordPress в изолированном сетевом окружении, без интернета.

Подготовка.

Базовый сервер, на котором будет работать WP, развернут по инструкции размещённой на сайте. Установка WordPress проходит в два этапа.

  • терминальный — выполнение команд при ssh соединение с сервером
  • графический — используется браузер в качестве клиента настройки
  • Стенд:
    • ALT Linux сервер, имя lin-wp; ip-10.0.2.8;
    • Альт Рабочая станция, имя: lin-kde, IP=10.0.2.33;
    • БД для WordPress имя: wp

Действия с Apache2.

В работе WP, используется веб-сервер Apache2, базовую инструкцию по установке, можно посмотреть здесь. Для удобства изложения, приведём краткую нотацию по установке Apache2.

# apt-get update;apt-get install apache2

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

# apt-cache search apache2-mod_*.php
apache2-mod_php7 - The php7 HTML-... for use with Apache2
# apt-get install apache2-mod_php7

Список команд для управления Apache2, приводится ниже.

# systemctl start|enable|stop|restart|is-enables|status httpd2

Проверить работу вэб-службы, можно, создав запросу к серверу.

Вид: проверить работу сервера вэб-сервера Apache2
Вид1: проверка работы Apache2.

Действия с MySQL.

Также, будет нужен сервер баз данных MySQL — устойчив, имеет поддержку и хорошею историю эксплуатации. Основную инструкцию и описание, для развёртывания MySQL смотрите здесь. Внизу приводится краткая справка по установке.

# apt-get update;apt-get install MySQL-server
# systemctl start|enable|stop|restart|status mysql
# mysqladmin -u root password
# New password:wordpress
# Confirm new password:wordpress

Создаём новую, чистую, базу данных для WordPress.

# mysql -uroot -pwordpress
mysql> create database wp;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wp                 |
+--------------------+
mysql> quit

Установка с терминала.

Скачиваем текущею версию WordPress с сайта, распаковываем в /var/www/html сервера, переходим в каталог wordpress.

# ls
wordpress-X.X.X-ru_RU.zip
# unzip wordpress-X.X.X-ru_RU.zip
# ls
wordpress
# cd wordpress

В каталоге wordpress, переименовываем файл wp-config-simple.php в wp-config.php.

# mv wp-config-sample.php wp-config.php

Редактируем wp-config.php, как показано ниже.

# vim wp-config.php 
...
/ ** Параметры базы данных:..
/** Имя базы данных для WordPress */
define( 'DB_NAME', 'wp' );

/** Имя пользователя базы данных */
define( 'DB_USER', 'root' );

/** Пароль к базе данных */
define( 'DB_PASSWORD', 'wordpress' );

/** Имя сервера базы данных */
define( 'DB_HOST', 'localhost' );
...

Установка графическая.

Для графической установки WordPress, необходимо, на рабочей станции запустить браузер. В адресной строке указать адрес сервера, где установлен экземпляр CMS WordPress. Мастер развёртывания WP произведёт настройку и на «лету» задаст несколько вопросов.

Вид: графическая установка wordpress.
Вид2: графическая установка WP.
Вид: главная страница настроек WP.
Вид3: главная страница настроек WP.
Вид: установка WP успешна.
Вид4: установка WP прошла успешно.
Вид: приглашение регистрации WP.
Вид5: приглашение регистрации WP.

Другой, альтернативный, способ графической установки, предполагает не трогать wp-config-simple.php. Предлагается, временно, изменит права доступа на каталог, где установлен WP.

# chmod 777 wordpress

Запустить браузер, Вид2, выполнить шаги мастера установки.

Вид: шаг №1 графической установки WP.
Вид6: шаг №1 графической установки WP.
Вид: шаг №2 графической установки WP.
Вид7: шаг №2 графической установки WP.
Вид: шаг №3 графической установки WP.
Вид8: шаг №3 графической установки WP.
Вид9: шаг №4 графической установки WP.

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

# chmod 755 wordpress

Сайт установлен и готов к работе. Учебник по работе с WordPress читайте в полезных ссылках.

Обновление WP.

Как, говорилось ранние, WordPress находится в изолированной среде, без Интернета. При обслуживание сайта, периодически возникнет необходимость обновления WP и плагинов. Сделать это можно несколькими способами, рассмотрим один из них. В статье будут приведены примеры установки плагина, темы и обновления WP до новой версии. Прежде чем приступить к обновлению, требуется выполнить резервное копирование WordPress.

Отключение плагинов.

Прежде чем приступить к обновлению, нужно временно, деактивировать плагины. Плагины отключаем с помощью консоли администратора.

Вид: отключение плагинов WP.
Вид10: отключение плагинов WP.

Обновление папок.

Скачиваем свежее zip обновление с официального сайта, не забывая проверить наличие замочка в строке адреса и md5 архива. Переносим полученный архив, используя FTP, на сервер WordPress и распаковываем в каталог /home.

home]# unzip wordpress-X.X.X-ru_RU.zip

Удаляем папку wordpress в каталоге /var/www/html, копируем на её место, свежею версию WP.

home]# rm -rf /var/www/html/wordpress
home]# cp -R wordpress /var/www/html/

Тонкие настройки обновления.

Общая работа выполнена, но для корректной работы WP, необходимо из архива скопировать файлы содержащие информацию о настройках WP.

  • wp-config.php — файл конфигурации
  • wp-content — папки тем и плагинов
  • .htaccess — файл защиты
  • robots.txt — информация для поисковых роботов

Проверка БД.

После всех манипуляций проверяем работу БД WordPress.

# mysqlcheck -uroot -pwordpress  --auto-repair --check --all-databases

Обновление сайта.

В адресной строке браузера указываем URL сайта.

Вид: обновление сайта WP.
Вид11: адрес настроек WP.

Перед этим сообщением, может появится предупреждение, очистки таблиц. Это нормально, очищать таблицы будем при помощи плагина WP-Optimize, на примере его установки

Если возникли трудности с регистрацией после обновления, требуется очистить cookie браузера.

Установка темы.

Перейдём к установке темы, в качестве примера выберем тему Twenty Sixteen. Архив twentysixteen.x.x.zip, с помощью FTP, перемещаем в каталог /home сервера и распаковываем.

# home] unzip twentysixteen.2.6.zip

Копируем распакованную папку архива темы Twenty Sixteen в /var…/wp-content

# cp -R twentysixteen /var/www/html/wordpress/wp-content/themes

Остаётся войти в консоль управления WP и активировать новую тему.

Вид: установка новой темы WP.
Вид12: установка новой темы WP.

Установка плагина.

В качестве плагина будем использовать, WP-Optimize, модуль очистки таблиц от неиспользованных записей. По прошествии времени, БД накапливает достаточное количество старых статей, ссылок, меток и т.д неиспользованного материала.

Плагин распакуем и копируем в /var/www/html/wordpress.

home]# unzip wp-optimize.x.x.x.zip
home]# cp -R wp-optimize /var/www/html/wordpress/wp-content/plugins

Открываем консоль администратора, раздел плагин и активируем модуль WP-Optimize.

Вид: активация плагина WP-Optimize.
Вид13: активация плагина WP-Optimize.

Действия после обновления.

Сайт запустился и работает в штатном режиме, остаётся провести проверочные мероприятия:

  • обновить или проверить постоянные ссылки
  • проверить правила в файле .htaccess
  • проверить плагины и темы для новой версии
  • активировать плагины

Заключение.

В статье рассмотрены вопросы установки и обновления WordPress в изолированной от Интернет, локальной сети предприятия. Ситуация, когда приходится использовать коммуникационные платформы без доступа к Интернет довольно часты. Руководители и администраторы ИТ подразделений, обязаны организовать доступ сотрудников предприятия к информации при неблагоприятных условиях. Если работает локальная сеть, домен, электронная почта, специализированные программы, то должны быть доступны информационные сайты. Многие CMS созданы для успешной работы, при условии прямого доступа к Интернет. Ситуация меняется, подключение к Интернет может носить временный характер, от админов требуется умение учитывать реальные факторы влияющие на ИТ процессы и вовремя реагировать на них.

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

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