Установка Joomla · 6 min read · Sep 12, 2025

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

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

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

Предварительные требования

Чтобы завершить это руководство, убедитесь, что у вас есть следующее:

  • Сервер Ubuntu 24.04.
  • Пользователь, не являющийся root, с правами администратора.
  • Доменное имя, указывающее на IP-адрес сервера.

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

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

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

sudo apt update

обновление репозитория

Установите зависимости стека LEMP с помощью команды ниже. Введите ‘ 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

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

После завершения установки проверьте статус службы 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 должен работать по умолчанию на сокет-файле.

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 для службы PHP-FPM с помощью команды ниже.

ss -pl | grep php

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

php-fpm сокет файл

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

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

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

sudo mariadb-secure-installation

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

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

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

Войдите в сервер MariaDB с помощью команды ‘ mariadb ‘ ниже. Введите свой пароль root 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;

Наконец, введите ‘ quit ‘, чтобы выйти из сервера 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_name ‘ на ваше доменное имя.

server {  
listen 80;  
server_name howtoforge.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;  
  
# Поддержка API  
location /api/ {  
try_files $uri $uri/ /api/index.php?$args;  
}  
  
# Поддержка чистых (также известных как удобных для поисковых систем) URL  
location / {  
try_files $uri $uri/ /index.php?$args;  
}  
  
# добавление глобального заголовка x-content-type-options  
add_header X-Content-Type-Options nosniff;  
  
# запрет выполнения скриптов внутри записываемых директорий  
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;  
}  
  
# кэширование файлов  
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

настройка nginx

Обеспечение безопасности Joomla с помощью HTTPS

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

Установите ‘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 howtoforge.local

Когда все будет готово, ваша установка Joomla будет защищена с помощью HTTPS через SSL/TLS сертификаты от Letsencrypt.

Установка Joomla

Откройте веб-браузер и перейдите на ваше доменное имя Joomla, например https://howtoforge.local/. Вы увидите мастер установки Joomla.

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

настройка языка

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

новый администратор

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

данные базы данных

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

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

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

главная страница

Теперь введите своего администратора и пароль и нажмите ‘ Войти ‘.

вход

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

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

Заключение

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.