GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Zen Cart na Debian 9

Zen Cart je bezplatná platforma pro správu obsahu elektronického obchodování a nákupní košík s otevřeným zdrojovým kódem. Software je napsán v programovacím jazyce PHP a často se instaluje na Linux pod webovými servery Apache/Nginx, systémem správy databáze PHP a MySQL/MariaDB, také známým jako LAMP nebo LEMP stack. Řešení elektronického obchodování Zen Cart se používá ke snadnému vytváření online obchodů pro různé firmy a k inzerci a prodeji služeb a zboží.

V této příručce vám ukážu, jak nainstalovat a nakonfigurovat nejnovější verzi Zen Cart na Debianu 9, abyste vytvořili bezplatný internetový obchod.

Požadavky

  • Minimální instalace serveru Debian 9 na stroji z holého kovu nebo na virtuálním soukromém serveru
  • Statická IP adresa nakonfigurovaná pro jednu kartu vašich systémových síťových rozhraní 
  • sudo root oprávnění pro místní nebo vzdálený účet nebo přímý přístup k účtu root
  • Název domény, soukromý nebo veřejný, v závislosti na vašem nasazení, se správnými záznamy DNS nakonfigurovanými pro webové služby. Pokud nemáte platný nebo registrovaný název domény, můžete provést instalaci a přistupovat na web přes IP adresu vašeho serveru
  • Pokud chcete používat registraci webových stránek, moderování komentářů a další funkce, měli byste mít ve svých prostorách správně nakonfigurovaný běžící poštovní server se vzdáleným přístupem k jeho službám IMAP a SMTP.

Předběžné požadavky

Před zahájením instalace a konfigurace Zen Cart ze zdrojů na vašem vlastním serveru se nejprve ujistěte, že systém splňuje všechny softwarové požadavky pro kompilaci a instalaci aplikace. V prvním kroku aktualizujte systémová úložiště a softwarové balíčky vydáním následujícího příkazu.

apt update
apt upgrade

Dále nastavte název pro svůj systém spuštěním následujícího příkazu (nahraďte svou proměnnou hostname podle toho).

hostnamectl set-hostname zencart

Ověřte název hostitele počítače a soubor hostitelů vydáním následujících příkazů.

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

V dalším kroku spusťte následující příkaz, abyste nainstalovali některé potřebné nástroje, které budou použity k další správě vašeho systému z příkazového řádku.

apt install wget bash-completion zip unzip curl

  Nakonec restartujte server Debian abyste aplikovali aktualizace kernelu a správně se změnil název hostitele.

systemctl reboot

Nainstalujte Apache a PHP

Zen Cart je webová platforma elektronického obchodování CMS napsaná převážně v programovacím jazyce PHP na straně serveru. Aby bylo možné spustit souborové skripty PHP aplikace, musí být v systému nainstalován a funkční webový server, jako je HTTP server Apache, a brána zpracování PHP. Chcete-li nainstalovat webový server Apache a interpret PHP spolu se všemi požadovanými moduly PHP, které aplikace potřebuje ke správnému fungování, zadejte na konzole serveru následující příkaz.

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

Po instalaci Apache a PHP otestujte, zda je webový server v provozu a naslouchá síťovým připojením na portu 80 zadáním následujícího příkazu s právy root.

netstat –tlpn

V případě, že síťová pomůcka netstat není ve výchozím nastavení ve vašem systému Debian nainstalována, nainstalujte ji provedením následujícího příkazu.

apt install net-tools

Prozkoumáním výstupu příkazu netstat můžete vidět, že webový server Apache naslouchá příchozím síťovým připojením na portu 80. Pro stejný úkol můžete také použít příkaz ss, který je automaticky nainstalován ve výchozím nastavení v Debianu 9.

ss- tulpn

Nakonfigurujte bránu firewall

V případě, že máte ve svém systému povolenou bránu firewall, jako je například aplikace brány firewall UFW, měli byste přidat nové pravidlo, které umožní průchod HTTP provozu přes bránu firewall, zadáním následujícího příkazu.

