Начну с того, что из всех cms joomla — моя любимая, поэтому решил написать вот такую статью. Для начала необходимо установить пакеты, которые понадобятся для установки joomla, выполните команду:

pkg install apache24 mysql56-server wget unzip

После того, как установка завершится, необходимо добавить apache и mysql в автозапуск командами:

sysrc apache24_enable="YES"

sysrc mysql_enable="YES"

Запустим apache и mysql:

service apache24 start

service mysql-server start

В mysql имеется полезный скрипт для настройки mysql, выполните:

mysql_secure_installation

В данном скрипте можно создать пароль на root доступ к mysql, удалить тестовые базы, удалить анонимных пользователей. После выполнения данного скрипта необходимо создать базу данных для joomla и создать права для неё, зайдите в mysql командой:

mysql -p -r

Введите пароль, который только что был создан. Создадим базу данных командой:

create database joomla;

Предоставим полный доступ к данной базе данных пользователю joomlauser, и создадим пароль для данного пользователя password:

GRANT ALL PRIVILEGES ON joomla.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

На этом настройка mysql завершена. Теперь скачаем непосредственно joomla, перейдите в каталог «вэб» сервера, командой:

cd /usr/local/www/apache24/data

Удалим файл index.html:

rm index.html

Joomla всегда можно скачать от сюда, скопируйте ссылку на архив с joomla и выполните:

wget --no-check-certificate https://github.com/joomla/joomla-cms/releases/download/3.5.1/Joomla_3.5.1-Stable-Full_Package.zip

На момент написания актуальная версия joomla 3.5.1. Обязательно укажите --no-check-certificate, если скачивание происходит через https. Распакуем содержимое архива в корень «вэб» сервера:

unzip Joomla_3.5.1-Stable-Full_Package.zip

Удалим архив:

rm Joomla_3.5.1-Stable-Full_Package.zip

А теперь самое главное — PHP. Если нет желания возиться с портами, установите следующие пакеты и переходите к редактированию httpd.conf:

pkg install php70 mod_php70 php70-curl php70-json php70-mysqli php70-opcache php70-openssl php70-session php70-simplexml php70-xml php70-zlib

Это желательный минимум для joomla(на мой взгляд). А теперь установим порты:

portsnap fetch extract

Данная команда скачает порты и распакует их в каталог /usr/ports, перейдём в каталог с портом php70(joomla начиная с версии 3.5 поддерживает php70):

cd /usr/ports/lang/php70

Из данного каталога выполните команду:

make install clean

После выполнения данной команды на экране появится «конфигуратор» php, при необходимости можно выключить CLI, CGI, IPV6, или наоборот что-то добавить. После установки php70 необходимо установить расширение mod_php70 из каталога:

cd /usr/ports/www/mod_php70

После перехода в данный каталог выполните:

make install clean

После того как установка будет завершена, необходимо внести в httpd.conf строки с скриншота ниже. Откройте файл httpd.conf командой:

ee /usr/local/etc/apache24/httpd.conf

Внесите данные строки, а так же добавьте index.php и замените AllowOverride None на AllowOverride All.

image

Удалите символ # на против строк:

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

LoadModule ssl_module libexec/apache24/mod_ssl.so

LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so

Удалите символ # напротив строки(если намереваетесь использовать SSL сертификат, об этом чуть ниже):

Include etc/apache24/extra/httpd-ssl.conf

Если подключаетесь через Putty, тогда нажмите F2 и два раза ENTER, а если непосредственно с компьютера, тогда ESC и два раза ENTER (эти действия сохранят изменения в редакторе ee). С php практически всё, осталось только установить некоторые дополнения для php, для этого необходимо перейти в папку с портом php70-extensions:

cd /usr/ports/lang/php70-extensions

Выполним:

make install clean

В конфигурации данного порта отметьте расширения:

curl json mysqli opcache openssl session simplexml xml zlib

После установки данного порта, настройка php законченна. Заблокируем доступ к каталогу administrator, выполните:

ee /usr/local/www/apache24/data/administrator/.htaccess

Введите строки:

order deny,allow

deny from all

allow from XXX.XXX.XXX.XXX

Вместо XXX.XXX.XXX.XXX введите ip, которому будет необходим доступ к данному каталогу. Также необходимо переименовать htaccess.txt в .htaccess командой:

mv /usr/local/www/apache24/data/htaccess.txt /usr/local/www/apache24/data/.htaccess

Теперь можно позаботиться о шифровании трафика между сайтом и посетителем, если в этом нет необходимости, тогда поставьте символ # перед строками в httpd.conf:

Include etc/apache24/extra/httpd-ssl.conf
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so

Сертификат предпочитаю бесплатный от WoSign. По каким критериям определяется срок для сертификата, я не знаю, для домена ru мне был предоставлен сертификат на 1 год, а для домена su на три года. Всё, что необходимо, это зарегистрироваться, подтвердить владение доменом с помощью письма на админскую почту, или «заливки» файла в корень сайта. Метод получения не важен, после того, как архив будет скачан, откройте данный архив. В архиве будет вложенный архив «for Apache.zip», откройте его, используя пароль, который был создан на сайте. В данном архиве имеется три файла:

1_root_bundle.crt
2_mydomain.su.crt
3_mydomain.su.key

Данные файлы необходимо «залить» в папку /usr/local/etc/apache24 любым удобным способом, например, через протокол SFTP. После этого необходимо отредактировать файл /usr/local/etc/apache24/extra/httpd-ssl.conf, для этого введите:

ee /usr/local/etc/apache24/extra/httpd-ssl.conf

Удалите символ # напротив строки:

