GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Zen Cart su Debian 9

Zen Cart è una piattaforma gratuita per la gestione dei contenuti di e-commerce e il carrello degli acquisti. Il software è scritto in linguaggio di programmazione PHP e spesso installato su Linux sotto server Web Apache/Nginx, sistema di gestione di database PHP e MySQL/MariaDB, noto anche come stack LAMP o LEMP. La soluzione di e-commerce Zen Cart viene utilizzata per creare facilmente negozi online per diverse attività e pubblicizzare e vendere servizi e merce.

In questa guida ti mostrerò come installare e configurare l'ultima versione di Zen Cart su Debian 9, in modo da creare un negozio di shopping online gratuito.

Requisiti

  • Installazione minima del server Debian 9 su una macchina bare-metal o su un server privato virtuale
  • Un indirizzo IP statico configurato per una delle schede delle interfacce di rete del tuo sistema
  • privilegi sudo di root per un account locale o remoto o accesso diretto all'account di root
  • Un nome di dominio, privato o pubblico, a seconda della distribuzione, con i record DNS appropriati configurati per i servizi Web. Se non possiedi un nome a dominio valido o registrato puoi eseguire l'installazione e accedere al sito tramite l'indirizzo IP del tuo server
  • Se desideri utilizzare la registrazione al sito Web, la moderazione dei commenti e altre funzionalità, dovresti disporre di un server di posta funzionante correttamente configurato presso la tua sede con accesso remoto ai suoi servizi IMAP e SMTP.

Prerequisiti

Prima di iniziare a installare e configurare Zen Cart dai sorgenti nel tuo server, assicurati innanzitutto che il sistema soddisfi tutti i requisiti software per la compilazione e l'installazione dell'applicazione. Nel primo passaggio, aggiorna i repository di sistema e i pacchetti software eseguendo il comando seguente.

apt update
apt update

Quindi, imposta il nome per il sistema eseguendo il seguente comando (sostituisci la variabile nome host di conseguenza).

hostnamectl set-hostname zencart

Verifica il nome host della macchina e il file host emettendo i seguenti comandi.

hostnamectl 
cat /etc/hostname 
hostname –s
hostname –f

Nel passaggio successivo, esegui il comando seguente per installare alcune utilità necessarie che verranno utilizzate per gestire ulteriormente il tuo sistema dalla riga di comando.

apt install wget bash-completion zip unzip curl

  Infine, riavvia il server Debian per applicare gli aggiornamenti del kernel e il nome host cambia correttamente.

systemctl reboot

Installa Apache e PHP

Zen Cart è una piattaforma di e-commerce CMS basata sul Web scritta principalmente in linguaggio di programmazione lato server PHP. Per eseguire gli script di file PHP dell'applicazione, è necessario che nel sistema siano installati e operativi un server Web, come il server HTTP Apache, e un gateway di elaborazione PHP. Per installare il server Web Apache e l'interprete PHP insieme a tutti i moduli PHP necessari per il corretto funzionamento dell'applicazione, immetti il ​​seguente comando nella console del tuo server.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml

Dopo aver installato Apache e PHP, verifica se il server web è attivo e funzionante e in attesa di connessioni di rete sulla porta 80 eseguendo il comando seguente con privilegi di root.

netstat –tlpn

Nel caso in cui l'utilità di rete netstat non sia installata per impostazione predefinita nel sistema Debian, eseguire il comando seguente per installarla.

apt install net-tools

Esaminando l'output del comando netstat puoi vedere che il server web Apache sta ascoltando le connessioni di rete in entrata sulla porta 80. Per lo stesso compito puoi anche usare il comando ss, che è installato automaticamente per impostazione predefinita in Debian 9.

ss- tulpn

Configura il firewall

Nel caso in cui tu abbia un firewall abilitato nel tuo sistema, come l'applicazione firewall UFW, dovresti aggiungere una nuova regola per consentire al traffico HTTP di passare attraverso il firewall emettendo il seguente comando.

ufw allow WWW

o

ufw allow 80/tcp

