Установка и подключение CMS Joomla к операционной системе Linux.

Ведение.

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

Содержание.

в качестве стенда для Joomla использовался дистрибутив Alt server x64 min

Подготовка.

выполнить установку пакетов 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

Выбор и установка сервера БД для Joomla.

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

после выбора БД необходимо установить нужный php модуль — phpX-mysqli или phpX-pgsql

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

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

скачать свежую версию пакета 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

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

Выбор и настройка конфигурации с помощью мастера графической установки Joomla.

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

Шаг №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 вносим изменения выполняющие шаги 1 2 3 4 5 для переключения joomla в режим кеширования

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

Защита Joomla от несанкционированного доступа.

 Случаи взламывания сайтов на основе CMS Joomla широко известны, существуют разные методики и средства защиты от несанкционированного доступа, одним из которых является использование файла .htaccess, ограничивающий доступ к панели управления Joomla. Защитить учётную запись пользователя, от злодея, можно настроив политику сложностей паролей для пользователей, включением двухфакторной авторизацией и активацией системной сaptcha, ну и конечно установкой SSL сертификата обеспечив тем самым защиту соединения от злоумышлинника. Особо мнительные администраторы могут удалить модуль пользовательского входа из области папок, расположенного в дереве каталогов Joomla , не забудьте после перегрузить Apache2. Все эти меры в комплексе или выборочно позволят уберечь Ваш CMS от неприятностей, кстати не стоит забывать о регулярном обновлении версий Joomla и ещё не старайтесь ставить большое количество плагинов и модулей, прежде всего изучите то, что уже включено в ядро Joomla, а если решили добавить расширение, то прежде всего загляните сюда и почитайте отзывы о модуле/плагине. Права доступа на каталоги и папки должны быть установлены соответственно 755 и 644. Для мониторинга всех изменений в каталогах и файлах Joomla, которые могли произойти без вашего участия или для обнаружение и анализа подозрительной активности на сайте, можно воспользоваться следующей инструкцией позволяющей собирать и сравнивать временные характеристики файлов и каталогов Joomla за отчётный период.

создать cron задачу для отправки отчёта на e-mail для создания статистики изменений каталогов и файлов Joomla

# find /var/www/html/joomla/ -type f -ctime -1 -exec ls -ls {} \;

что бы включить поддержку .htaccess необходимо добавить в секцию файла /etc/httpd2/sites-available/default.conf сервера Apache2 следующею строку, после чего в текстовом редакторе создайте, {tip content="Файл уже может существовать, тогда просто необходимо переименовать htaccess на .htaccess"}файл{/tip},  .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

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

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

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

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

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

 Рассмотрим практические действия по восстановлению типового сайта joomla. Прежде чем приступить к восстановлению, мы должны иметь архив одной резервной копии сайта, делается это с помошью программы Akeeba Backup 1 2 3 4 установленной на вашем сайте, сам архив лучше забрать отсюда. Дальнейшие действия могут развиваться в зависимости от ситуации, например, появилось новое оборудование на которое надо перенести сервер с joomla. Когда новый сервер будет установлен и подготовлен к работе необходимо в корень каталога веб-сервера, выложить следующие файлы. После настройки прав на каталог вэб-сервера, можно приступить к восстановлению из резервной копии сайт с Joomla, используя в качестве инструмента Akeeba Kickstart 1 2 3 4 5 6 7 8 9 10 11 12

Заключение.

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