Magento 2
Magento 2 Open Source
Version: 2.4.6
Operating System: Ubuntu 22.04
Category: E-commerce
Description
Magento is a leading open-source e-commerce platform. It offers users comprehensive control over the functionality, look, and content of their online stores, ensuring a seamless shopping experience. Magento provides numerous robust tools, including marketing, SEO, and catalog management features, making it highly customizable and efficient.
Included Software
Software | Version |
---|---|
Magento Open Source | 2.4.6 |
PHP | 8.1 |
Composer | 2.5.8 |
Elasticsearch | 7.17.10 |
Varnish | 6.4.0 |
Apache | 2.4.41 |
MySQL | 8.0.33 |
Certbot | 0.40.0 |
Redis | 5.0.7 |
Postfix | 3.4.13 |
Getting Started
Before installation, ensure you have an account and authentication keys from Magento Marketplace.
- Follow How to get your authentication keys.
- Use the Public key as your Username and the Private key as your Password.
Firewall Configuration
Allow the following ports:
- SSH (port 22, rate-limited)
- HTTP (port 80)
- HTTPS (port 443)
Initial Setup
Upon initial connection via SSH as the ubuntu
user, a setup script will automatically run. Follow prompts:
- Enter your registered domain/sub-domain (without
www
orhttp/s
). - Provide your Magento admin email address, username, and a secure password (minimum 6 characters with at least one digit and uppercase letter).
- Choose whether to install SSL using Let’s Encrypt.
Note: Your domain must have DNS A records pointing to your server's IP before enabling SSL.
SSL Configuration
You can configure SSL immediately or later by running:
chmod +x /opt/ssl_config/ssl.sh && /opt/ssl_config/ssl.sh
Let’s Encrypt is recommended for secure HTTPS.
Magento Installation
Follow on-screen prompts to download and install Magento 2, optionally installing sample data.
- Magento URL:
http://your-domain.com
- Magento Admin URL:
http://your-domain.com/admin
Database Information
- MySQL root password:
/root/.mysql_root_password
- Magento database details:
/root/.magento_database_details
Connect to MySQL:
mysql -u root -p
# Enter password from /root/.mysql_root_password
Magento Authentication Keys
Update Magento authentication keys in /var/www/.config/composer/auth.json
:
{
"http-basic": {
"repo.magento.com": {
"username": "$PUBLIC_KEY",
"password": "$PRIVATE_KEY"
}
}
}
Replace $PUBLIC_KEY
and $PRIVATE_KEY
with your actual keys.
Custom Setup Recommendations
Apache Virtual Hosts
Create dedicated virtual host files for each domain to simplify management:
- Create a directory for your domain in
/var/www
. - Create corresponding virtual host file in
/etc/apache2/sites-available
.
SSL Certificate via Certbot
Ensure these DNS records are configured:
- A record for your domain (e.g.,
example.com
) pointing to your server’s IP. - A record for the
www
subdomain (e.g.,www.example.com
) pointing to your server’s IP.
Generate SSL certificate:
sudo certbot --apache -d example.com -d www.example.com
Allow HTTPS traffic (port 443) through your firewall. Optionally, deny HTTP (port 80) afterward for enhanced security.
Postfix Email Setup
Set a valid hostname:
hostnamectl set-hostname your.hostname.com
Update hostname in /etc/postfix/main.cf
:
myhostname = your.hostname.com
Restart Postfix:
systemctl restart postfix
Test outgoing email:
echo "Postfix test" | mail -s "Subject" test@gmail.com
Note: Initially, emails may land in spam due to IP reputation. Reputation improves with consistent usage.
Important Paths
- Web root directory:
/var/www/html
- Magento admin panel:
http://your-domain.com/admin
Following these steps ensures a robust and secure Magento 2 installation ready for customization and deployment.