Se stai utilizzando le regole grezze di iptables per gestire le regole del firewall nel tuo server Debian, aggiungi la seguente regola per consentire il traffico in entrata sulla porta 80 sul firewall in modo che i visitatori possano navigare nel negozio online.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save 
systemctl iptables-persistent reload

Configura Apache e SSL/TLS

Quindi, abilita e applica i seguenti moduli Apache richiesti dall'applicazione di e-commerce per funzionare correttamente, eseguendo il comando seguente.

a2enmod rewrite expires env alias deflate mime
systemctl restart apache2

Infine, verifica se la pagina Web predefinita del server Web Apache può essere visualizzata nei browser del tuo client visitando l'indirizzo IP della tua macchina Debian o il tuo nome di dominio o FQDN del server tramite il protocollo HTTP, come mostrato nell'immagine seguente. Se non conosci l'indirizzo IP della tua macchina, esegui i comandi ifconfig o 'ip a' per rivelare l'indirizzo IP del tuo server.

http://tuodominio.tld

Per installare e accedere al pannello di amministrazione Web di Zen Cart supportato e al sito Web frontend tramite il protocollo HTTPS che proteggerà il traffico per i tuoi client, emetti il ​​seguente comando per abilitare il modulo SSL del server Web Apache e il file di configurazione del sito SSL.

a2enmod ssl 
a2ensite default-ssl.conf

Quindi, apri il file di configurazione del sito SSL predefinito di Apache con un editor di testo e abilita le regole di riscrittura degli URL aggiungendo le seguenti righe di codice dopo la direttiva DocumentRoot, come mostrato nell'esempio seguente:

nano /etc/apache2/sites-enabled/default-ssl.conf

Estratto del file di configurazione del sito SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Inoltre, apporta la seguente modifica alla linea VirtualHost per apparire come mostrato nel seguente estratto:

<VirtualHost *:443>

Chiudere il file Apache SSL e aprire il file /etc/apache2/sites-enabled/000-default.conf per la modifica e aggiungere le stesse regole di riscrittura URL del file di configurazione SSL. Inserisci le righe di codice dopo l'istruzione DocumentRoot come mostrato nell'esempio seguente.

 <Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Infine, riavvia il demone Apache per applicare tutte le regole configurate finora e visita il tuo dominio tramite protocollo HTTP. Poiché stai utilizzando le coppie di certificati autofirmati automaticamente emessi da Apache al momento dell'installazione, nel browser dovrebbe essere visualizzato un avviso di errore.

systemctl restart apache2

https://tuodominio.tld

Accettare l'avviso relativo al certificato non attendibile per continuare ed essere reindirizzati alla pagina Web predefinita di Apache.

Nel caso in cui l'applicazione firewall UFW blocchi le connessioni di rete in entrata alla porta HTTPS, dovresti aggiungere una nuova regola per consentire al traffico HTTPS di passare attraverso il firewall eseguendo il comando seguente.

ufw allow 'WWW Full'

o

ufw allow 443/tcp

Se iptables è l'applicazione firewall predefinita installata per proteggere il tuo sistema Debian a livello di rete, aggiungi la seguente regola per consentire il traffico in entrata sulla porta 443 nel firewall in modo che i visitatori possano esplorare il tuo nome di dominio.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save 
systemctl iptables-persistent reload

Nel passaggio successivo, è necessario apportare ulteriori modifiche al file di configurazione predefinito di PHP per garantire che le seguenti variabili PHP siano abilitate e che l'impostazione del fuso orario PHP sia configurata correttamente e corrisponda alla posizione geografica del sistema. Aprire il file /etc/php/7.0/apache2/php.ini per la modifica e assicurarsi che le seguenti righe siano impostate come segue. Inoltre, inizialmente, fai un backup del file di configurazione PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Cerca, modifica e cambia le seguenti variabili in php.ini file di configurazione:

file_uploads = On
memory_limit = 128 M
upload_max_file_size = 64M
post_max_size = 64M
date.timezone = Europe/London

Aumenta le variabili post_max_size e upload_max_file_size in modo che siano adatte a supportare file allegati di grandi dimensioni e sostituisci la variabile time.zone in base al tuo tempo fisico consultando l'elenco dei fusi orari fornito dai documenti PHP al seguente link http://php.net/manual/en /timezones.php

Se desideri aumentare la velocità di caricamento delle pagine del tuo sito Web tramite il plug-in OPCache disponibile per PHP7, aggiungi le seguenti impostazioni OPCache nella parte inferiore del file di configurazione dell'interprete PHP, come dettagliato di seguito:

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Chiudi il file di configurazione php.ini e verifica la fine del file di configurazione PHP per verificare se le variabili sono state aggiunte correttamente eseguendo il comando seguente.

tail /etc/php/7.0/apache2/php.ini

Dopo aver apportato tutte le modifiche spiegate sopra, riavvia il demone apache per applicare le nuove modifiche eseguendo il comando seguente.

systemctl restart apache2

Infine, crea un file di informazioni PHP eseguendo il comando seguente e controlla se il fuso orario PHP è stato configurato correttamente visitando il file di script di informazioni PHP da un browser al seguente URL, come illustrato nell'immagine seguente. Scorri verso il basso fino all'impostazione della data per controllare la configurazione del fuso orario php.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://tuodominio.tld/info.php

L'applicazione web e-commerce Zen Cart memorizza diverse configurazioni, come utenti, sessioni, contatti, prodotti, cataloghi e altro, in un database RDBMS. In questa guida, configureremo l'applicazione Zen Cart per utilizzare il database MariaDB come backend. Emettere il seguente comando per installare il database MariaDB e il modulo PHP necessario per accedere al database mysql.

apt install mariadb-server mariadb-client php7.0-mysql

Dopo aver installato MariaDB, verifica se il demone è in esecuzione e resta in ascolto delle connessioni su localhost, porta 3306, eseguendo il comando netstat.

netstat –tlpn | grep mysql

Quindi, accedi alla console MySQL e proteggi l'account root MariaDB emettendo i seguiti comandi.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

Nel passaggio successivo, proteggi MariaDB eseguendo lo script mysql_secure_installation fornito dai pacchetti di installazione dai repository stretch di Debian. Durante l'esecuzione lo script porrà una serie di domande progettate per proteggere il database MariaDB, come ad esempio:modificare la password di root di MySQL, rimuovere utenti anonimi, disabilitare gli accessi root remoti ed eliminare il database di test. Esegui lo script emettendo il comando seguente e assicurati di digitare yes a tutte le domande poste al fine di proteggere completamente il demone MySQL. Utilizzare il seguente estratto di output dello script come guida.

sudo mysql_secure_installation
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] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

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!

Per testare la sicurezza di MariaDB, prova ad accedere al database dalla console senza password di root. L'accesso al database deve essere negato se non viene fornita alcuna password per l'account root, come illustrato nel seguente estratto del comando:

[email protected]:~# mysql -h localhost -u root
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Se viene fornita la password, il processo di accesso dovrebbe essere concesso alla console MySQL, come mostrato nell'esempio di comando:

[email protected]:~# mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
 exit
Bye

Successivamente, accedi alla console del database MariaDB, crea un database per l'applicazione Zen Cart e un utente con una password che verrà utilizzata per gestire il database dell'applicazione, eseguendo i seguenti comandi. Sostituire di conseguenza il nome del database, l'utente e la password.

mysql –u root -p
create database zencart;
grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP on zencart.* to 'zencart_user'@'localhost' identified by 'password1';
flush privileges;
exit

Per applicare tutte le modifiche apportate finora, riavvia i demoni MySQL e Apache e verifica se i demoni sono in esecuzione eseguendo i seguenti comandi.

systemctl restart mysql apache2
systemctl status mysql apache2

Installa Zen Carrello 

Dopo aver soddisfatto tutti i requisiti di sistema per l'installazione del tuo negozio online di e-commerce, visita la pagina di download ufficiale di SourceForge Zen Cart all'indirizzo https://sourceforge.net/projects/zencart/files/ e scarica l'ultimo archivio compresso del pacchetto zip con l'aiuto di l'utilità wget, come illustrato nell'esempio seguente.

