Magento è una piattaforma di e-commerce open source scritta in PHP. Magento appartiene alle prime 3 piattaforme di e-commerce e una delle principali nel settore dell'e-commerce. Alcune delle funzionalità di base di Magento sono Gestione del prodotto, Gestione dell'inventario, Gestione degli ordini, Reporting e così via. Molte grandi organizzazioni scelgono Magento come piattaforma di e-commerce perché è altamente personalizzabile, scalabile, con sicurezza avanzata e seo friendly.
In questo tutorial ti guideremo su come installare Magento 2.4.5 su Ubuntu 22.04.
Cominciamo.
1 Prerequisiti
- Ubuntu 22.04
- Almeno 2 GB di RAM o superiore
2 Aggiornamento del sistema
Prima di iniziare l'installazione dobbiamo aggiornare il nostro sistema.
sudo apt update -y && apt upgrade -y
3 Installazione di estensioni PHP ed PHP
La versione PHP richiesta per Magento 2.4.5 è PHP 8.1. In questa installazione utilizzeremo il repository Ubuntu 22.04 per installare PHP 8.1 poiché è la versione predefinita impostata. Installiamo PHP 8.1 e le estensioni richieste da Magento.
sudo apt install php libapache2-mod-php php-bcmath php-curl php-fpm php-gd php-intl php-mbstring php-mysql php-soap php-xml php-xsl php-zip php-cli
Modifichiamo alcuni dei valori PHP necessari per il corretto funzionamento di Magento.
Controlliamo prima la posizione del file di configurazione PHP.
sudo php --ini | grep "Loaded Configuration File"
Output:
Loaded Configuration File: /etc/php/8.1/cli/php.i
Modifica il file di configurazione PHP.
sudo nano /etc/php/8.1/cli/php.ini
Modifica i file di configurazione con i seguenti valori.
memory_limit = 1G
upload_max_filesize = 128M
zlib.output_compression = on
max_execution_time = 18000
realpath_cache_size = 10M
realpath_cache_ttl = 7200
Salva il file di configurazione ed esci.
4 Installazione e configurazione del database
Magento 2.4.5 supporta MariaDB 10.4 o MySQL 8. In questa guida useremo MySQL 8.0.
Installiamo MySQL.
sudo apt install mysql-server
Proteggiamo l'installazione di MySQL, ma prima dobbiamo prima impostare la password di root di MySQL per evitare il problema di seguito:
... Fallito! Errore:SET PASSWORD non ha significato per l'utente 'root'@'localhost' poiché il metodo di autenticazione utilizzato non memorizza i dati di autenticazione nel server MySQL. Si prega di considerare l'utilizzo di ALTER USER invece se si desidera modificare i parametri di autenticazione .
Impostiamo la password di root di MySQL.
sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mysecretpassword';
mysql> exit
Proteggiamo l'installazione di MySQL.
sudo mysql_secure_installation
Output:
Securing the MySQL server deployment.
Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Riavvia il servizio MySQL.
sudo systemctl restart mysql
Creiamo un database per la nostra istanza Magento.
sudo mysql -u root -p
Il comando richiederà di inserire la password di root MySQL.
Ma prima di procedere con la creazione di un database, cambiamo prima la politica della password in "LOW ” questo è facoltativo se non si desidera utilizzare la rigida politica della password.
mysql> SET GLOBAL validate_password.policy = 0;
Creiamo il database per Magento.
mysql> CREATE USER 'magento_user'@'localhost' IDENTIFIED BY 'mypassword';
mysql> GRANT ALL ON magento2.* TO 'magento_user'@'localhost';
mysql> flush privileges;
mysql> exit
5 Installazione di Elastic Search
A partire da Magento 2.4, tutte le installazioni devono essere configurate per utilizzare Elasticsearch.
Iniziamo l'installazione di Elasticsearch.
sudo apt install apt-transport-https ca-certificates gnupg2
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
Avvia e abilita Elasticsearch.
sudo systemctl enable elasticsearch --now
Controlla lo stato.
sudo systemctl status elasticsearch
6 Installazione di Composer
Poiché Magento è basato su PHP e richiedeva diversi tipi di pacchetto per essere eseguito e per installare il pacchetto necessario per eseguire Magento, abbiamo bisogno di installare un gestore di pacchetti chiamato composer.
Per installare il compositore.
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Controlla la versione.
sudo composer --version
Output:
Composer version 2.4.3 2022-10-14 16:56:41
7 Installazione e configurazione del server Web
Imposteremo Magento in Nginx e nel server web Apache.
Per Apache .
Prima installa il server web Apache.
sudo apt install apache2
Avvia e abilita Apache.
sudo systemctl enable apache2 --now
Ora configura un host virtuale.
sudo nano /etc/apache2/sites-available/magento.conf
Aggiungi il contenuto qui sotto.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/magento2/pub
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/">
AllowOverride all
</Directory>
</VirtualHost>
Salva il file ed esci.
Non dimenticare la modifica a domain.com al tuo dominio.
Abilitiamo l'host virtuale che abbiamo creato.
a2ensite magento.conf
Quindi abilita il modulo mod_rewrite.
a2enmod rewrite
Quindi riavvia Apache.
systemctl restart apache2
Per Nginx .
Installiamo prima Nginx.
sudo apt install nginx -y
Abilita e avvia Nginx.
sudo systemctl enable nginx --now
Crea un blocco server.
sudo nano /etc/nginx/sites-available/magento.conf
Inserisci quanto segue:
upstream fastcgi_backend {
server unix:/run/php/php8.1-fpm.sock;
}
server {
server_name domain.com www.domain.com;
listen 80;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer; # for production change the developer to production
access_log /var/log/nginx/magento2-access.log;
error_log /var/log/nginx/magento2-error.log;
include /var/www/magento2/nginx.conf.sample;
}
Nota: Non dimenticare di modificare il "dominio.com “.
Salva il file ed esci.
Abilitiamo il file di configurazione Nginx (blocco server).
sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
Riavvia Nginx.
sudo systemctl restart nginx
8 Scarica e installa Magento 2.4.5
Per la maggior parte dei casi si consiglia di installare Magento utilizzando Marketplace(https://marketplace.magento.com/) creando una chiave di accesso.
Per creare una chiave di accesso, procedi nel seguente modo.
- Primo accesso al tuo account Marketplace
- Vai a Nome->Il mio profilo
- Vai a Marketplace->I miei prodotti->Chiavi di accesso
- Nella scheda Magento 2, fai clic su "Crea una nuova chiave di accesso “
- Nel popup, inserisci un nome qualsiasi nella casella di testo, quindi fai clic su OK.
- Hai finito e vedrai le chiavi di accesso generate.
Installiamo Magento 2.4.5
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5 /var/www/magento2
Ti chiederà nome utente e password e il nome utente e la password sono la tua chiave_pubblica e chiave_privata rispettivamente.
Username: YOUR_PUBLIC_KEY
Password: YOUR_PRIVATE_KEY
Dopo aver inserito le informazioni di accesso, ti chiederà se desideri memorizzare le credenziali nel file locale, rispondi con sì.
Do you want to store credentials for repo.magento.com in /root/.config/composer/auth.json ? [Yn] Y
Vai a Magento directory principale.
cd /var/www/magento2/
Ora esegui il comando di installazione di Magento 2.
bin/magento setup:install \
--base-url=http://domain.com \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento_user \
--db-password=mypassword \
--admin-firstname=admin \
--admin-lastname=admin \
[email protected] \
--admin-user=admin \
--admin-password=myadminpassword \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1
Nota: Non dimenticare di modificare i valori (fare riferimento al testo in grassetto ) in base al tuo insieme di valori.
Dopo il processo di installazione vedrai il link di amministrazione per la tua istanza Magento 2.4.5.
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1lswn5
Nothing to import.
9 Imposta i lavori Cron e l'autorizzazione
Magento utilizza cron job per automatizzare alcune operazioni. Per configurare il cron Magento esegui questo comando.
sudo bin/magento cron:install
Ora correggiamo i permessi dei file della nostra directory Magento.
sudo chown -R www-data:www-data /var/www/magento2
La tua istanza Magento dovrebbe essere attiva e funzionante ora.
Nota: Se hai problemi ad accedere alla tua istanza Magento, devi disabilitare l'autenticazione a due fattori eseguendo il comando seguente:
sudo bin/magento module:disable Magento_TwoFactorAuth
Congratulazioni hai installato correttamente Magento 2.4.5 ora puoi accedere all'istanza di Magento su http://domain.com
10 Conclusione
In questo tutorial hai imparato come installare Magento 2.4.5 utilizzando un server web diverso. Se stai usando Ubuntu 22.04 puoi consultare il nostro articolo su Magento 2.4.4.