Magento è un software di e-commerce open source e un sistema di gestione dei contenuti per siti Web di e-commerce basato su PHP Zend Framework. Utilizza MySQL o MariaDB come backend del database. Lo sviluppo di Magento è stato avviato nel 2008 da Varien.
In questo tutorial, ti mostrerò come installare Magento 2 con Nginx, PHP 7.0 in modalità FPM e MariaDB come database. Userò Ubuntu 16.04 (Xenial Xerus) come sistema operativo del server. Se non hai ancora una configurazione minima del server, consulta questo tutorial per ottenere una configurazione di base adeguata.
Prerequisiti:
- Ubuntu 16.04 - 64 bit.
- Privilegi root.
Passaggio 1:installa Nginx
Accedi al tuo server Ubuntu con il tuo account di root (ad es. tramite SSH) e aggiorna il repository.
sudo su
apt-get update
Quindi installa Nginx:
apt-get install nginx -y
Verifica che nginx sia stato installato correttamente controllando la porta:
netstat -plntu | grep 80
Fase 2 - Installa e configura PHP-FPM
In questo passaggio installeremo PHP 7 in modalità PHP-FPM. Inoltre installeremo le seguenti estensioni PHP richieste da magento.
- php-gd
- php-mhash
- php-mcrypt
- php-xsl
- php-pera
- php-sapone
Installa i pacchetti con il comando apt di seguito:
apt-get install php7.0-fpm php7.0-mcrypt php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-zip php-soap libcurl3 curl -y
Ora modifica i file php.ini per fpm e cli.
vim /etc/php/7.0/fpm/php.ini
vim /etc/php/7.0/cli/php.ini
e aumentare il limite di memoria e il tempo di esecuzione di php e attivare la compressione zlib aggiungendo le seguenti righe alla fine dei file:
memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On
Salva il file ed esci dall'editor.
Riavvia il servizio PHP-FPM per applicare le modifiche alla configurazione:
systemctl restart php7.0-fpm
Fase 3 - Installa e configura MariaDB
Userò MariaDB invece di MySQL qui. Installa MariaDB con il comando apt:
apt-get install mariadb-server mariadb-client -y
Imposta la password dell'utente root di MariaDB con questo comando:
mysqladmin -u root password mypassword
mysql_secure_installation
Set root password? [Y/n] Y
New password:
Re-enter new password: <-- Enter the new password
Remove anonymous users? [Y/n] Y
... Success!
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
... Success!
Quindi connettiti alla shell MySQL (la shell MariaDB viene avviata con il comando mysql ) con la tua password di root, crea un database con il nome 'magentodb ' e un utente 'magentouser ' con la password '[email protetta] '. Scegli una password sicura per "magentouser" sul tuo server e non quella "[email protected] ' che ho usato in questo esempio!
Accedi alla shell MySQL:
mysql -u root -p
Nella shell MySQL, esegui questi comandi:
create database magentodb;
create user [email protected] identified by '[email protected]';
grant all privileges on magentodb.* to [email protected] identified by '[email protected]';
flush privileges;
\q
Database creato e configurato.
Passaggio 4 - Installa e configura Magento 2
Installeremo Magento nella directory '/var/www/magento2'. Per l'installazione di Magento, abbiamo bisogno del compositore PHP.
- Installa php composer
Vai alla directory principale, scarica il file di installazione del compositore con curl ed eseguilo per installare il compositore.
cd ~/
curl -sS https://getcomposer.org/installer | php
Sposta il file "composer.phar" nella directory bin del tuo server e rinominalo in composer in modo che possa essere eseguito facilmente:
mv composer.phar /usr/bin/composer
Ora verifica che il comando del compositore funzioni:
composer -v
- Scarica ed estrai Magento 2
Vai alla directory web '/var/www/' e scarica Magento dal suo repository Github, quindi decomprimi il file tar.gz scaricato:
cd /var/www/
wget https://github.com/magento/magento2/archive/2.0.7.tar.gz
tar -xzvf 2.0.7.tar.gz
mv magento2-2.0.7/ magento2/
Fatto.
- Configura la chiave Magento
Registra un account sul sito web Magento repo.magento.com. Questo account è necessario per utilizzare Magento e il negozio del compositore Magento. Dopo esserti registrato, vai alla scheda 'Il mio account> Sviluppatore> Chiave di sicurezza s', quindi genera le tue chiavi.
- Installa componenti di terze parti per Magento
Vai alla directory di installazione di Magento 2 '/var/www/magento2' ed esegui il comando del compositore:
cd /var/www/magento2/
composer install -v
Ti verrà richiesta l'autenticazione Magento, utilizza la chiave pubblica come nome utente e la chiave privata per la password.
- Configura Nginx Virtualhost
Magento offre una configurazione di host virtuale Nginx già pronta, quindi dobbiamo solo includerla nella nostra configurazione.
Vai alla directory dell'host virtuale Nginx e crea un nuovo file chiamato magento:
cd /etc/nginx/sites-available/
vim magento
Incolla la configurazione di seguito:
upstream fastcgi_backend {
server unix:/run/php/php7.0-fpm.sock;
}
server {
listen 80;
server_name www.newmagento.com;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}
Sostituisci www.newmagento.com con il nome di dominio del sito web che il tuo negozio utilizzerà.
Salva ed esci.
Ora attiva l'host virtuale e riavvia Nginx:
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
systemctl restart nginx
- Installa Magento
Installeremo magento sulla riga di comando. Nella directory Magento '/var/www/magento2/' c'è un file binario con il nome 'magento' che viene usato per installare e gestire Magento. Esegui il comando:
bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password="[email protected]" \
--language="en_US" \
--currency="USD" \
--timezone="America/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://www.newmagento.com" \
--base-url-secure="https://www.newmagento.com" \
--admin-user=adminuser \
[email protected] \
[email protected] \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database
backend-frontname =la pagina di amministrazione del nostro sito magento, usiamo 'adminlogin '.
Chiave =le nostre chiavi magento, possiamo generarle o trovarle casuali su http://randomkeygen.com/.
Base-url =assicurati che sia lo stesso con la configurazione dell'host virtuale.
Al termine della procedura di installazione dovresti vedere queste righe:
[SUCCESS]: Magento installation complete. [SUCCESS]: Magento Admin URI: /adminlogin
Prima di testare l'installazione di Magento, assicurati che il proprietario della directory web sia 'www-data ', quindi riavvia nginx.
cd /var/www/magento2/
chmod 700 /var/www/magento2/app/etc
chown -R www-data:www-data .
systemctl restart nginx
Ora apri il dominio Magento nel tuo browser:
Nel mio caso, il nome di dominio è:www.newmagento.com .
Prova ad accedere alla dashboard di amministrazione di Magento:
www.newmagento.com/adminlogin
Nota :
Se ricevi un errore su un cronjob dell'indicizzatore Magento mancante, puoi risolverlo aggiungendo il seguente cronjob al tuo server:
crontab -u www-data -e
Aggiungi le seguenti righe:
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log * * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log * * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log
Salva ed esci.
Magento 2 con Nginx e PHP-FPM 7 su Ubuntu 16.04 è ora installato.
Conclusione
Magento è una piattaforma di e-commerce open source basata su PHP Zend Framework. È un complesso software di e-commerce per aiutarti con il tuo business online. Magento utilizza un'architettura MVC (Model-View-Controller) e MySQL o MariaDB come database. Magento è facile da installare, possiamo installarlo con il web server Nginx o Apache. Magento è diventato uno dei software di e-commerce più popolari su Internet ed è utilizzato da molti siti Web di negozi di successo in tutto il mondo.