Shopware installeren met NGINX en Let’s Encrypt op CentOS 7
Shopware is de volgende generatie van open source e-commerce software. Gebaseerd op geavanceerde technologieën als Symfony 3, Doctrine2 en Zend Framework is Shopware het perfecte platform voor je volgende e-commerce project. Deze handleiding leidt je door de installatie van Shopware Community Edition (CE) op een CentOS 7 systeem door NGINX als webserver te gebruiken.
Vereisten
Zorg ervoor dat je systeem aan de volgende minimum eisen voldoet:
- Linux-gebaseerd besturingssysteem met NGINX of Apache 2.x (met mod_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 is momenteel tot PHP 7.2.x compatibel.
Vereisten
- Een besturingssysteem met CentOS 7.
- Een niet-root gebruiker met sudo privileges.
Eerste stappen
Controleer je CentOS versie:
cat /etc/centos-release
Stel de tijdzone in:
timedatectl list-timezones sudo timedatectl set-timezone 'Region/City'
Werk je pakketten (software) voor het besturingssysteem 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 yum update -y
Installeer enkele essentiële pakketten die nodig zijn voor het basisbeheer van het CentOS besturingssysteem:
sudo yum install -y curl wget vim unzip socat epel-release
Stap 1 – Installeer PHP en PHP uitbreidingen
Installeer de Webtatic YUM repo:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installeer PHP, en ook de nodige PHP uitbreidingen voor Shopware:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mysql php72w-curl php72w-json php72w-zip php72w-gd php72w-xml php72w-mbstring php72w-opcache
Om PHP gecompileerd in modules te tonen, kun je uitvoeren:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controleer de PHP versie:
php --version # PHP 7.2.14 (cli) (built: Jan 12 2019 12:47:33) ( NTS ) # Copyright (c) 1997-2018 The PHP Group # Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies # with Zend OPcache v7.2.14, 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, die de installatie van de IonCube Loader is.
Stap 2 – Installeer IonCube Loader(optioneel)
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 onder de [PHP] regel staan:
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 yum install -y mariadb-server
Controleer de MariaDB versie:
mysql --version # mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper
Start de MariaDB dienst en schakel die in:
sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
Voer het installatiescript mysql_secure uit om MariaDB beter te beveiligen en stel het wachtwoord in voor de root gebruiker van MariaDB:
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 met MariaDB shell als de root gebruiker:
sudo mysql -u root -p # Enter password
Maak een lege MariaDB database 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;
Sluit MariaDB af:
mysql> exit
Vervang dbname, gebruikersnaam en wachtwoord door 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
Verkrijg RSA en ECC/ECDSA certificaten 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 –staging vlag toevoegen aan de bovenstaande commando’s.
Na het uitvoeren van de bovenstaande commando’s zijn je certificaten en sleutels binnen:
- Voor RSA: /home/gebruikersnaam/voorbeeld.com directory.
- Voor ECC/ECDSA: /home/username/example.com_ecc directory.
Om een lijst van je uitgegeven certs te maken kun je uitvoeren:
acme.sh --list
Maak een directory om je certs in op te slaan. We zullen een directory /etc/letsencrypt gebruiken.
mkdir -p /etc/letsecnrypt/example.com sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installeer/kopieer certificaten naar de map /etc/letsencrypt.
# 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 yum install -y nginx
Controleer de NGINX versie:
nginx -v
Start Nginx service en schakel die in:
sudo systemctl start nginx.service sudo systemctl enable nginx.service
Configureer NGINX voor Shopware. Voer sudo vim /etc/nginx/conf.d/shopware.conf uit en voeg de volgende configuratie toe:
server { listen 80; listen 443 ssl; server_name example.com; root /var/www/shopware; ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key; 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 127.0.0.1:9000; } }
Controleer de NGINX configuratie op syntaxisfouten:
sudo nginx -t
Herlaad de NGINX dienst:
sudo systemctl reload nginx.service
Stap 6 – Installeer Shopware
Maak een document root directory voor Shopware:
sudo mkdir -p /var/www/shopware
Verander het eigendom van de /var/www/shopware directory in {jour_user}:
sudo chown -R {your_user}:{your_user} /var/www/shopware
Navigeer naar de document root directory:
cd /var/www/shopware
Download en pak de nieuwste Shopware 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 uitgave is.
Verander het eigendom van de /var/www/shopware directory in nginx.
sudo chown -R nginx:nginx /var/www/shopware
Voer sudo vim /etc/php-fpm.d/www.conf uit en stel gebruiker en groep in op nginx.
sudo vim /etc/php-fpm.d/www.conf # user = nginx # group = nginx
Maak de map /var/lib/php/session aan en verander het eigendom ervan in een gebruiker nginx.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Verhoog memory_limit = 256M en upload_max_filesize = 6M, en stel allow_url_fopen = On in als dat nog niet is ingesteld in het bestand /etc/php.ini.
sudo vim /etc/php.ini
Herlaad php-fpm.service na het aanbrengen van wijzigingen in /etc/php.ini bestand:
sudo systemctl reload php-fpm.service
Open je domein/IP in de web browser en volg de installatie wizard. De backend van Shopware bevindt zich op /backend voorbeeld: http://example.com/backend.
Stap 7 – Voltooi de installatie van Shopware
Begin met de taal te kiezen en klik op Volgende:
Zorg er vervolgens voor dat je aan alle Shopware eisen voldoet:
Ga akkoord met Shopware TOS en klik op Volgende:
Voer database credentials in en klik op Next:
Start de installatie om databasetabellen te maken:
Daarna zie je een bericht over succesvolle database import:
Kies een licentie en klik op Volgende:
Vul een paar basisinstellingen in om de installatie af te ronden en klik op Next:
De installatie is voltooid.
Om toegang te krijgen tot het admin gedeelte voeg je /backend toe aan je URL.
Je hebt Shopware met succes geïnstalleerd. Veel plezier met je nieuwe online winkel!