Installing Magento 2 on Ubuntu using a Bash Script

Here is the magento2 bash script’s that you can you to install Magento using LAMP and elasticsearch


# Update the system
sudo apt-get update
sudo apt-get upgrade

# Install LAMP stack
sudo apt-get install -y apache2 mysql-server php php-cli php-common php-curl php-gd php-intl php-mbstring php-mysql php-soap php-xml php-zip

# Install Elasticsearch
wget -qO - | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch

# Configure MySQL
sudo mysql_secure_installation

# Download Magento 2

# Extract the downloaded file
tar -zxvf 2.4.1.tar.gz

# Move the extracted files to the web root
sudo mv magento2-2.4.1/ /var/www/html/magento2

# Set the correct permissions
sudo chown -R www-data:www-data /var/www/html/magento2
sudo chmod -R 775 /var/www/html/magento2

# Create a virtual host
sudo nano /etc/apache2/sites-available/magento2.conf
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/magento2
    <Directory /var/www/html/magento2/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
# Enable the virtual host
sudo a2ensite magento2.conf

# Restart Apache
sudo service apache2 restart

# Run the Magento 2 installation command
php bin/magento setup:install --base-url= --db-host=localhost --db-name=magento2 --db-user=root --db-password=password --admin-firstname=admin --admin-lastname=admin [email protected] --admin-user=admin --admin-password=password --search-engine=elasticsearch7 --elasticsearch-host= --elasticsearch-port=9200

# Set file permissions
sudo chmod -R 777 var/ generated/ pub/

This script will install Magento 2 on Ubuntu using a LAMP stack and Elasticsearch. It also assumes that you have already configured your domain name to point to the server. The script will also create a virtual host for Magento 2, and set the necessary permissions for the files and directories. Be sure to replace and admin@

Koushik CH

Koushik CH

KOUSHIK CH is a Young Software Developer, who enjoys challenges, Traveling, eating out, and cookery. He is Accountable and Geek, but can also be very Mobile/Laptop Addicted and a bit Foodie Selfish.