Как установить Joomla с Nginx на сервер Ubuntu 24.04

Joomla – это гибкая система управления контентом с открытым исходным кодом для создания веб-сайтов и онлайн-публикаций. Работает на PHP и может быть использована для различных сценариев, таких как форумы, фотогалереи, электронная коммерция и другие веб-приложения.

В этом руководстве мы покажем вам, как установить Joomla на сервер Ubuntu 24.04. Вы запустите Joomla с Nginx в качестве веб-сервера, сервером баз данных MariaDB и PHP-FPM. Вы также защитите Joomla с помощью HTTPS.

Установка зависимостей

Joomla – это система управления контентом на основе PHP. Чтобы установить ее, необходимо установить PHP в вашей системе. В этом разделе вы будете устанавливать стек LEMP (Linux, Nginx, MariaDB и PHP-FPM) в качестве зависимостей для Joomla.

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

sudo apt update

обновить репо

Установите зависимости LEMP Stack с помощью следующей команды. Введите ‘Y‘, чтобы подтвердить установку.

sudo apt install nginx mariadb-server php-fpm php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip

установить deps

После завершения установки проверьте состояние службы Nginx, выполнив следующие действия:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Вы можете увидеть, что служба Nginx запущена.

проверить nginx

Теперь проверьте службу MariaDB, чтобы убедиться, что она запущена и включена, с помощью команды ниже:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

проверить mariadb

Наконец, выполните следующую команду, чтобы проверить работу службы PHP-FPM. PHP-FPM должен быть запущен по умолчанию в файле sock.

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

проверить php-fpm

Настройка PHP-FPM

Теперь, когда стек LEMP установлен, вы настроите установку PHP-FPM и измените некоторые стандартные конфигурации, необходимые для Joomla.

Откройте конфигурацию PHP-FPM ‘/etc/php/8.3/fpm/php.ini‘ с помощью ‘nano‘ редактор.

sudo nano /etc/php/8.3/fpm/php.ini

Измените конфигурацию по умолчанию следующим образом:

memory_limit=512M
upload_max_filesize=64M
post_max_size=64M
max_execution_time=120
output_buffering = Off
extension=intl

Сохраните файл и выйдите из редактора.

Теперь перезапустите службу PHP-FPM, чтобы применить изменения.

sudo systemctl restart php8.3-fpm

Наконец, вы можете проверить файл PHP sock для службы PHP-FPM с помощью следующей команды.

ss -pl | grep php

Ниже показано, что sock-файл для PHP-FPM расположен по адресу ‘/var/run/php/php8.3-fpm.sock‘.

php-fpm sock файл

Настройка сервера MariaDB

В этом разделе вы защитите установку сервера MariaDB, а затем создадите новую базу данных и пользователя для Joomla. Вы будете использовать ‘mariadb-secure-installation’ для защиты сервера MariaDB, а затем через клиент ‘mariadb’ создадите новую базу данных и пользователя.

Чтобы защитить сервер MariaDB, запустите команду ‘mariab-secure-installation‘ команда ниже.

sudo mariadb-secure-installation

Теперь вам будет предложено настроить сервер MariaDB следующим образом:

  • Для установки сервера MariaDB по умолчанию без пароля root, нажмите ENTER, когда вас спросят о пароле.
  • Локальная аутентификация для пользователей MariaDB root по умолчанию защищена, введите ‘n’, когда вас попросят изменить метод аутентификации на ‘unix_socket’.
  • Введите ‘Y’, чтобы создать новый пароль для корневого пользователя MariaDB. Затем введите надежный пароль для корневого пользователя MariaDB и повторите.
  • Когда появится запрос на отключение удаленной аутентификации для корневого пользователя MariaDB, введите ‘Y’, чтобы согласиться.
  • Установка сервера MariaDB по умолчанию поставляется с базой данных ‘test’ и позволяет анонимному пользователю получить к ней доступ.
  • Введите ‘Y’ для обоих параметров, чтобы удалить базу данных по умолчанию ‘test’ и убрать привилегию анонимного пользователя.
  • И наконец, введите ‘Y’, чтобы подтвердить перезагрузку привилегий таблицы.

После того как MariaDB будет защищена, вы создадите новую базу данных и пользователя для Joomla.

Войдите на сервер MariaDB под именем ‘mariadb‘ команда ниже. Введите пароль корня MariaDB, когда появится запрос.

sudo mariadb -u root -p

Теперь выполните следующие запросы для создания новой базы данных ‘joomladb‘, и новый пользователь ‘joomla‘ с паролем ‘p4ssword‘.

CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;

