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
#!/bin/bash
# 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 - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt 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
wget https://github.com/magento/magento2/archive/2.4.1.tar.gz
# 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 admin@example.com
DocumentRoot /var/www/html/magento2
ServerName example.com
ServerAlias www.example.com
<Directory /var/www/html/magento2/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# 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=http://example.com/ --db-host=localhost --db-name=magento2 --db-user=root --db-password=password --admin-firstname=admin --admin-lastname=admin --admin-email=admin@example.com --admin-user=admin --admin-password=password --search-engine=elasticsearch7 --elasticsearch-host=127.0.0.1 --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 example.com and admin@