Введите имя домена:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показать все домены

Установка CMS Joomla на веб-сервер Nginx

Ответы на вопросы от компании «Украинский хостинг».

Как установить CMS Joomla на веб-сервер Nginx

Joomla является бесплатной системой управления контентом (CMS) с открытым исходным кодом, который постоянно развивается. При помощи данной CMS возможно создавать сайты, а так же максимально просто управлять ими.

Перед установкой CMS Joomla необходимо предварительно установить веб-сервер Nginx,PHP, а так же установить сервер баз данных MySQL. О том, как это сделать, будет описано ниже. Так же рекомендуется создать не root пользователя с доступом к sudo.

В инструкции используется текстовый редактор nano, для установки которого требуется выполнить команду:

yum install nano

Процедура установки CMS Joomla на веб-сервер Nginx состоит из следующих шагов:

  1. Подключим родной репозиторий nginx:
    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. Устанавливаем nginx:
    sudo yum install nginx
  3. Запускаем Nginx:
    sudo systemctl start nginx
    Видим ошибку:
    Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
    Данная ошибка возникает т.к порт 80 уже прослушивается.
    Чтобы в этом убедиться устанавливаем net-tools
    sudo yum install net-tools
    И после этого вводим команду:
    netstat -ntupl | grep 80
    Если 80 порт занят, тогда останавливаем его:
    sudo systemctl stop httpd.service
    Затем выполняем повторно запуск Nginx:
    sudo systemctl start nginx
    По умолчанию CentOS 7 использует Firewall-CMD в закрытом режиме, в связи с чем необходимо настроить его для обеспечения доступа по порту 80 (http) или 443 (https), чтобы сделать Apache доступным из Интернета.
    Включаем firewalld:
    sudo systemctl start firewalld
    И поочередно выполняем следующие команды:
    sudo firewall-cmd --permanent --zone=public —add-service=http
    sudo firewall-cmd --permanent --zone=public —add-service=https
    sudo firewall-cmd --reload
    Все три команды при запуске должны выводить сообщение об успешном завершении.
    Теперь вводим IP адрес сервера в браузере и проверяем появляется ли стартовая страница nginx.
  4. Включаем nginx для запуска при загрузке:
    sudo systemctl enable nginx
    Открываем файл /etc/nginx/nginx.conf
    sudo nano /etc/nginx/nginx.conf
    И после строки:
    include /etc/nginx/conf.d/*.conf;
    вставляем следующие строки (вместо ip адреса 93.190.42.52 необходимо указать ip адрес собственного сервера):
    server {
    listen 80;
    server_name 93.190.42.52;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
    try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  5. Перезагружаем Nginx, чтобы внести необходимые изменения:
    sudo systemctl restart nginx
    Устанавливаем репозиторий epel:
    sudo yum install epel-release
  6. Подключаем remi репозиторий:
    sudo rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  7. Проверим список подключенных репозиториев:
    sudo yum repolist
  8. Устанавливаем пакет yum-utils:
    sudo yum install yum-utils
  9. Активируем remi-php71:
    sudo yum-config-manager --enable remi-php71
  10. Устанавливаем php7.1:
    sudo yum install php71
  11. Установим php-fpm и наиболее популярные модули:
    sudo yum install php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap
  12. Запускаем php-fpm:
    sudo systemctl start php-fpm
    Включаем php-fpm для запуска при загрузке:
    sudo systemctl enable php-fpm
    открываем файл конфигурации php-fpm www.conf:
    sudo nano /etc/php-fpm.d/www.conf
    Меняем значение:
    listen = 127.0.0.1:9000
    на значение:
    listen = /var/run/php-fpm/php-fpm.sock
    В том же файле меняем значения:
    ;listen.owner = nobody
    ;listen.group = nobody
    ;listen.mode = 0660
    на значения:
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
    В том же файле меняем значения:
    user = apache
    group = apache
    на значения
    user = nginx
    group = nginx
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  13. Перезапускаем php-fpm:
    sudo systemctl restart php-fpm
    Устанавливаем права на запись для папки /var/lib/php/session:
    sudo chmod 777 /var/lib/php/session
  14. Создаем репозиторий MariaDB:
    sudo nano /etc/yum.repos.d/MariaDB.repo
    И добавляем в него следующие строки:
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.3.4/centos7-amd64/
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  15. Открываем репозиторий REMI:
    sudo nano /etc/yum.repos.d/remi.repo
    и меняем в нем строку:
    enabled=0
    на строку:
    enabled=1
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  16. Устанавливаем пакет MariaDB:
    sudo yum -y install mariadb-server mariadb
  17. Запускаем демон:
    sudo systemctl start mariadb.service
    Включаем mariadb для запуска при загрузке:
    sudo systemctl enable mariadb
    Запускаем сценарий безопасности, позволяющий удалить некоторые опасные значения по умолчанию, а так же ограничить доступ к системе баз данных:
    sudo mysql_secure_installation
    После выполнения запроса появится уведомление с запросом пароля root.
    Т.к MySQL был только что установлен и пароля root нет, необходимо просто нажать enter.
    После этого необходимо нажать клавишу 'y', чтобы задать пароль для пользователя root.
    После назначения пароля и подтверждения пароля появится уведомление:
    Для остальных вопросов необходимо просто нажать клавишу enter в каждом вопросе, чтобы принять значения по умолчанию:
    Входим в основную учетную запись администратора MySQL
    mysql -u root -p
  18. Создаем новую базу данных (в примере используется название базы данных joomla, вместо которого необходимо задать собственное название базы данных), которая будет использоваться для веб-сайта Joomla:
    CREATE DATABASE joomla DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  19. Создаем нового пользователя с доступом к базе данных joomla (В примере используется имя пользователя juser и пароль D8*Q7!a5F$1x , вместо которых необходимо задать собственное название пользователя и пароль):
    GRANT ALL ON joomla.* TO 'juser'@'localhost' IDENTIFIED BY 'D8*Q7!a5F$1x';
    Необходимо обратить внимание, что пароль должен состоять как минимум из двенадцати символов, иметь как минимум одну букву в верхнем регистре, одну строчную букву, одно число и один специальный символ.
    Обновляем права доступа, для вступления изменений в силу:
    FLUSH PRIVILEGES;
  20. Выходим из MySQL:
    EXIT;
  21. Скачиваем CMS Joomla:
    wget https://downloads.joomla.org/cms/joomla3/3-8-4/Joomla_3-8-4-Stable-Full_Package.zip
    Извлекаем файлы из архива в корневую папку сайта:
    sudo unzip Joomla_3-8-4-Stable-Full_Package.zip -d /usr/share/nginx/html
  22. Удаляем архив:
    sudo rm Joomla_3-8-4-Stable-Full_Package.zip
  23. Устанавливаем пользователя и группу для папки /usr/share/nginx/html и вложенные файлы:
    sudo chown -R nginx:nginx /usr/share/nginx/html
  24. Устанавливаем права 755 на папку /usr/share/nginx/html и вложенные файлы:
    sudo chmod -R 755 /usr/share/nginx/html
  25. Открываем в браузере сайт и приступаем к установке CMS Joomla.
    Заполняем информацию о сайте, а так же информацию о почтовом ящике и доступах в административную панель сайта, после чего нажимаем на кнопку «Далее»:
    Заполняем информацию о ранее созданной базе данных и нажимаем на кнопку «Далее»:
    Оставляем все по умолчанию и нажимаем на кнопку «Далее»:
    Выбираем требуемые демо-данные и нажимаем на кнопку «Установка»:
    После завершения установки нажимаем на кнопку «Удалить директорию 'installation'»
    На этом установка CMS Joomla завершена.

См.также:

Будь ласка, виберіть мову сайту за промовчанням: