Shopware met NGINX en Let’s Encrypt op Fedora 30 te installeren

Shopware is de volgende generatie van open source e-commerce software. Gebaseerd op geavanceerde technologieën zoalsSymfony 3,Doctrine2enZend Frameworkkomt Shopware als het perfecte platform voor je volgende e-commerce project.Deze handleiding leidt je door de Shopware Community Editie (CE) installatie op Fedora 30 systeem door NGINX als webserver te gebruiken.

Vereisten

Zorg ervoor dat je systeem aan de volgendeminimum eisen voldoet:

  • Linux-gebaseerd besturingssysteem met NGINX of Apache 2.x (metmod_rewrite) webserver geïnstalleerd.
  • PHP 5.6.4 of hoger met ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo, en pdo/mysql uitbreidingen.PHP 7.1 of hoger wordt sterk aanbevolen.
  • MySQL 5.5.0 of hoger.
  • Mogelijkheid om cron jobs in te stellen.
  • Minimaal 4 GB beschikbare ruimte op de harde schijf.
  • IonCube Loader versie 5.0.0 of hoger(optioneel).

OPMERKING: Shopware 5 is momenteel totPHP 7.2.xcompatibel.

Vereisten

  • Een besturingssysteem met Fedora 29.
  • Een niet-root gebruiker met sudo privileges.

Ik zal in deze handleiding de domeinnaam example.com gebruiken. Vervang het woord example.com door je eigen domeinnaam overal waar het voorkomt in de onderstaande commando’s en configuratiebestanden (vooral in het nginx configuratiebestand en de Let’s encrypt commando’s).

Eerste stappen

Controleer je Fedora versie:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Stel de tijdzone in:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat je er zeker van bent dat je de laatste updates en beveiligingsfixes hebt voor de standaard softwarepakketten van je besturingssysteem:

sudo dnf upgrade -y

Installeer enkele essentiële pakketten die nodig zijn voor basisbeheer van het Fedora besturingssysteem:

sudo dnf install -y curl wget vim git sudo unzip socat bash-completion

Stap 1 – Installeer PHP en PHP uitbreidingen

Installeer PHP, en ook de nodige PHP uitbreidingen voor Shopware:

sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache

Om PHP gecompileerd in modules te tonen, kun je:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

php --version

# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies

Start en schakel de PHP-FPM dienst in:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

We kunnen overgaan tot de volgende stap, namelijk de installatie van de IonCube Loader.

Stap 2 – Installeer IonCube Loader(optioneel)

Deze stap is optioneel omdat Shopware nu zonder IonCube werkt, maar er kunnen nog steeds extensies of thema’s zijn die IonCube gebruiken, dus het kan geen kwaad het toch te installeren. Download IonCube Loader:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Pak de loader uit:

tar xfz ioncube_loaders_lin_*.gz

Zoek de PHP extensies directory op het systeem door het onderstaande commando uit te voeren:

php -i | grep extension_dir
# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

Kopieer de ionCube Loader naar de PHP extensions directory:

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules

Neem de loader op via PHP configuratie:

sudo vim /etc/php.ini

Voeg dan een regel toe in het bestand om ionCube loader op te nemen. Het kan overal in het bestand staan onder de regel[PHP]:

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so

Sla het bestand op en herstart PHP-FPM:

sudo systemctl restart php-fpm.service

Stap 3 – Installeer MariaDB en maak een databank voor Shopware

Installeer de databaseserver MariaDB:

sudo dnf install -y mariadb-server

Controleer deMariaDB versie:

mysql --version
# mysql  Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1

Start de MariaDB dienst en schakel die in:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Voer hetmysql_secure installationscript om de beveiliging vanMariaDB te verbeteren en het wachtwoord voorMariaDBin te stellenroot gebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Maak verbinding metMariaDB shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een legeMariaDB databank en gebruiker voor Shopware en onthoud de credentials:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

SluitMariaDB af:

mysql> exit

Vervangdbname,usernameenpassworddoor je eigen namen.

Stap 4 - Installeer Acme.sh client en verkrijg het Let's Encrypt certificaat (optioneel)

Je website met HTTPS beveiligen is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let's Encrypt te verkrijgen zullen we acme.sh client gebruiken. Acme.sh is een zuivere Unix shell software voor het verkrijgen van TLS certificaten van Let's Encrypt zonder afhankelijkheden.

Download en installeer acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Controleer de versie van acme.sh:

acme.sh --version
# v2.8.1

VerkrijgRSAenECC/ECDSAcertificaten voor je domein/hostnaam:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Als je nep certificaten wilt om te testen kun je de--stagingvlag aan de bovenstaande commando's toevoegen.

Na het uitvoeren van de bovenstaande commando's staan jecertificaten ensleutels in:

  • VoorRSA:/home/username/example.commap.
  • VoorECC/ECDSA:/home/username/example.com_eccmap.

Om je uitgegeven certs op te sommen kun je uitvoeren:

acme.sh --list

Maak een directory om je certs in op te slaan. We zullen een directory gebruiken/etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installeer/kopieer certificaten naar/etc/letsencryptmap.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Alle certificaten worden om de 60 dagen automatisch vernieuwd.

Verlaat na het verkrijgen van de certs de root gebruiker en ga terug naar de gewone sudo gebruiker:

exit

Stap 5 - Installeer en configureer NGINX

Installeer de NGINX webserver:

sudo dnf install -y nginx

Controleer de NGINX versie:

nginx -v
# nginx version: nginx/1.14.2

Start de NGINX dienst en schakel hem in:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

ConfigureerNGINXvoor Shopware. Voer uit.sudo vim /etc/nginx/conf.d/shopware.confen voeg de volgende configuratie toe:

server {
    listen 80;
    listen [::]:80;
    
    server_name example.com;
    root /var/www/shopware;

    index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;
    }
}

ControleerNGINXconfiguratie op syntaxisfouten:

sudo nginx -t

HerlaadNGINXdienst opnieuw:

sudo systemctl reload nginx.service

Stap 6 - Installeer Shopware

Maak een document root directory voor Shopware:

sudo mkdir -p /var/www/shopware

Veranderhet eigendom van de/var/www/shopwaredirectory in{jouw_gebruiker}. Vervang {jouw_gebruiker} door de gebruikersnaam van de gebruiker waarmee je nu bent ingelogd:

sudo chown -R {your_user}:{your_user} /var/www/shopware

Navigeer naar de basismap van het document:

cd /var/www/shopware

Download en pak de nieuwsteShopware uitgave uit via wget:

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm shopware.zip

OPMERKING:Werk de download URL bij als er een nieuwere release is.

Verander het eigendom van de/var/www/shopwaredirectory innginx.

sudo chown -R nginx:nginx /var/www/shopware

Startsudo vim /etc/php-fpm.d/www.confen stel de gebruiker en groep in opnginx. Aanvankelijk zullen ze ingesteld zijn opapache:

sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

Maak/var/lib/php/session/map en verander het eigendom innginx.

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session

Verhoogmemory_limit = 256Menupload_max_filesize = 6M, en stelallow_url_fopen = Onin als dat nog niet gebeurd is in het bestand/etc/php/7.2/fpm/php.ini.

sudo vim /etc/php.ini

Herlaad nadat je veranderingen in het/etc/php.inibestand hebt aangebrachtphp-fpm.service:

sudo systemctl reload php-fpm.service

Open je domein/IP in de webbrowser en volg de installatiewizard. De backend van Shopware bevindt zich op/backendvoorbeeld:http://example.com/backend.

Stap 7 - Voltooi de installatie van Shopware

Begin met de taal te kiezen en klik op Volgende:

Shopware installatie wizard

Zorg er vervolgens voor dat je aan alle Shopware eisen voldoet:

Aan de systeemeisen is voldaan

Ga akkoord met Shopware TOS en klik op Volgende:

Licentie aanvaarden

Voer database credentials in en klik op Next:

Shopware database instellingen

Start de installatie om databasetabellen te maken:

Installeren van databasetabellen

Daarna zie je een bericht over succesvolle database import:

Databank initialisatie geslaagd

Kies een licentie en klik op Volgende:

Kies licentie

Vul een paar basisinstellingen in om de installatie af te ronden en klik op Next:

Basisinstellingen

De installatie is voltooid.

De installatie is voltooid

Om toegang te krijgen tot het admin gedeelte voeg je /backend toe aan je URL.

Shopware backend login

Je hebt Shopware met succes geïnstalleerd. Veel plezier met je nieuwe online winkel!