Magento è un'applicazione di eCommerce gratuita e open source che ti consente di ospitare il tuo negozio online. È scritto in PHP e utilizza il framework Zend. È versatile e scalabile che lo rende adatto a negozi di piccole, medie e grandi dimensioni. Ti consente di ospitare un sistema di carrello online completamente funzionale senza alcuna conoscenza di programmazione. È utilizzato da migliaia di negozi online per la sua semplicità e facilità d'uso.
In questo tutorial, ti mostrerò come installare Magento2 su Debian 11.
Prerequisiti
- Un server che esegue Debian 11.
- Un nome di dominio valido puntato all'IP del tuo server.
- Sul server è configurata una password di root.
Installa Apache, PHP e altre estensioni richieste
Innanzitutto, dovrai installare Apache, PHP e altre estensioni PHP necessarie sul tuo server. Puoi installarli tutti usando il seguente comando:
apt-get install apache2 php libapache2-mod-php php-common php-gmp php-curl php-soap php-bcmath php-intl php-mbstring php-xmlrpc php-mysql php-gd php-xml php-cli php-zip -y
Una volta installati tutti i pacchetti, modifica il file php.ini e cambia alcune impostazioni predefinite:
nano /etc/php/7.4/apache2/php.ini
Modifica i seguenti valori:
file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 512M upload_max_filesize = 128M max_execution_time = 3600
Salva e chiudi il file, quindi riavvia il servizio Apache per applicare le modifiche:
systemctl restart apache2
Installa e configura il server MySQL
Magento2 utilizza MariaDB o MySQL come backend del database. Per impostazione predefinita, la versione 10.5 di MariaDB è inclusa nel repository predefinito di Debian 11, che non è supportato da Magento2. Quindi dovrai installare MySQL Server 8 sul tuo server.
Innanzitutto, scarica il file del pacchetto MySQL con il seguente comando:
wget https://repo.mysql.com//mysql-apt-config_0.8.18-1_all.deb
Quindi, installalo usando il seguente comando:
apt install ./mysql-apt-config_0.8.18-1_all.deb -y
Ti verrà chiesto di selezionare la versione di MySQL che desideri installare:
Seleziona MySQL Server 8 e fai clic su OK pulsante.
Quindi, aggiorna il repository e installa il server MySQL 8 con il seguente comando:
apt-get update -y
apt-get install mysql-server -y
Una volta installato MySQL, connettiti a MySQL con il seguente comando:
mysql -u root -p
Una volta effettuato l'accesso, crea un database e un utente per Magento2 con il seguente comando:
mysql> CREATE DATABASE magento2;
mysql> CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'password';
Quindi, concedi tutti i privilegi al database Magento2:
mysql> GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost';
Quindi, svuota i privilegi ed esci da MySQL con il seguente comando:
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
Una volta terminato, puoi procedere al passaggio successivo.
Installa Composer
Composer è un gestore delle dipendenze per PHP utilizzato per gestire le dipendenze PHP richieste per il tuo progetto.
Innanzitutto, installa lo strumento da riga di comando curl con il seguente comando:
apt-get install curl -y
Quindi, installa Composer usando il seguente comando:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Otterrai il seguente output:
All settings correct for using Composer Downloading... Composer (version 2.1.12) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Successivamente, verifica la versione di Composer utilizzando il seguente comando:
composer --version
Dovresti vedere il seguente output:
Composer version 2.1.12 2021-11-09 16:02:04
Installa Magento2
Quindi, cambia la directory nella directory principale web di Apache e scarica l'ultima versione di Magento2 con il seguente comando:
cd /var/www/html
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
Ti verrà chiesto di fornire il nome utente e la password del tuo account Magento come mostrato di seguito:
Creating a "magento/project-community-edition" project at "./magento2" Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Authentication required (repo.magento.com): Username: a6b333ad41629bac913eaabb9b8e053c Password:
Usa la chiave pubblica come nome utente e la chiave privata come password, quindi premi il tasto Invio. Otterrai il seguente output:
Do you want to store credentials for repo.magento.com in /root/.config/composer/auth.json ? [Yn] Y Installing magento/project-community-edition (2.4.3-p1) - Downloading magento/project-community-edition (2.4.3-p1) - Installing magento/project-community-edition (2.4.3-p1): Extracting archive Created project in /var/www/html/magento2 Loading composer repositories with package information
Quindi, imposta le autorizzazioni e la proprietà appropriate di Magento2 e di altre directory:
chown -R www-data:www-data /var/www/html/magento2/
cd /var/www/html/magento2
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chown -R :www-data .
chmod u+x bin/magento
Quindi, disabilita il modulo Elasticsearch con il seguente comando:
php bin/magento module:disable {Magento_Elasticsearch,Magento_InventoryElasticsearch,Magento_Elasticsearch6,Magento_Elasticsearch7}
Otterrai il seguente output:
The following modules have been disabled: - Magento_Elasticsearch - Magento_Elasticsearch6 - Magento_InventoryElasticsearch - Magento_Elasticsearch7 Cache cleared successfully. Generated classes cleared successfully. Please run the 'setup:di:compile' command to generate classes. Info: Some modules might require static view files to be cleared. To do this, run 'module:disable' with the --clear-static-content option to clear them.
Quindi, installa Magento2 con il seguente comando:
bin/magento setup:install --base-url=http://magento.example.com --db-host=localhost --db-name=magento2 --db-user=magento2 --db-password=password --admin-firstname=admin --admin-lastname=admin [email protected] --admin-user=admin [email protected] --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
Una volta installato Magento2, dovresti vedere il seguente output:
Module 'Vertex_AddressValidation': [Progress: 1363 / 1370] Module 'Yotpo_Yotpo': [Progress: 1364 / 1370] Enabling caches: Current status: layout: 1 block_html: 1 full_page: 1 [Progress: 1365 / 1370] Installing admin user... [Progress: 1366 / 1370] Caches clearing: Cache cleared successfully [Progress: 1367 / 1370] Disabling Maintenance Mode: [Progress: 1368 / 1370] Post installation file permissions check... For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc' [Progress: 1369 / 1370] Write installation date... [Progress: 1370 / 1370] [SUCCESS]: Magento installation complete. [SUCCESS]: Magento Admin URI: /admin_fgadpx Nothing to import.
Nota:ricorda l'URI di amministrazione Magento2 dall'output sopra. Dovrai usarlo per accedere all'interfaccia web di Magento.
Quindi, disabilita l'autenticazione a due fattori Magento2, svuota la cache e installa Cron con i seguenti comandi:
sudo -u www-data bin/magento module:disable Magento_TwoFactorAuth
sudo -u www-data bin/magento cache:flush
sudo -u www-data bin/magento cron:install
Una volta terminato, puoi procedere al passaggio successivo.
Crea un file di configurazione dell'host virtuale Apache
Successivamente, dovrai creare un file di configurazione dell'host virtuale Apache per Magento2. Puoi crearlo con il seguente comando:
nano /etc/apache2/sites-available/magento2.conf
Aggiungi le seguenti righe:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/magento2/ ServerName magento.example.com <Directory /var/www/html/magento2/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/magento2_error.log CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined </VirtualHost>
Salva e chiudi il file, quindi attiva l'host virtuale Magento e il modulo di riscrittura di Apache utilizzando il seguente comando:
a2ensite magento2.conf
a2enmod rewrite
Infine, riavvia il servizio Apache per applicare le modifiche:
systemctl restart apache2
Puoi anche controllare lo stato di Apache con il seguente comando:
systemctl status apache2
Dovresti vedere il seguente output:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-11-20 06:00:59 UTC; 4s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 18394 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 18398 (apache2) Tasks: 6 (limit: 4679) Memory: 15.1M CPU: 99ms CGroup: /system.slice/apache2.service ??18398 /usr/sbin/apache2 -k start ??18399 /usr/sbin/apache2 -k start ??18400 /usr/sbin/apache2 -k start ??18401 /usr/sbin/apache2 -k start ??18402 /usr/sbin/apache2 -k start ??18403 /usr/sbin/apache2 -k start Nov 20 06:00:59 debian11 systemd[1]: Starting The Apache HTTP Server...
Accedi all'interfaccia web di Magento2
Ora apri il tuo browser web e accedi all'interfaccia di amministrazione di Magento2 utilizzando l'URL http://magento.example.com/admin_fgadpx . Dovresti vedere la pagina di accesso di Magento2:
Fornisci il nome utente e la password dell'amministratore e fai clic su Accedi pulsante. Dovresti vedere la dashboard di Magento2 nella pagina seguente:
Conclusione
Congratulazioni! hai installato con successo Magento2 su Debian 11. Ora puoi ospitare facilmente il tuo negozio online con Magento. Sentiti libero di chiedermi se hai domande.