ufw allow WWW

nebo

ufw allow 80/tcp

Pokud ke správě pravidel brány firewall na serveru Debian používáte pravidla iptables raw, přidejte následující pravidlo, které povolí příchozí provoz na portu 80 na bráně firewall, aby návštěvníci mohli procházet online obchod.

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

Konfigurace Apache a SSL/TLS

Dále povolte a použijte následující moduly Apache, které aplikace elektronického obchodování vyžaduje ke správnému fungování, zadáním následujícího příkazu.

a2enmod rewrite expires env alias deflate mime
systemctl restart apache2

Nakonec otestujte, zda lze výchozí webovou stránku webového serveru Apache zobrazit v prohlížečích vašeho klienta návštěvou IP adresy vašeho počítače Debian nebo názvu vaší domény nebo FQDN serveru přes protokol HTTP, jak je znázorněno na následujícím obrázku. Pokud neznáte IP adresu svého počítače, spusťte příkaz ifconfig nebo 'ip a', abyste odhalili IP adresu svého serveru.

http://yourdomain.tld

Chcete-li nainstalovat a získat přístup k panelu webového administrátora Zen Cart a k webové stránce frontendu prostřednictvím protokolu HTTPS, který zajistí provoz pro vaše klienty, zadejte následující příkaz pro povolení modulu SSL webového serveru Apache a konfiguračního souboru webu SSL.

a2enmod ssl 
a2ensite default-ssl.conf

Dále otevřete výchozí konfigurační soubor webu Apache SSL pomocí textového editoru a povolte pravidla pro přepis URL přidáním následujících řádků kódu za direktivu DocumentRoot, jak je znázorněno v následujícím příkladu:

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

Výňatek z konfiguračního souboru webu SSL:

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

Také proveďte následující změnu na řádek VirtualHost tak, aby vypadal jako v následujícím úryvku:

<VirtualHost *:443>

Zavřete soubor SSL Apache a otevřete soubor /etc/apache2/sites-enabled/000-default.conf pro úpravy a přidejte stejná pravidla pro přepis URL jako pro konfigurační soubor SSL. Vložte řádky kódu za příkaz DocumentRoot, jak je znázorněno v následujícím příkladu.

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

Nakonec restartujte démona Apache, abyste použili všechna dosud nakonfigurovaná pravidla a navštivte svou doménu prostřednictvím protokolu HTTP. Protože používáte automaticky páry certifikátů s vlastním podpisem vydané Apache při instalaci, mělo by se v prohlížeči zobrazit varování o chybě.

systemctl restart apache2

https://vasedomena.tld

Přijměte varování týkající se nedůvěryhodného certifikátu a pokračování a přesměrování na výchozí webovou stránku Apache.

V případě, že aplikace firewallu UFW blokuje příchozí síťová připojení k portu HTTPS, měli byste přidat nové pravidlo, které povolí provoz HTTPS procházet bránou firewall, zadáním následujícího příkazu.

ufw allow 'WWW Full'

nebo

ufw allow 443/tcp

Pokud je iptables výchozí aplikací brány firewall nainstalovanou k ochraně vašeho systému Debian na úrovni sítě, přidejte následující pravidlo, které povolí příchozí provoz na portu 443 ve bráně firewall, aby návštěvníci mohli procházet název vaší domény.

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

V dalším kroku musíme provést nějaké další změny ve výchozím konfiguračním souboru PHP, abychom se ujistili, že jsou povoleny následující proměnné PHP a nastavení časového pásma PHP je správně nakonfigurováno a odpovídá geografické poloze vašeho systému. Otevřete soubor /etc/php/7.0/apache2/php.ini pro úpravy a ujistěte se, že následující řádky jsou nastaveny následovně. Nejprve si také vytvořte zálohu konfiguračního souboru PHP.

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

Vyhledávejte, upravujte a změňte následující proměnné v php.ini konfigurační soubor:

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