wget https://downloads.sourceforge.net/project/zencart/CURRENT%20-%20Zen%20Cart%201.5.x%20Series/zen-cart-v1.5.5f-12312017b.zip

Al termine del download dell'archivio zip, estrai direttamente l'archivio compresso zip Zen Cart ed elenca i file estratti eseguendo i seguenti comandi. Inoltre, rimuovere il file index.html predefinito installato dal server Web Apache nel percorso webroot ed eliminare anche il file info.php creato in precedenza.

rm /var/www/html/index.html 
rm /var/www/html/info.php
unzip zen-cart-v1.5.5f-12312017b.zip
ls

I file di installazione per Zen Cart si trovano nella directory di lavoro corrente nella directory zen-cart estratta. Emettere il comando ls per visualizzare i file della directory zen-cart. Copia tutto il contenuto della directory zen-cart-v1 nel percorso radice del documento del tuo server web eseguendo il comando seguente.

ls -al zen-cart-v[tab]
cp -rf zen-cart-v1.5.5e-03082017/* /var/www/html/

Cambia la directory nella root del documento del server web ed emetti il ​​seguente comando per creare i file di configurazione richiesti dall'applicazione Zen Cart per scrivere le impostazioni del negozio.

cd /var/www/html/
cp includes/dist-configure.php includes/configure.php
cp admin/includes/dist-configure.php admin/includes/configure.php 

Quindi, esegui i seguenti comandi per concedere all'utente di runtime Apache le autorizzazioni di scrittura complete per il percorso root web. Usa il comando ls per elencare le autorizzazioni per i file installati dell'applicazione che si trovano nella directory /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

Ora procedi con il processo di installazione del negozio online Zen Cart aprendo un browser e naviga nell'indirizzo IP del tuo server o nome di dominio o FQDN del server tramite il protocollo HTTPS. Nella prima schermata di installazione, il programma di installazione di Zen Cart ti presenterà un riepilogo di un elenco di problemi che ti riguardano, stai visualizzando la pagina. Poiché l'applicazione non è stata ancora installata, fare clic sul collegamento Fare clic qui per avviare il processo di installazione, come illustrato nell'immagine seguente.

https://tuodominio.tld

Nella schermata di installazione successiva, il programma di installazione eseguirà una serie di controlli pre-installazione rispetto alle impostazioni PHP del server e all'estensione PHP installata per determinare se tutti i requisiti di sistema per installare l'applicazione di e-commerce Zen Cart sono soddisfatti. Verificherà anche se l'utente di runtime HTTP Apache può scrivere in una serie di directory dal percorso webroot, come mostrato nelle immagini seguenti. Dopo aver esaminato tutti i controlli di ispezione del sistema, premi sul pulsante Continua per andare avanti con il processo di installazione.

Nella schermata successiva, configura il tuo negozio online Zen Cart. Innanzitutto, seleziona la casella di controllo del Contratto di licenza e verifica l'indirizzo URL del dominio dell'Admin Server per reindirizzare al tuo nome di dominio tramite il protocollo dell'applicazione HTTPS. Quindi, seleziona Abilita SSL per Storefront nelle impostazioni del catalogo (Storefront) e verifica gli indirizzi URL del dominio. Nell'ultimo campo, verifica se il percorso fisico del negozio corrisponde al percorso radice del documento del tuo server web e premi sul pulsante Continua per procedere ulteriormente con il processo di installazione.

Nella schermata di installazione successiva, aggiungi l'indirizzo, il nome e le credenziali del database MySQL creati in precedenza per il database Zen Cart. Lascia deselezionato Carica dati demo e seleziona il set di caratteri del database su UTF8 e il prefisso su zen_. Scegli il metodo della cache SQL su file e premi il pulsante Continua per passare alla fase di installazione successiva.

Quindi, aggiungi un account amministratore Superuser per il tuo negozio online Zen Cart e un indirizzo e-mail per l'account amministratore. Assicurati di annotare la password del negozio di amministrazione e il nome della directory di amministrazione e premere il pulsante Continua per avviare il processo di installazione.

Al termine dell'installazione, il programma di installazione visualizzerà due pulsanti per accedere al pannello di amministrazione supportato da Zen Cart, che verrà utilizzato per gestire il tuo negozio online, e il link Storefront, che verrà mostrato ai tuoi clienti.

Per visitare il tuo negozio online, premi prima il pulsante Vai alla tua vetrina e il frontend della tua applicazione di e-commerce verrà visualizzato nel tuo browser come illustrato nello screenshot qui sotto. Puoi anche visitare il frontend del negozio navigando verso l'indirizzo IP del tuo server o il nome di dominio tramite il protocollo HTTPS.

https://www.tuodominio.tld

Prima di accedere al pannello di amministrazione supportato dal tuo negozio, torna alla console del server ed emetti il ​​seguente comando per rimuovere la directory di installazione di Zen Cart.

rm -rf /var/www/html/zc_install/

Per gestire il tuo negozio online Zen Cart, clicca sul link Admin Backend che ti reindirizzerà al backend del negozio. Utilizza le credenziali di amministratore configurate durante il processo di installazione per accedere al pannello di backend di Zen Cart, come mostrato nella schermata seguente.

Puoi anche visitare il pannello web di amministrazione di Zen Cart navigando sul tuo server Indirizzo IP o nome di dominio tramite protocollo HTTPS alla directory di amministrazione Indirizzo URL Stringa casuale configurata durante il processo di installazione.

https://tuodominio.tld/stringa_casuale/login.php

Dopo aver effettuato l'accesso al pannello di amministrazione supportato da Zen Cart, completa la procedura guidata di configurazione iniziale con i dettagli del tuo negozio e git on il pulsante Aggiorna per scrivere le modifiche, come mostrato nella schermata seguente.

Per proteggere l'applicazione Zen Cart, torna alla console del server ed emetti i seguenti comandi per modificare i permessi per il file include/configure.php e per il file configure.php dalla directory admin in modo che sia di proprietà dell'account root.

chown root:root /var/www/html/includes/configure.php 
chown root:root /var/www/html/brOil-QUl-cHain/includes/configure.php

Infine, per costringere i visitatori a navigare nel sito frontend Zen Cart e per accedere in modo sicuro all'interfaccia di backend tramite il protocollo HTTPS che crittografa il traffico tra il server e i browser client, torna al terminale del tuo server e crea un nuovo file .htaccess emettendo quanto segue comando.

nano /var/www/html/.htaccess

Modifica le impostazioni PHP in modo che corrispondano alle risorse del tuo server e aggiungi le regole di reindirizzamento HTTPS come mostrato nell'estratto del file .htaccess di seguito:

# Modify PHP settings
php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value max_execution_time 200
php_value max_input_time 200
php_value upload_max_filesize 999M
php_value post_max_size 999M

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

È tutto! Hai installato e configurato correttamente l'applicazione di e-commerce Zen Cart in Debian 9.2. Tuttavia, poiché il server HTTP Apache utilizza un certificato autofirmato non attendibile per crittografare il traffico tra il server e i browser dei visitatori, verrà sempre generato e visualizzato un messaggio di avviso nei loro browser. Questo avviso è dannoso per il tuo negozio online. In questo caso dovresti acquistare un certificato emesso da un'autorità di certificazione affidabile o ottenere una coppia di certificati gratuita da Let's Encrypt CA.

Per altre configurazioni personalizzate relative all'applicazione Zen Cart, visitare la pagina della documentazione al seguente indirizzo:https://www.zen-cart.com/wiki/index.php/Main_Page


Debian
  1. Come installare PHP 7.4 / 7.3 / 7.2 / 7.1 su Debian 10 / Debian 9

  2. Come installare PHP 8.0 su Debian 11

  3. Come installare PHP 8.0 su Debian 10 / Debian 9

  4. Come installare PHP 7.4 su Debian 10

  5. Come installare PHP 8 su Debian 10

Come installare SuiteCRM su Debian 9

Come installare PHP 8 su Debian 11

Come installare PHP Composer su Debian 11

Come installare MySQL 8 su Debian 10

Come installare il server LAMP su Debian 9

Come installare PHP 5.6 su Ubuntu 16.04 e Debian 9