Skip to main content

Apache - Setup Magento2

 

 

# Install MySQL
sudo dnf install -y mariadb-server mariadb

# Install PHP 8.3 via Remi with Magento-required extensions
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.3 -y

# Core stack + almost all required extensions
sudo dnf install -y \
  httpd mod_ssl php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring \
  php-curl php-xml php-intl php-bcmath php-soap php-opcache php-sodium \
  php-pear php-devel php-gmp php-imagick php-redis php-memcached \
  php-mysqli

# Install Elasticsearch (required by Magento 2.4+)
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elasticsearch.repo << 'REPO'
[elasticsearch]
name=Elasticsearch repository
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
REPO

sudo dnf install -y elasticsearch

# Configure MySQL
sudo systemctl enable --now mariadb

sudo mysql 'SQL'
CREATE DATABASE magento CHARACTER SET utf8mb4;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'MagentoPass456!';
CREATE USER 'magento'@'%' IDENTIFIED BY 'MagentoPass456!';
GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost';
GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'%';
FLUSH PRIVILEGES;
SQL

# Configure Elasticsearch
sudo systemctl enable --now elasticsearch

# Verify Elasticsearch is running
curl -s http://localhost:9200