создать пользователя базы данных

Далее выполните приведенный ниже запрос, чтобы проверить привилегии пользователя ‘joomla‘. Вы увидите символ ‘joomla‘ пользователь может получить доступ к базе данных ‘joomladb‘.

SHOW GRANTS FOR joomla@localhost;

Наконец, введите ‘выйти‘, чтобы выйти из сервера MariaDB.

показать привилегии пользователя

Загрузка исходного кода Joomla

На данном этапе вы установили и настроили зависимости для Joomla. Теперь вы скачаете исходный код Joomla и настроите каталог document-root/webroot для установки Joomla.

Перейдите в каталог ‘/var/www’ и загрузите исходный код Joomla с помощью команды ‘wget’, приведенной ниже. Проверьте страницу загрузки Joomla и возьмите ссылку на последнюю версию.

cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-1-4/Joomla_5-1-4-Stable-Full_Package.zip

Теперь выполните команду ‘unzip’, приведенную ниже, чтобы извлечь исходный код Joomla в каталог ‘joomla’.

unzip Joomla_5-1-4-Stable-Full_Package.zip -d joomla

Наконец, выполните команду ‘chmod’ ниже, чтобы изменить права собственности на каталог ‘/var/www/joomla’ на пользователя ‘www-data’.

sudo chown -R www-data:www-data /var/www/joomla

Настройка серверного блока Nginx

Теперь вам предстоит создать новую конфигурацию серверного блока Nginx для запуска Joomla. Поэтому убедитесь, что ваше доменное имя готово и указано на IP-адрес сервера.

Создайте новый файл сервера Nginx ‘/etc/nginx/sites-available/joomla‘ со следующим ‘nano‘ редактор.

sudo nano /etc/nginx/sites-available/joomla

Вставьте конфигурацию ниже и измените ‘имя_сервера‘ с именем вашего домена.

server {
listen 80;
server_name joomla.local;
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/joomla;
index index.php index.html index.htm default.html default.htm;

# Support API
location /api/ {
try_files $uri $uri/ /api/index.php?$args;
}

# 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 unix:/var/run/php/php8.3-fpm.sock;
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‘ серверного блока и проверьте конфигурацию Nginx. Если вы правильно настроили Nginx, вы увидите вывод ‘Синтаксис в порядке‘.

sudo ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/
sudo nginx -t

Наконец, выполните приведенную ниже команду ‘systemctl’, чтобы перезапустить службу Nginx и применить изменения.

sudo systemctl restart nginx

setupnginx

Защита Joomla с помощью HTTPS

В этом руководстве вы обеспечите безопасность Joomla с помощью HTTPS. Если вы используете публичный домен, вы можете защитить Joomla с помощью SSL/TLS сертификатов через Certbot и Letsencerypt.

Установите ‘Certbot’ и плагин Certbot Nginx с помощью команды ‘apt’, приведенной ниже. Введите ‘Y’ для подтверждения установки.

sudo apt install certbot python3-certbot-nginx

После завершения установки запустите следующую команду ‘certbot’, чтобы сгенерировать SSL/TLS сертификаты и защитить вашу установку Joomla с помощью HTTPS. Не забудьте изменить доменное имя и адрес электронной почты на свои данные.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d joomla.local

После завершения установки ваша установка Joomla будет защищена HTTPS с помощью SSL/TLS сертификатов от Letsencrypt.

Установка Joomla

Откройте веб-браузер и зайдите на доменное имя Joomla. Перед вами появится мастер установки Joomla.

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

установка языка

Введите нового пользователя администратора, электронную почту и пароль для Joomla.

 

Введите данные о базе данных MariaDB и пользователе, затем нажмите кнопку ‘Установите Joomla‘, чтобы продолжить установку.

детали базы данных

После завершения установки нажмите кнопку ‘Открыть сайт‘, чтобы открыть домашнюю страницу по умолчанию, или ‘Открыть Administrator’, чтобы получить доступ к панели администрирования Joomla.

установка завершена

Для домашней страницы Joomla по умолчанию вы увидите следующее.

домашняя страница

Теперь введите пользователя и пароль администратора и нажмите кнопку ‘Вход‘.

вход

Если вы ввели правильного пользователя и пароль, вы увидите следующую панель администрирования Joomla.

панель управления

Заключение

Поздравляем! Вы установили Joomla на сервер Ubuntu 24.04. Вы запустили Joomla с веб-сервером Nginx, сервером баз данных MariaDB и PHP-FPM. Вы также обеспечили безопасность Joomla с помощью HTTPS через Certbot и Letsencrypt.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *