Magento è una piattaforma di e-commerce di classe enterprise leader basata su tecnologia open source che combina potenti funzionalità con flessibilità e interfaccia user-friendly.
Con funzionalità come esperienze di acquisto coinvolgenti, architettura modulare flessibile e scalabilità e prestazioni di livello aziendale, Magento è una piattaforma preferita dalla maggior parte dei commercianti online.
Questo è il primo post della serie Come installare e configurare Magento 2 su CentOS 7. In questo tutorial, ti guideremo attraverso i passaggi per installare Magento 2 sul tuo computer CentOS 7.
Prerequisiti #
Come prerequisiti per seguire questo tutorial, avrai bisogno di:
- Server CentOS 7, secondo i requisiti di sistema ufficiali di Magento 2 sono necessari almeno 2G di RAM. Se stai utilizzando un server con meno di 2 GB di RAM, dovresti creare un file di scambio.
- Acceduto come account utente con privilegi sudo.
- Un nome di dominio che punta all'IP del tuo server pubblico. In questo tutorial utilizzeremo
example.com
. - Installato e configurato Nginx, MySQL e PHP 7.1. In caso contrario, fare riferimento alla nostra guida LEMP su CentOS 7.
- Un certificato SSL valido. Se non ne hai uno, puoi creare un certificato SSL Let's Encrypt gratuito seguendo Secure Nginx con Let's Encrypt su CentOS 7.
Coppia di chiavi di accesso Magento #
Dobbiamo generare chiavi di accesso per autenticare l'accesso al repository di codice Magento 2 e estensioni e temi di terze parti.
Se non hai un account Magento Marketplace, puoi crearne uno qui. Una volta creato l'account, controlla queste istruzioni su come generare un nuovo set di chiavi di accesso.
Crea database MySQL #
Magento 2 è compatibile con MySQL 5.6 e 5.7, MariaDB 10.x e Percona 5.7. Se non hai MySQL o MariaDB installati sul tuo server puoi consultare questa guida.
Accedi alla shell MySQL:
mysql -u root -p
Ed eseguire i seguenti comandi per creare un nuovo database e utente e concedere privilegi a quell'utente sul database appena creato:
CREATE DATABASE magento;
GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'P4ssvv0rD';
Installa estensioni PHP #
Assumiamo che tu abbia già abilitato il repository Remi PHP 7.1 utilizzando la nostra guida.
Installa tutte le estensioni PHP richieste con il seguente comando:
sudo yum install php-mysql php-opcache php-xml php-mcrypt php-gd php-soap php-redis php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip
Una volta completata l'installazione, imposta le opzioni PHP richieste e consigliate modificando il php.ini
file con sed
:
sudo sed -i "s/memory_limit = .*/memory_limit = 756M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php.d/10-opcache.ini
Installa Composer #
Composer è un gestore delle dipendenze per PHP utilizzato per l'installazione, l'aggiornamento e la gestione delle librerie.
Per installare composerglobally, scarica il programma di installazione di Composer con curl
e sposta il file in /usr/local/bin
directory:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Crea un nuovo utente di sistema #
Crea un nuovo utente e gruppo, che eseguirà la nostra installazione di Magento, per semplicità chiameremo il nostro utente magento
:
sudo useradd -m -U -r -d /opt/magento magento
Aggiungi nginx
utente al magento
raggruppa e cambia il /opt/magento
permessi di directory in modo che Nginx possa accedere alla nostra installazione di Magento:
sudo usermod -a -G magento nginx
sudo chmod 750 /opt/magento
Configura FPM PHP #
Successivamente, dobbiamo configurare PHP e creare un pool FPM per il nostro magento
utente.
Apri il tuo editor di testo e crea il seguente file:
/etc/php-fpm.d/magento.conf[magento]
user = magento
group = nginx
listen.owner = magento
listen.group = nginx
listen = /run/php-fpm/magento.sock
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /
Salva il file e riavvia il servizio PHP FPM per rendere effettive le modifiche:
sudo systemctl restart php-fpm
Installa Magento #
Esistono diversi modi per installare Magento. Evita di installare Magento dal repository Github perché quella versione è destinata allo sviluppo e non alle installazioni di produzione. In questo tutorial, installeremo Magento dai loro repository usando il compositore.
Passa all'utentemagento
:
sudo su - magento
Avvia l'installazione scaricando i file magento in /opt/magento/public_html
directory:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html
Durante la creazione del progetto, il compositore ti chiederà di inserire le chiavi di accesso, copiare le chiavi dal tuo account del marketplace Magento e salvarle nel auth.json
file, quindi in seguito, quando aggiorni l'installazione, non devi aggiungere di nuovo le stesse chiavi.
Authentication required (repo.magento.com):
Username: e758ec1745d190520ca246e4e832e12c
Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn]
Una volta creato il progetto, possiamo avviare l'installazione. Possiamo installare Magento utilizzando la riga di comando o utilizzando l'installazione guidata web. In questo tutorial installeremo Magento usando la riga di comando.
Utilizzeremo le seguenti opzioni per installare il nostro negozio Magento:
- Gli URL di base e di sicurezza di base sono impostati su
https://example.com
, cambialo con il tuo dominio. - Amministratore Magento:
John
Doe
come nome e cognome.[email protected]
come e-mail.john
come nome utente ej0hnP4ssvv0rD
come password.
- Nome database
magento
, nome utentemagento
, passwordP4ssvv0rD
e il server del database si trova sullo stesso host del server Web. en_US
, inglese americano come lingua predefinita.USD
dollari come valuta predefinita.America/Chicago
come fuso orario.
Passa a Magento ~/public_html
directory:
cd ~/public_html
Eseguire il comando seguente per avviare l'installazione:
php bin/magento setup:install --base-url=https://example.com/ \
--base-url-secure=https://example.com/ \
--admin-firstname="John" \
--admin-lastname="Doe" \
--admin-email="[email protected]" \
--admin-user="john" \
--admin-password="j0hnP4ssvv0rD" \
--db-name="magento" \
--db-host="localhost" \
--db-user="magento" \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--db-password="P4ssvv0rD"
Non dimenticare di cambiare la password (j0hnP4ssvv0rD
) a qualcosa di più sicuro. Se l'installazione ha esito positivo, ti verrà presentato un messaggio che contiene l'URI della dashboard dell'amministratore di Magento.
[Progress: 485 / 485]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1csalp
Nothing to import.
Crea il crontab Magento #
Magento utilizza i lavori cron per pianificare attività come reindicizzazione, notifiche, mappe del sito, e-mail e altro.
Per creare il crontab Magento esegui il seguente comando come magento
utente:
php ~/public_html/bin/magento cron:install
Possiamo verificare che crontab sia installato eseguendo:
crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d
Configura Nginx #
Se hai seguito la nostra guida LEMP su CentOS 7 dovresti già avere Nginx installato sulla tua macchina. Ora dobbiamo solo creare un nuovo blocco server per la nostra installazione di Magento. Includeremo la configurazione Nginx predefinita fornita con magento:
/etc/nginx/conf.d/example.com.confupstream fastcgi_backend {
server unix:/run/php-fpm/magento.sock;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
set $MAGE_ROOT /opt/magento/public_html;
set $MAGE_MODE developer; # or production
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
include /opt/magento/public_html/nginx.conf.sample;
}
Ricarica il servizio Nginx per rendere effettive le modifiche:
sudo systemctl reload nginx
Infine, dovresti essere in grado di accedere alla tua installazione di Magento su https://example.com/admin_1csalp
utilizzando l'utente amministratore specificato durante l'esecuzione del programma di installazione di Magento.