Установка Joomla nginx php 8.3 php-fpm MariaDB займет у нас минут 20. Рассказывать про саму CMS я не буду так как до меня все рассказали. Расскажу вам как установить Joomla под Nginx php 8.3 + php-fpm и MariaDB. Для это я буду использовать VPS от Reg.Ru из под Debian
Так же могу предложить вам код-купон в 5% скидки на первый заказ хостинга или покупки домена от Reg.Ru:
9BB7-9DFE-149B-7BBA
Обнавляем пакеты и обнавляем Debian:
apt update
apt upgrade
Устанавливаем CA-сертификаты:
apt install curl gnupg2 ca-certificates lsb-release wget
Установка Nginx:
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
apt update
apt install nginx
systemctl start nginx.service
systemctl enable nginx.service
Установка MariaDB:
apt install mariadb-server mariadb-client
systemctl start mysql.service
Настройка MariaDB:
mysql_secure_installation
Или с версии MariaDB 10.5.2
mariadb-secure-installation
Enter current password for root (enter for none): press Enter Set root password? Установить пароль root [Y/n]: Y New password: Новый пароль Enter password Re-enter new password: Повторно введите новый пароль Repeat password Remove anonymous users? Удалить анонимного пользователя [Y/n]: Y Disallow root login remotely? Запретить root-вход удаленно [Y/n]: Y Remove test database and access to it? Удалить тестовую базу данных [Y/n]: Y Reload privilege tables now? Перезагрузите таблицы привилегий [Y/n]: Y
Подключаемся к MySQL:
mysql -u root -p
Или все по той же причине:
mariadb -u root -p
Создаем базу под названием joomla:
CREATE DATABASE joomla;
Создаем нового пользователя joomlau:
CREATE USER 'joomlau'@'localhost' IDENTIFIED BY 'сюда придумываем и пишем пароль';
Назначаем пользователя joomlau в базу данных joomla:
GRANT ALL ON joomla.* TO 'joomlau'@'localhost' IDENTIFIED BY 'сюда тот придуманный пароль' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Установка PHP 8.3:
apt install -y ca-certificates apt-transport-https wget
wget --quiet -O - https://packages.sury.org/php/apt.gpg | apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/php.list
apt update
apt install php8.3-fpm php8.3-common php8.3-mysql php8.3-gmp php8.3-curl php8.3-intl php8.3-mbstring php8.3-xmlrpc php8.3-gd php8.3-xml php8.3-cli php8.3-zip php8.3-imagick
Редактируем конфигурацию php:
nano /etc/php/8.3/fpm/php.ini
Находим:
;cgi.fix_pathinfo=1
меняем на:
cgi.fix_pathinfo=0
Качаем Joomla:
wget https://downloads.joomla.org/cms/joomla3/3-9-14/Joomla_3-9-14-Stable-Full_Package.tar.gz
Создайте новый каталог под названием joomla:
mkdir -p /var/www/html/joomla
Извлеките файлы в созданную папку:
tar -xvzf Joomla_3-9-14-Stable-Full_Package.tar.gz -C /var/www/html/joomla
Добавить nginx в группу www-data:
usermod -a -G www-data nginx
Меняем владельца каталога:
chown -R www-data /var/www/html
Создадим конфиг nginx для нашего сайта:
nano /etc/nginx/conf.d/joomla.conf
Вставляем туда следущее:
server { listen 80; server_name site.net www.site.net; root /var/www/html/joomla; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { return 403; error_page 403 /403_error.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Проверим конфиг на адекватность:
nginx -t
Если все хорошо то перезагружаем php-fpm и nginx:
/etc/init.d/php8.3-fpm restart nginx -s reload