GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Magento 2 su Ubuntu 18.04

Magento è la piattaforma di e-commerce di classe enterprise leader nella 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.

In questo tutorial, ti mostreremo come installare Magento 2.3 su una macchina Ubuntu 18.04. Useremo Nginx come server web, l'ultimo PHP 7.2 e MySQL/MariaDB come server di database.

Prerequisiti #

Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:

  • Disponi di un nome di dominio che punta all'IP del tuo server pubblico. Useremo example.com .
  • Nginx viene installato sul tuo server Ubuntu seguendo queste istruzioni.
  • Un certificato SSL installato per il tuo dominio per crittografare le informazioni dell'utente. Puoi installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.

Per poter accedere al repository di codice Magento 2 dovrai generare chiavi di autenticazione. 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 autenticazione.

Aggiorna i pacchetti di sistema alle versioni più recenti e installa l'utilità di decompressione:

sudo apt update && sudo apt upgradesudo apt install unzip

Creazione del database MySQL #

Se hai MySQL o MariaDB installato sul tuo server puoi saltare questo passaggio, in caso contrario puoi installare il pacchetto del server MySQL 5.7 dai repository predefiniti di Ubuntu digitando:

sudo apt install mysql-server mysql-client
Per nuove installazioni MySQL, si consiglia di eseguire mysql_secure_installation comando per migliorare la sicurezza del tuo server MySQL.

Accedi alla shell MySQL usando il seguente comando:

sudo mysql

Dall'interno della shell MySQL, esegui la seguente istruzione SQL per creare un nuovo database denominato magento :

CREATE DATABASE magento;

Quindi, crea un account utente MySQL chiamato magento e concedere le autorizzazioni necessarie all'utente eseguendo il comando seguente:

GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Assicurati di modificare change-with-strong-password con una password complessa.

Al termine, esci dalla console MySQL digitando:

EXIT;

Creazione utente di sistema #

Crea un nuovo utente e gruppo, che sarà proprietario del file system Magento, per semplicità chiameremo l'utente magento :

sudo useradd -m -U -r -d /opt/magento magento

Aggiungi i www-data utente al magento raggruppare e modificare il /opt/magento permessi di directory in modo che Nginx possa accedere all'installazione di Magento:

sudo usermod -a -G magento www-datasudo chmod 750 /opt/magento

Installazione e configurazione di PHP #

PHP 7.2, che è la versione PHP predefinita in Ubuntu 18.04, è completamente supportato e consigliato per Magento 2.3. Poiché utilizzeremo Nginx come server web, installeremo anche il pacchetto PHP-FPM.

Esegui il comando seguente per installare PHP e tutti i moduli PHP richiesti:

sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

Il servizio PHP-FPM si avvierà automaticamente al termine del processo di installazione, puoi verificarlo stampando lo stato del servizio:

sudo systemctl status php7.2-fpm

L'output dovrebbe indicare che il servizio fpm è attivo e in esecuzione.

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-12-12 15:47:16 UTC; 5s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 16814 (php-fpm7.2)
   Status: "Ready to handle connections"
    Tasks: 3 (limit: 505)
   CGroup: /system.slice/php7.2-fpm.service

Imposta le opzioni PHP richieste e consigliate modificando il php.ini file con sed ::

sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

Quindi dobbiamo creare un pool FPM per magento utente.

Apri il tuo editor di testo e crea il seguente file:

sudo nano /etc/php/7.2/fpm/pool.d/magento.conf
/etc/php/7.2/fpm/pool.d/magento.conf
[magento]
user = magento
group = www-data
listen.owner = magento
listen.group = www-data
listen = /var/run/php/php7.2-fpm-magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

Riavvia il servizio PHP-FPM per rendere effettive le modifiche:

systemctl restart php7.2-fpm

Verifica se il socket PHP è stato creato correttamente eseguendo il seguente comando ls:

ls -al /var/run/php/php7.2-fpm-magento.sock

L'output dovrebbe essere simile a questo:

srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=

Installazione del compositore #

