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
После завершения установки проверьте состояние службы Nginx, выполнив следующие действия:
sudo systemctl is-enabled nginx sudo systemctl status nginx
Вы можете увидеть, что служба Nginx запущена.
Теперь проверьте службу MariaDB, чтобы убедиться, что она запущена и включена, с помощью команды ниже:
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
Наконец, выполните следующую команду, чтобы проверить работу службы PHP-FPM. PHP-FPM должен быть запущен по умолчанию в файле sock.
sudo systemctl is-enabled php8.3-fpm sudo systemctl status php8.3-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‘.
Настройка сервера 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
Защита 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.