Zvyšte proměnné post_max_size a upload_max_file_size podle potřeby pro podporu příloh velkých souborů a nahraďte proměnnou time.zone podle vašeho fyzického času pomocí seznamu časových pásem poskytnutých dokumenty PHP na následujícím odkazu http://php.net/manual/en /timezones.php

Chcete-li zvýšit rychlost načítání svých webových stránek pomocí pluginu OPCache dostupného pro PHP7, přidejte následující nastavení OPCache na konec konfiguračního souboru PHP interpretu, jak je podrobně popsáno níže:

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

Zavřete konfigurační soubor php.ini a ověřte konec konfiguračního souboru PHP, abyste zkontrolovali, zda byly proměnné správně přidány, zadáním níže uvedeného příkazu.

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

Po provedení všech výše vysvětlených změn restartujte démona apache, aby se nové změny aplikovaly, zadáním následujícího příkazu.

systemctl restart apache2

Nakonec vytvořte soubor s informacemi o PHP provedením následujícího příkazu a zkontrolujte, zda bylo časové pásmo PHP správně nakonfigurováno tím, že navštívíte soubor skriptu PHP info z prohlížeče na následující adrese URL, jak je znázorněno na obrázku níže. Přejděte dolů na nastavení data a zkontrolujte konfiguraci časového pásma php.

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

https://yourdomain.tld/info.php

Webová aplikace elektronického obchodování Zen Cart ukládá různé konfigurace, jako jsou uživatelé, relace, kontakty, produkty, katalogy a další, v databázi RDBMS. V této příručce nakonfigurujeme aplikaci Zen Cart tak, aby používala databázi MariaDB jako backend. Chcete-li nainstalovat databázi MariaDB a modul PHP potřebný pro přístup k databázi mysql, zadejte následující příkaz.

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

Po instalaci MariaDB ověřte, zda démon běží a naslouchá připojení na localhost, port 3306, spuštěním příkazu netstat.

netstat –tlpn | grep mysql

Poté se přihlaste do konzole MySQL a zabezpečte kořenový účet MariaDB vydáním následujících příkazů.

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

V dalším kroku zajistěte MariaDB spuštěním skriptu mysql_secure_installation poskytovaného instalačními balíčky z repozitářů Debian stretch. Při spuštění skriptu bude položena řada otázek určených k zabezpečení databáze MariaDB, jako například:změna hesla root MySQL, odstranění anonymních uživatelů, zakázání vzdáleného přihlášení root a odstranění testovací databáze. Spusťte skript vydáním následujícího příkazu a ujistěte se, že na všechny položené otázky zadáte ano, abyste plně zabezpečili démona MySQL. Jako vodítko použijte následující úryvek výstupu skriptu.

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!

Chcete-li otestovat zabezpečení MariaDB, zkuste se přihlásit do databáze z konzoly bez hesla root. Přístup k databázi by měl být odepřen, pokud není pro účet root poskytnuto žádné heslo, jak je znázorněno na následujícím úryvku příkazu:

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

Pokud je zadáno heslo , proces přihlášení by měl být poskytován konzole MySQL ,  jak uvádí  příkaz příkazu:

[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

Dále se přihlaste k databázové konzoli MariaDB, vytvořte databázi pro aplikaci Zen Cart a uživatele s heslem, který bude použit pro správu databáze aplikace, zadáním následujících příkazů. Podle toho nahraďte název databáze, uživatele a heslo.

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

Chcete-li použít všechny dosud provedené změny, restartujte démony MySQL a Apache a ověřte, zda démoni běží, zadáním následujících příkazů.

systemctl restart mysql apache2
systemctl status mysql apache2

Nainstalujte Zen Cart 

Po splnění všech systémových požadavků pro instalaci vašeho internetového obchodu elektronického obchodu navštivte oficiální stránku ke stažení SourceForge Zen Cart na https://sourceforge.net/projects/zencart/files/ a stáhněte si nejnovější komprimovaný archiv balíčku zip pomocí obslužný program wget, jak je znázorněno na následujícím příkladu.

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

Po dokončení stahování archivu zip extrahujte přímo komprimovaný archiv zip Zen Cart a vypište extrahované soubory pomocí následujících příkazů. Odstraňte také výchozí soubor index.html nainstalovaný webovým serverem Apache na cestu webroot a také odstraňte dříve vytvořený soubor info.php.

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

Instalační soubory pro Zen Cart jsou umístěny ve vašem aktuálním pracovním adresáři v extrahovaném adresáři zen-cart. Vydejte příkaz ls pro zobrazení souborů adresáře zen-cart. Zkopírujte veškerý obsah adresáře zen-cart-v1 do kořenové cesty dokumentu vašeho webového serveru zadáním následujícího příkazu.

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

Změňte adresář na kořen dokumentu webového serveru a zadejte následující příkaz k vytvoření konfiguračních souborů požadovaných aplikací Zen Cart k zápisu nastavení úložiště.

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

Dále spusťte následující příkazy, abyste udělili uživateli Apache runtime plná oprávnění k zápisu do webové kořenové cesty. Pomocí příkazu ls zobrazíte seznam oprávnění pro nainstalované soubory aplikace umístěné v adresáři /var/www/html/.

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

Nyní pokračujte v procesu instalace online obchodu Zen Cart otevřením prohlížeče a procházením IP adresy nebo názvu domény nebo FQDN serveru přes protokol HTTPS. Na první instalační obrazovce vám instalační program Zen Cart předloží shrnutí seznamu problémů, které se vás týkají a na stránce se vám zobrazuje. Protože aplikace ještě nebyla nainstalována, klikněte na odkaz Klikněte sem, abyste zahájili proces instalace, jak je znázorněno na následujícím obrázku.

https://vasedomena.tld

Na další obrazovce instalace provede instalační program řadu předinstalačních kontrol s ohledem na nastavení serveru PHP a nainstalované rozšíření PHP, aby zjistil, zda jsou splněny všechny systémové požadavky pro instalaci aplikace elektronického obchodu Zen Cart. Také zkontroluje, zda uživatel Apache HTTP runtime může zapisovat do řady adresářů z cesty webroot, jak je znázorněno na obrázcích níže. Po zkontrolování všech kontrol inspekcí systému klikněte na tlačítko Pokračovat a pokračujte v procesu instalace.

Na další obrazovce nastavte svůj online obchod Zen Cart. Nejprve zaškrtněte políčko Licenční smlouva a ověřte adresu URL domény Admin Server pro přesměrování na název vaší domény prostřednictvím aplikačního protokolu HTTPS. Dále zaškrtněte políčko Povolit SSL pro Storefront v nastavení katalogu (Storefront) a ověřte adresy URL domén. V posledním poli ověřte, zda se fyzická cesta obchodu shoduje s kořenovou cestou dokumentu webového serveru, a stiskněte tlačítko Pokračovat, abyste mohli pokračovat v procesu instalace.

Na další instalační obrazovce přidejte adresu databáze MySQL, jméno a přihlašovací údaje vytvořené dříve pro databázi Zen Cart. Ponechte nezaškrtnuté políčko Načíst ukázková data a vyberte znakovou sadu databáze na UTF8 a předponu na zen_. Vyberte metodu mezipaměti SQL do souboru a klepnutím na tlačítko Pokračovat přejděte k další fázi instalace.

Dále přidejte účet Admin Superuser pro váš online obchod Zen Cart a e-mailovou adresu pro účet správce. Ujistěte se, že si poznamenáte heslo admin store a název admin adresáře, a kliknutím na tlačítko Pokračovat spustíte instalační proces.

Po dokončení instalace instalační program zobrazí dvě tlačítka pro přístup k panelu Administrace se zálohou Zen Cart, který se bude používat ke správě vašeho online obchodu, a odkaz na obchod Storefront, který se zobrazí vašim klientům.

Chcete-li navštívit svůj internetový obchod, nejprve stiskněte tlačítko Přejít do svého obchodu a ve vašem prohlížeči se zobrazí frontend vaší aplikace pro elektronický obchod, jak je znázorněno na níže uvedeném snímku obrazovky. Můžete také navštívit frontend obchodu tak, že přejdete na IP adresu vašeho serveru nebo název domény prostřednictvím protokolu HTTPS.

https://www.yourdomain.tld

Než se přihlásíte do svého administrátorského panelu podporovaného obchodem, nejprve se vraťte do konzole serveru a zadejte následující příkaz k odstranění instalačního adresáře Zen Cart.

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

Chcete-li spravovat svůj online obchod Zen Cart, klikněte na odkaz Admin Backend, který vás přesměruje na backend obchodu. Použijte přihlašovací údaje správce nakonfigurované během procesu instalace, abyste se mohli přihlásit k backend panelu Zen Cart, jak je znázorněno na níže uvedeném snímku obrazovky.

Můžete také navštívit webový panel správce Zen Cart tak, že přejdete na svůj server IP adresa nebo název domény přes protokol HTTPS do adresáře admin URL adresa náhodný řetězec nakonfigurovaný během procesu instalace.

https://yourdomain.tld/random_string/login.php

Po přihlášení do administračního panelu podporovaného Zen Cart dokončete průvodce úvodním nastavením s vlastními podrobnostmi o obchodu a git na tlačítko Aktualizovat pro zápis změn, jak je znázorněno na následujícím snímku obrazovky.

Chcete-li zabezpečit aplikaci Zen Cart, vraťte se do konzole serveru a zadejte následující příkazy ke změně oprávnění pro soubor include/configure.php a soubor configure.php z adresáře admin, který bude vlastněn root účtem.

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

A konečně, abyste návštěvníky donutili procházet frontendové webové stránky Zen Cart a bezpečně přistupovat k backendovému rozhraní prostřednictvím protokolu HTTPS, který šifruje provoz mezi serverem a klientskými prohlížeči, vraťte se na terminál svého serveru a vytvořte nový soubor .htaccess vydáním následujícího příkaz.

nano /var/www/html/.htaccess

Změňte nastavení PHP tak, aby odpovídalo vašim vlastním zdrojům serveru, a přidejte pravidla přesměrování HTTPS, jak je uvedeno v níže uvedeném úryvku souboru .htaccess:

# 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>

To je vše! Úspěšně jste nainstalovali a nakonfigurovali aplikaci elektronického obchodování Zen Cart v Debianu 9.2. Protože však server Apache HTTP používá k šifrování provozu mezi serverem a prohlížeči návštěvníků nedůvěryhodný certifikát s vlastním podpisem, vždy se v jejich prohlížečích vygeneruje a zobrazí varovná zpráva. Toto varování je pro váš internetový obchod špatné. V takovém případě byste si měli zakoupit certifikát vydaný důvěryhodnou certifikační autoritou nebo získat pár certifikátů zdarma od Let’s Encrypt CA.

Pro další vlastní konfigurace týkající se aplikace Zen Cart navštivte stránku dokumentace na následující adrese:https://www.zen-cart.com/wiki/index.php/Main_Page


Debian
  1. Jak nainstalovat PHP 7.4 na Debian 10

  2. Jak nainstalovat PHP na Debian 11

  3. Jak nainstalovat PHP 7.2 na Debian 9

  1. Jak nainstalovat PHP 7.4 / 7.3 / 7.2 / 7.1 na Debian 10 / Debian 9

  2. Jak nainstalovat PHP 8.0 na Debian 11

  3. Jak nainstalovat PHP 7.3 na Debian 10

  1. Jak nainstalovat Redis Server na Debian 11

  2. Jak nainstalovat PHP 8.0 na Debian 10 / Debian 9

  3. Jak nainstalovat PHP 8 na Debian 10