Magento è un sistema di gestione dei contenuti gratuito e open source costruito in PHP, framework Zend e database MySQL. È un'applicazione web di eCommerce molto popolare che funziona su molte applicazioni open source come Apache, MySQL e molte altre. Magento viene fornito con molti moduli integrati che vengono utilizzati per aggiungere più funzionalità.
Varnish Cache è un potente acceleratore di applicazioni Web open source noto anche come proxy inverso HTTP con memorizzazione nella cache. Viene utilizzato per velocizzare il tuo sito web memorizzando nella cache una copia di una pagina web la prima volta che un utente visita. Magento e vernice è una combinazione nota per aumentare significativamente le prestazioni del sito. La vernice è integrata per impostazione predefinita in Magento 2. Dovrai solo apportare alcune modifiche alla configurazione per farlo funzionare.
In questo tutorial impareremo come installare Magento 2 con Varnish come cache a pagina intera sul server Ubuntu 16.04.
Requisiti
- Un server che esegue Ubuntu 16.04.
- Apache, PHP e MariaDB.
- Un utente non root con privilegi sudo impostati sul tuo server.
1 Per iniziare
Prima di iniziare, si consiglia di aggiornare il sistema con l'ultimo pacchetto eseguendo il comando seguente:
sudo apt-get update -y
sudo apt-get upgrade -y
Una volta che il tuo sistema è aggiornato, riavvia il sistema e accedi con l'utente sudo.
2 Installa il server LAMP
Magento non funzionerà senza installare lo stack LAMP (Apache, PHP, MariaDB). Innanzitutto, installa il server Web Apache e Paint eseguendo il seguente comando:
sudo apt-get install apache2 varnish -y
Dopo aver installato Apache, avvia il servizio Apache e abilitalo all'avvio all'avvio eseguendo il comando seguente:
sudo systemctl start apache2
sudo systemctl enable apache2
Magento è scritto in linguaggio PHP, quindi devi anche installare PHP con tutte le librerie sul tuo sistema. Puoi installarli tutti eseguendo il seguente comando:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl php7.0-curl php7.0-zip php7.0-gd php7.0-soap php7.0-xml -y
Dopo aver installato PHP insieme a tutte le librerie richieste, dovrai modificare alcune impostazioni PHP predefinite. Puoi farlo modificando il file php.ini:
sudo nano /etc/php/7.0/cli/php.ini
Modifica le seguenti righe:
memory_limit = 512 upload_max_filesize = 128M zlib.output_compression = on max_execution_time = 15000
Salva e chiudi il file quando hai finito.
3 Installa e configura MariaDB
Magento usa MariaDB come database. Quindi dovrai installarlo sul tuo server. Puoi installarlo semplicemente eseguendo il seguente comando:
sudo apt-get install mariadb-server -y
Dopo aver installato MariaDB, avvia il servizio MariaDB e abilitalo all'avvio all'avvio eseguendo il comando seguente:
sudo systemctl start mysql
sudo systemctl enable mysql
Per impostazione predefinita, MariaDB non è protetto, quindi dovrai proteggerlo. Puoi proteggerlo eseguendo il seguente comando:
sudo mysql_secure_installation
Rispondi a tutte le domande come mostrato di seguito:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have a root password set, so you can safely answer 'n'. Change the root password? [Y/n] n ... skipping. By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB 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? [Y/n] 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? [Y/n] Y ... Success! By default, MariaDB 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? [Y/n] 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? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Quindi, accedi alla shell di MariaDB con il seguente comando:
mysql -u root -p
Inserisci la tua password di root quando richiesto, quindi crea un database per Magento con il seguente comando:
MariaDB [(none)]>CREATE DATABASE magento_db;
Dopo aver creato il database per Magento, crea un nome utente e una password con il seguente comando:
MariaDB [(none)]>CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';
Quindi, concedi i privilegi al database Magento con il seguente comando:
MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';
Quindi, esegui il comando FLUSH PRIVILEGES ricarica i privilegi:
MariaDB [(none)]>FLUSH PRIVILEGES;
Infine, esci dalla console di MariaDB con il seguente comando:
MariaDB [(none)]>\q
4 Scarica Magento
Innanzitutto, dovrai scaricare l'ultima versione di Magento dal loro sito Web ufficiale.
Dopo aver scaricato Magento, estrai il file zip scaricato nella directory principale di Apache Web con il seguente comando:
sudo mkdir /var/www/html/magento/
sudo unzip magento2-develop.zip -d /var/www/html/magento
Quindi, cambia la proprietà della directory magento e dai il permesso appropriato:
sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 777 /var/www/html/magento
Successivamente, dovrai installare Composer sul tuo sistema. Composer è un gestore delle dipendenze utilizzato per installare tutte le dipendenze PHP richieste. Puoi scaricare e installare Composer binary con il seguente comando:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer
Quindi, esegui il comando composer per installare tutte le dipendenze richieste da Magento:
cd /var/www/html/magento
sudo composer install
Una volta installate tutte le dipendenze, puoi procedere alla configurazione di Apache per Magento.
5 Configura Apache per Magento
Successivamente, dovrai creare un file host virtuale Apache per Magento. Crea un nuovo file di configurazione di Apache chiamato magento.conf con il seguente comando:
sudo nano /etc/apache2/sites-available/magento.conf
Aggiungi le seguenti righe:
<VirtualHost *:8080> ServerAdmin [email protected] DocumentRoot /var/www/html/magento ServerName 192.168.15.189 ServerAlias www.example.com <Directory "/var/www/html/magento/"> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/magento-error_log CustomLog /var/log/apache2/magento-access_log common </VirtualHost>
Salva il file, quindi abilita il tuo host virtuale con il modulo di riscrittura di Apache il seguente comando:
sudo a2ensite magento
sudo a2enmod rewrite
Successivamente, dovrai anche cambiare la porta di ascolto di Apache da 80 a 8080. Perché riserveremo la porta 80 per la vernice. Per farlo, apri il file ports.conf:
sudo nano /etc/apache2/ports.conf
Modifica il file come mostrato di seguito:
Listen 8080
Infine, riavvia il servizio Apache per applicare queste modifiche con il seguente comando:
sudo systemctl restart apache2
6 Accedi alla procedura guidata di installazione di Magento Web
Magento è ora installato, ora è il momento di installare Magento tramite browser web.
Per farlo, apri il tuo browser web e digita l'URL http://192.168.15.189:8080, dovresti vedere la seguente pagina:
Ora, accetta Termini e condizioni, quindi fai clic sul pulsante "Accetta e imposta Magento", dovresti vedere la seguente pagina:
Controlla tutta la Prontezza e fai clic sul pulsante "Avanti", dovresti vedere la seguente pagina:
Fornisci i dettagli del tuo database, come il nome del database, il nome utente del database e la password, quindi fai clic sul pulsante "Avanti", dovresti vedere la seguente pagina:
Fornisci i dettagli del tuo sito web e fai clic sul pulsante "Avanti", dovresti vedere la seguente pagina:
Personalizza Magento secondo le tue necessità e fai clic sul pulsante "Avanti", dovresti vedere la seguente pagina:
Fornisci i dettagli dell'utente amministratore e fai clic sul pulsante "Avanti", dovresti vedere la seguente pagina:
Ora, fai clic sul pulsante "Installa ora" per avviare l'installazione di Magento. Una volta completata l'installazione dovresti vedere la seguente pagina:
Nota:ricorda il tuo URL di amministratore Magento:http://192.168.15.189/admin_wczta4. Questo verrà utilizzato per accedere all'amministratore di Magento.
Ora, fai clic sul pulsante "Avvia Magento Admin", dovresti vedere la pagina di accesso di Magento come di seguito:
Fornisci le tue credenziali di amministratore Magento e fai clic sul pulsante "Accedi", dovresti vedere la dashboard Magent-o come di seguito:
Dalla dashboard di Magento Admin fai clic sul pulsante STORES (a sinistra)> Configurazione> AVANZATO> Sistema> Cache a pagina intera , quindi Deseleziona usa il valore di sistema e seleziona Varnish Cache dall'elenco Caching Application, salva la configurazione, fai clic sul collegamento Varnish Configuration e fai clic sul pulsante Export VCL for Varnish 4 (questo esporterà il file paint.vcl in /var/www /html/magento/var directory) come mostrato di seguito:
Infine, svuota la cache di Magento con il seguente comando:
cd /var/www/html/magento
sudo php bin/magento cache:flush
Una volta terminato, puoi procedere con la configurazione della vernice.
6 Configura vernice
Magento è ora installato e configurato. È ora di configurare la vernice.
Innanzitutto, elimina il file /etc/varnish/default.vcl e crea un collegamento simbolico dalla configurazione di vernice esportata:
sudo rm -rf /etc/varnish/default.vcl
sudo ln -s /var/www/html/magento/var/varnish.vcl /etc/varnish/default.vcl
Successivamente, dovrai creare un file di servizio systemd per Paint. Puoi farlo copiando paint.service da /lib/systemd/system/ nella directory /etc/systemd/system/:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
Dopo aver copiato questo file, dovrai apportare alcune modifiche al file paint.service:
sudo nano /etc/systemd/system/varnish.service
Apporta le seguenti modifiche:
[Unit] Description=Varnish HTTP accelerator Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd [Service] Type=simple LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m ExecReload=/usr/share/varnish/reload-vcl ProtectSystem=full ProtectHome=true PrivateTmp=true PrivateDevices=true [Install] WantedBy=multi-user.target
Salva il file al termine, quindi riavvia il servizio di vernice con il seguente comando:
sudo systemctl daemon-reload
sudo systemctl reload varnish.service
Se tutto funziona correttamente, dovresti essere in grado di accedere al tuo back-end Magento digitando il seguente URL sul tuo browser web:
http://192.168.15.189/admin_wczta4
Puoi anche verificare se la vernice è abilitata o meno eseguendo il comando seguente:
curl -I http://192.168.15.189/admin_wczta4
Dovresti vedere che la vernice è abilitata:
Date: Fri, 07 Jul 2017 17:10:01 GMT Server: Apache/2.4.18 (Ubuntu) Set-Cookie: store=default; expires=Sat, 07-Jul-2018 17:10:03 GMT; Max-Age=31536000; path=/; HttpOnly Set-Cookie: PHPSESSID=irp2k8cmrhct0dfh18qk7ap0i4; expires=Fri, 07-Jul-2017 18:10:04 GMT; Max-Age=3600; path=/; domain=192.168.15.189; HttpOnly Expires: Thu, 07 Jul 2016 17:10:04 GMT Cache-Control: max-age=0, must-revalidate, no-cache, no-store Pragma: no-cache Location: http://192.168.15.189/admin_wczta4/?SID=irp2k8cmrhct0dfh18qk7ap0i4 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Content-Length: 0 Content-Type: text/html; charset=UTF-8 X-Varnish: 2 Age: 0 Via: 1.1 varnish-v4 Connection: keep-alive
Congratulazioni! hai configurato correttamente Magento con Varnish sul server Ubuntu 16.04.