Установка Joomla nginx php 8.3 php-fpm MariaDB займет у нас минут 20. Рассказывать про саму CMS я не буду так как до меня все рассказали. Расскажу вам как установить Joomla под Nginx php 8.3 + php-fpm и MariaDB. Для это я буду использовать VPS от HostVDS из под Debian
Так же могу предложить вам Бонус +5% к первому пополнению:
HVDSFT5!
Обнавляем пакеты и обнавляем Debian:
apt update
apt upgrade
Устанавливаем CA-сертификаты:
apt install curl gnupg2 ca-certificates lsb-release wget
Установка Nginx:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | tee /etc/apt/trusted.gpg.d/nginx.gpg >/dev/null >/dev/null
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
apt update
apt install nginx
Добавим репозиторий MariaDB:
curl -LsSO https://dlm.mariadb.com/enterprise-release-helpers/mariadb_es_repo_setup
echo "b98c6436e01ff33d7e88513edd7b77a965c4500d6d52ee3f106a198a558927af mariadb_es_repo_setup" \ | sha256sum -c -
chmod +x mariadb_es_repo_setup
./mariadb_es_repo_setup --token="CUSTOMER_DOWNLOAD_TOKEN" --apply
apt update
Установка MariaDB:
apt install mariadb-server mariadb-client
Настройка MariaDB:
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
Подключаемся к MariaDB:
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.su/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 unzip 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:
adduser joomla
Заходим этим пользователем в систему:
su - joomla
Создайте новый каталог под названием:
mkdir -p www/html/joomla
Меняем права на папку:
chmod -R 755 /home/joomla
Переходим в папку:
cd www/html/joomla
Качаем Joomla:
wget https://downloads.joomla.org/cms/joomla5/5-2-3/Joomla_5-2-3-Stable-Full_Package.zip?format=zip
Извлеките файлы в папку:
unzip Joomla_5-2-3-Stable-Full_Package.zip
Выходим из под пользователя:
exit
Создадим конфиг nginx для нашего сайта:
nano /etc/nginx/conf.d/joomla.conf
Вставляем туда следущее:
server { listen 80; server_name site.net www.site.net; root /home/joomla/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:/run/php/joomla.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Создаем файл:
nano /etc/php/8.3/fpm/pool.d/joomla.conf
[joomla] pm = dynamic pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5 php_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_STRICT php_value[display_errors] = stderr php_value[log_errors] = On php_admin_value[mbstring.func_overload] = 0 listen = /var/run/php/joomla.sock listen.mode = 0660 listen.owner = www-data listen.group = www-data user = joomla group = joomla
Проверим конфиг на адекватность:
nginx -t
Если все хорошо то перезагружаем php-fpm и nginx:
/etc/init.d/php8.3-fpm restart nginx -s reload