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

Введение.

 Тема статьи блога, развёртывание сервера Apache2, в окружении ОС Linux, в качестве стенда использован дистрибутив ALT Linux в минимальной конфигурации для базовой конфигурации Apache2.

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

Без использования в своей работе веб-программ или приложений не обходится ни одно современное учреждение или предприятие.

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

Сервер Apache2 не требует особенных знаний и опыта в эксплуатации, обычно после установки офисного варианта базового сервера Linux из «коробки», Apache2 сразу начинает работать, ожидая установки на свой движок необходимых программ, например CMC Joomla или WordPress для организации сайта в производственных или учебных заведениях.

Такой вариант использования Apache2 удобен, особенно там где специалистов ИТ не достаточно, но на долгосрочную перспективу не привлекателен из-за своего роста и «разбухания» от информации, которая будет накапливаться годами, учитывая что на этом же сервере работают другие офисные приложения. Исходя из сказанного мы будем создавать отдельный веб-сервер Apache2, целевого назначения развёрнутого на базе сервера Linux в минимальной конфигурации установленного в облаке предприятия, например на платформе Microsoft Azure. 

Подготовка.

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

# apt-get update
# 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

Узнать версию PHP.

# apt-cache search apache2-mod_*.php apache2-mod_php7 - The php7 HTML-embedded scripting language for use with Apache2 ...

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

# 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. Для защиты административной панели любого приложения установленного на Apache, хорошо зарекомендовал себя способ доверия ip адресов в файле .htaccess, который необходимо поместить в каталог администратора любого приложения установленного на сервере, но предварительно необходимо настроить Apache2, что бы он мог «видеть» файл .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.

# systemctl start httpd2 
# systemctl enable httpd2

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

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

Расширение 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-кодировками, типа UTF-8 и др
  • 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, подробности читай здесь.