Follow the guide to install Magento 2.4.5 or Magento 2.4.6 on Ubuntu 22.04 with PHP 8.1, including configuring password access for the MySQL root account and installing/configuring Elasticsearch.
Step 1: Update and Upgrade System Packages
bash
sudo apt update sudo apt upgrade
Step 2: Install Apache2
sudo apt install apache2
sudo systemctl enable apache2
sudo systemctl start apache2
Step 3: Enable Apache2 Modules
Enable required Apache modules:
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod headers
bash
sudo systemctl restart apache2
Step 4: Configure Apache Virtual Host for Magento
sudo nano /etc/apache2/sites-available/magento.conf
<VirtualHost *:80>
ServerAdmin webmaster@your_domain
DocumentRoot /var/www/html/magento
ServerName your_domain
<Directory /var/www/html/magento/>Options Indexes FollowSymLinks
AllowOverride All
Require all granted</Directory>ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Step 5: Enable the Magento Site
bash
sudo a2ensite magento.conf
Step 6: Configure Hosts File
Edit the hosts file to map your domain to the server’s IP address:
bash
sudo nano /etc/host
Add the following line:
plaintext
127.0.0.1 your_domain
Step 7: Restart Apache
Restart Apache to apply the changes:
sudo systemctl restart apache2
Step 8: Set File Permissions
sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 755 /var/www/html/magento
Step 9: Test Your Configuration
Open your web browser and navigate to http://your_domain
. You should see the default Apache page or a Magento installation page if you have already placed Magento files in the specified directory.
sudo systemctl enable apache2
sudo systemctl start apache2
Step 2: Install MySQL and Create Database for Magento 2
sudo apt install mysql-server
sudo systemctl enable mysql
sudo systemctl start mysql
sudo mysql_secure_installationCreate a database and user:
CREATE DATABASE magento_db;
CREATE USER 'magento_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL ON magento_db.* TO 'magento_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 3: Install PHP and Required Extensions
sudo apt install php8.1 libapache2-mod-php8.1 php8.1-cli php8.1-fpm php8.1-json php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-pear php8.1-bcmath php8.1-json
Edit the php.ini file:
sudo nano /etc/php/8.1/apache2/php.ini
Ensure the following settings:
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 256M
max_execution_time = 360
date.timezone = [Your_Timezone]
Restart Apache:
sudo systemctl restart apache2
Step 4: Install and Configure Elasticsearch
sudo apt install openjdk-11-jre
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
sudo apt update
sudo apt install elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Step 5: Install Composer
sudo apt install composer
Step 6: Download and Install Magento 2
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
cd magento2
Step 7: Configure MySQL Connection in Magento
sudo bin/magento setup:install --base-url=http://your_domain/ \
--db-host=localhost --db-name=magento_db --db-user=magento_user --db-password=your_password \
--admin-firstname=Admin --admin-lastname=User [email protected] \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/New_York --use-rewrites=1
Step 8: Configure Apache for Magento
Create a new Apache configuration file:
sudo nano /etc/apache2/sites-available/magento2.conf
Add the following configuration:
<VirtualHost *:80>
ServerAdmin webmaster@your_domain
DocumentRoot /var/www/html/magento2
ServerName your_domain
<Directory /var/www/html/magento2/>Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable the site and restart Apache:
sudo a2ensite magento2.conf
sudo systemctl restart apache2
Step 9: Set File Permissions
sudo chown -R www-data:www-data /var/www/html/magento2
sudo chmod -R 755 /var/www/html/magento2