Joomla - одна из самых популярных CMS. Первоначально он был выпущен в 2005 году в качестве альтернативы WordPress. Эта CMS может быть лучше подходит для более опытных пользователей веб-сайта, потому что она более гибкая как в задней, так и в передней части. В отличие от WordPress, Joomla имеет более мощный инструментарий дизайна и подходит для опытных пользователей, чтобы максимально использовать свои функции. Это очень гибко, позволяя пользователям создавать различные типы веб-сайтов, включая личные, бизнес, электронную коммерцию и другие веб-сайты. В этой статье я покажу вам, как установить Joomla на AlmaLinux 10.

Предпосылки

  • Сервер под управлением AlmaLinux 10 или любой другой ОС Linux.
  • Привилегии пользователя: пользователь root или не root с привилегиями sudo.

Конвенции

1
2
# — данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ – данные команды должны выполняться от имени обычного пользователя.

Шаг 1. Обновите систему

Мы предполагаем, что у вас установлена ​​новая версия AlmaLinux 10. Нам необходимо обновить системные пакеты до последних доступных версий. Для этого выполните следующие команды:

1
$ sudo dnf update -y && sudo dnf upgrade -y

Шаг 2. Установите PHP

В этой статье мы установим Joomla 5.3, которая требует по крайней мере PHP 8.1. AlmaLinux 10 поставляется с PHP 8.3, поэтому мы можем просто установить PHP и необходимые расширения для установки Joomla.

1
$ sudo  dnf install php-{bcmath,common,cli,curl,fpm,gd,json,intl,mbstring,mysqlnd,pear,simplexml,soap,xml,zip,zlib}

После установки мы можем запустить службу PHP-FPM.

1
$ sudo systemctl enable --now php-fpm

Во-первых, нам нужно отключить вывод PHP_buffering.

1
$ sudo nano /etc/php.ini

В этом файле найдите output_buffering = 4096, затем замените его на output_buffering = off

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

Теперь мы создадим PHP-FPM pool для нашего веб-сайта Joomla.

1
$ sudo nano /etc/php-fpm.d/joomla.conf 

Вставьте следующее в файл.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[joomla]

user = nginx
group = nginx

listen = /run/php-fpm/joomla.sock

listen.acl_users = apache,nginx
listen.owner = nginx
listen.group = nginx

pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 5s

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

1
$ sudo systemctl restart php-fpm

Шаг 3. Установка и настройка Nginx

Nginx - это быстрый и безопасный, один из самых популярных и широко используемых веб-серверов в мире. На этом этапе мы собираемся установить Nginx как веб-сервер, необходимый для Joomla на AlmaLinux 10.

1
$ sudo dnf install nginx -y

Nginx не работает автоматически при установке. После установки мы можем запустить службу Nginx.

1
$ sudo systemctl enable --now nginx

Затем, давайте создадим серверный блок nginx или виртуальный хост.

1
$ sudo nano /etc/nginx/conf.d/joomla.example.com.conf

Вставить следующее в файл:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
upstream php-handler {
    server unix:/run/php-fpm/joomla.sock;
}
server {
    listen 80;
    server_name joomla.example.com;

    root /var/www/html/joomla;
    index index.php;

    server_tokens off;
    access_log /var/log/nginx/joomla_access.log;
    error_log /var/log/nginx/joomla_error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
        }
    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_read_timeout 3600s;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 128k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass php-handler;
        fastcgi_index index.php;
            }
        }

Сохраните файл, затем выйдите из редактора.. Теперь мы можем перезапустить сервис Nginx, чтобы применить изменения.

1
$ sudo systemctl restart nginx

Шаг 4. Установка MariaDB

Есть несколько систем баз данных, которые мы можем использовать для установки Joomla. Joomla поддерживает сервер MySQL версии 8.0+ или эквивалентный сервер MariaDB, и PostgreSQL. Поскольку AlmaLinux поставляется с MariaDB 10.11, мы будем устанавливать и использовать его. Установим его из хранилища AlmaLinux 10 по умолчанию, чтобы облегчить установку Joomla.