Composer è un gestore delle dipendenze per PHP e lo useremo per scaricare il core Magento e installare tutti i componenti Magento necessari.

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 | sudo php -- --install-dir=/usr/local/bin --filename=composer

Verifica l'installazione stampando la versione del compositore:

composer --version

L'output dovrebbe essere simile a questo:

Composer version 1.8.0 2018-12-03 10:31:16

Installazione di Magento #

Esistono diversi modi per installare Magento 2. Evita di installare Magento dal repository Github perché quella versione è destinata allo sviluppo e non alle installazioni di produzione.

Al momento della stesura di questo articolo, l'ultima versione stabile di Magento è la versione 2.3.0 . In questo tutorial, installeremo Magento dai loro repository usando il compositore.

Passa all'utentemagento digitando:

sudo su - magento

Avvia l'installazione scaricando i file magento nella directory /opt/magento/public_html:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html

Ti verrà chiesto 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: e758ec1745d190320ca246e4e832e12c
      Password: 
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y

Il comando sopra recupererà tutti i pacchetti PHP richiesti. Il processo potrebbe richiedere alcuni minuti e, se ha esito positivo, la fine dell'output dovrebbe essere simile alla seguente:

Writing lock file
Generating autoload files

Una volta creato il progetto, possiamo avviare l'installazione di Magento. Possiamo installare Magento sia dalla riga di comando che utilizzando l'Installazione guidata web. In questo tutorial installeremo Magento usando la riga di comando.

Useremo le seguenti opzioni per installare il 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 e j0hnP4ssvv0rD come password.
  • Nome database magento , nome utente magento , password change-with-strong-password e il server di 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.
Puoi trovare tutte le opzioni di installazione qui.

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="change-with-strong-password"
Non dimenticare di cambiare la password (j0hnP4ssvv0rD ) a qualcosa di più sicuro.

Il processo potrebbe richiedere alcuni minuti e una volta completato ti verrà presentato un messaggio che contiene l'URI alla dashboard dell'amministratore di Magento.

[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.

Creazione di Magento crontab #

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
Crontab has been generated and saved

Verifica che crontab sia installato digitando:

crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php7.2 /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/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d

Configurazione di Nginx #

A questo punto dovresti già avere Nginx con certificato SSL installato sul tuo server Ubuntu, in caso contrario controlla i prerequisiti per questo tutorial.

Includeremo la configurazione Nginx predefinita fornita con Magento.

Passa al tuo utente sudo, apri il tuo editor di testo e crea il seguente file:

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
upstream fastcgi_backend {
  server   unix:/var/run/php/php7.2-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;
    include snippets/letsencrypt.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;
    include snippets/letsencrypt.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;
}
Non dimenticare di sostituire example.com con il tuo dominio Magento e impostare il percorso corretto per i file del certificato SSL. Gli snippet utilizzati in questa configurazione vengono creati in questa guida.

Prima di riavviare il servizio Nginx fai un test per assicurarti che non ci siano errori di sintassi:

sudo nginx -t

Se non ci sono errori, l'output dovrebbe essere simile a questo:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia il servizio Nginx digitando:

sudo systemctl restart nginx

Verifica dell'installazione #

Apri il browser, digita il tuo dominio e supponendo che l'installazione sia riuscita, apparirà una schermata simile alla seguente:

Ora puoi andare all'URI di amministrazione di Magento, accedere come utente amministratore e iniziare a personalizzare la tua nuova installazione di Magento.


Ubuntu
  1. Come installare PHP 7.4 / 7.3 / 7.2 su Ubuntu 18.04 / Ubuntu 16.04

  2. Come installare Magento2 su Ubuntu 16.04

  3. Come installare PHP 7 su Ubuntu 14.04

  4. Come installare PHP 7 su Ubuntu 15.04

  5. Come installare Magento su Ubuntu 18.04

Come installare Magento su Ubuntu 15.10

Come installare Magento su Ubuntu 16.04 LTS

Come installare Magento su Ubuntu 18.04 LTS

Come installare OwnCloud su Ubuntu 18.04

Come installare Joomla su Ubuntu 18.04

Come installare Magento su Ubuntu 20.04