SSLCertificateChainFile "/usr/local/etc/apache24/server-ca.crt"

Приведите строки:

SSLCertificateFile "/usr/local/etc/apache24/server.crt"

SSLCertificateKeyFile "/usr/local/etc/apache24/server.key"

SSLCertificateChainFile "/usr/local/etc/apache24/server-ca.crt"

К виду:

SSLCertificateFile "/usr/local/etc/apache24/2_mydomain.su.crt"

SSLCertificateKeyFile "/usr/local/etc/apache24/3_mydomain.su.key"

SSLCertificateChainFile "/usr/local/etc/apache24/1_root_bundle.crt"

По умолчанию используются устаревшие методы шифрования, исправим это. Удалите символ # перед строками:

SSLCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA
SSLProxyCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA

А так же можно закомментировать строки:

SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4

В этом случае будет использоваться только протокол TLS 1.2. Сохраните изменения в файле. На этом настройка SSL завершена.

Вернёмся к установке joomla. Для того, чтобы установка joomla прошла корректно, необходимо папке /usr/local/www/ и её содержимому выставить владельца группу www командой:

chown -R www:www /usr/local/www

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

image

На данной странице введите название сайта, email администратора, логин администратора, пароль администратора и нажимайте на кнопку «Далее».

image

На данной странице необходимо ввести данные к mysql, которые были созданы ранее. Имя пользователя joomlauser, пароль password, имя базы данных joomla.

image

Нажимайте кнопку «Установка».

image

Как только установка завершится, нажмите кнопку «Удалить директорию „installation“».

Давайте русифицируем Joomla. Для того, чтобы русифицировать Joomla, необходимо зайти в админ-панель сайта. В адресной строке браузера введите mysite.ru/administrator. На открывшейся странице введите ваш логин и пароль. Зайдите в меню extensions>Language(s). На открывшейся странице нажмите кнопку «Install Languages», введите rus в строке поиска. Поставьте галочку напротив Russian и нажмите кнопку «Install». Далее необходимо активировать русский язык. Опять заходим в меню extensions>Language(s), ставим точку напротив «Russian» и жмём кнопку «Deafult». Данные действия русифицируют только сайт, для того, чтобы русифицировать админ-панель, необходимо проделать действия, как показано на скриншоте.

image

Перейдя в данный пункт меню, также поставьте точку напротив «Russian» и нажмите «Default».

Удалим index.php из строки адреса. Для этого необходимо перейти в меню «Система»>«Общие настройки» и переключить «Перенаправление URL» на «Да» и нажать кнопку «Сохранить». Это сработает если строка:

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

была раскомментирована. Строка:

AllowOverride None

была заменена на:

AllowOverride All

и файл htaccess.txt переименован в .htaccess.

image

На этом установка Jomla завершена, осталось только настроить firewall на основе ipfw. Следующие строки добавят ipfw в автозапуск и укажут скрипт с правилами, который необходимо использовать:

sysrc firewall_enable="YES"

sysrc firewall_script="/etc/firewall.sc"

Создадим файл firewall.sc командой:

ee /etc/firewall.sc

Внесите данные строки в файл firewall.sc

ipfw -q -f flush
c="ipfw -q add "

$c 00001 allow all from any to any via lo0

$c 00010 allow tcp from any to me 22,80,443 setup keep-state

$c 00020 allow tcp from me to any 443 setup keep-state
$c 00030 allow tcp from me to any 80 setup keep-state
$c 00040 allow tcp from me to any 21 setup keep-state
$c 00050 allow icmp from me to any keep-state
$c 00060 allow udp from me to any 53 keep-state

$c 40533 deny all from any to any frag
$c 40534 allow all from any to any established
$c 40535 deny all from any to any

Сохраните firewall.sc и запустите ipfw командой:

service ipfw start

После данных манипуляций сайт возможно открывать как через 80 (http) порт, так и через 443 (https).

Спасибо за внимание.

Комментарии (8)


  1. nonname
    28.04.2016 11:34
    +7

    Статья не формата хабра. Такими темпами скоро тут увидим инструкции как пользоваться туалетной бумагой.


    1. spmbt
      28.04.2016 13:52
      +1

      Про бумагу — всё равно будет неформат, т.к. DIY — сейчас тематика Гиктаймса. Кроме того, понадобится использование технологий и гаджетов, чтобы отличалось от традиционной инструкции.


    1. zikkuratvk
      28.04.2016 14:25
      -1

      От куда такая предвзятость? Много раз замечал, что подобные статьи про WP или Drupal собирают кучу положительных отзывов на хабре, но как что-то подобное пишут про Joomla, сразу же не формат и так далее. Вы вдумайтесь, вот эта статья: https://habrahabr.ru/post/251721/ — из разряда, я освоил консоль. Собирает и восторженные отзывы и кучу плюсов.


      Эта статья не фонтан, но в ней куда больше смысла чем, на ту что я сослался, а если уж посмотреть на статьи о wp, которые пользуются огромной популярностью, то вообще думаешь, для кого они пишутся?


      1. prostofilya
        28.04.2016 15:25
        -1

        Судя по статье nonname ему самому в своё время за подобное досталось, вот мстит, наверное


        1. nonname
          28.04.2016 15:56

          Усвоил урок. К тому же посту я минус не ставил, пост то неплохой, просто тут бессмысленный.


      1. Nemets85
        28.04.2016 21:21

        Чем же моя статья не фонтан, интересно очень(постараюсь исправиться)?


        1. zikkuratvk
          28.04.2016 21:45

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


  1. jackkum
    28.04.2016 14:16

    Есть еще вот такая штука github.com/joomlatools/joomlatools-console для ленивых ))