1
$ sudo dnf install mariadb-server

После установки, MariaDB не начнет автоматически. Мы должны выполнить команду ниже, чтобы начать ее сейчас и позволить ей начинать каждый раз, когда сервер перезагружается.

1
$ sudo systemctl enable --now mariadb

Теперь мы можем приступить к созданию новой базы данных и базы данных пользователя.

1
$ sudo mysql 

После того, как мы вошли в оболочку MySQL, мы можем выполнить следующие команды. Вы можете заменить YourStrongPasswordHere более сильным паролем.

1
2
3
4
mysql> CREATE DATABASE joomla_db;
mysql> GRANT ALL on joomla_db.* to joomla_user@localhost IDENTIFIED BY 'YourStrongPasswordHere';
mysql> FLUSH PRIVILEGES;
mysql> \q

Это связало его, пользователь базы данных и имя были созданы.

Шаг 5. Установите SSL-сертификат

Мы установим бесплатный SSL-сертификат от Let’s Encrypt с помощью certbot. Certbot - это инструмент ACME для создания SSL-сертификатов, предоставляемых Let’s Encrypt. Прежде чем создать новый SSL-сертификат для вашего joomla.example.com, убедитесь, что вы уже указали запись DNS домена/субдомена на ваш IP-адрес сервера.

1
$ sudo dnf install certbot python3-certbot-nginx -y

После установки вы можете запустить эту команду для выдачи SSL-сертификата. Опять же, убедитесь, что заменить субдомен вашим фактическим доменом или поддоменовым именем; он должен соответствовать тому, который находится в файле конфигурации блока nginx сервера, который мы создали ранее.

1
$ sudo certbot 

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): you@example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: joomla.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Requesting a certificate for joomla.example.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/joomla.example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/joomla.example.com/privkey.pem
This certificate expires on 2025-11-10.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for joomla.example.com to /etc/nginx/conf.d/joomla.example.com.conf
Congratulations! You have successfully enabled HTTPS on https://joomla.example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Если есть проблема при создании SSL-сертификата или Certbot не может генерировать сертификат, вполне вероятно, что обновление DNS не полностью распространяется.

Шаг 6. Установите Joomla

Наконец, мы можем продолжить установку Joomla. Во-первых, нам нужно загрузить архивный файл установки. Перейдите на их страницу

1
2
3
4
$ cd /tmp
$ wget https://downloads.joomla.org/cms/joomla5/5-3-4/Joomla_5-3-4-Stable-Full_Package.zip?format=zip -O joomla.zip
$ sudo unzip /tmp/joomla.zip -d /var/www/html/joomla
$ sudo chown -R nginx: /var/www/html/joomla

Мы загрузили файл установки Joomla и довели его до каталога, настроенного как root документа нашего веб-сайта Joomla. Чтобы начать установку, выберите https://joomla.example.com/, используя любой веб-браузер.

На этом этапе вам нужно ввести имя вашего веб-сайта Joomla, например, New Joomla Site, а затем нажать на кнопку Setup Login Data, чтобы продолжить.

Теперь нам нужно создать супер администратора. Заполните требуемые поля на этом шаге, затем переходите к следующему шагу, нажав на Setup Database Connection

Затем вам нужно ввести данные базы данных, которые вы создали на шаге 4 выше, а затем, наконец, нажмите на кнопку Install Joomla.

Это всё объясняет. Joomla была установлена на https://joomla.example.com/, и вы можете зайти на сайт backend, нажав на кнопку Open Administrator. Вы будете доставлены на страницу входа администратора.

После регистрации вы будете в вашей панели Joomla, и вы можете продолжать настраивать свой сайт Joomla там.

Завершение

Поздравляю! Вы успешно завершили установку Joomla на AlmaLinux 10.

Если вам понравился этот пост, пожалуйста, поделитесь им со своими друзьями или оставьте комментарий ниже.