Wie man PyroCMS mit Nginx und SSL unter CentOS 8 installiert
PyroCMS ist ein leistungsstarkes modulares CMS und eine Entwicklungsplattform, die mit Laravel 5 erstellt wurde und es Ihnen ermöglicht, bessere Laravel-Websites und -Anwendungen schneller zu erstellen.
In diesem Tutorial führen wir Sie durch den PyroCMS-Installationsprozess auf einem CentOS 8-Betriebssystemdurch Verwendung von NGINX als Webserver, MariaDB als Datenbankserver, und optional können Sie die Transportschicht sichern, indem Sie den acme.sh-Client und Let’s Encrypt certificate authority verwenden, um SSL-Unterstützung hinzuzufügen.
Anforderungen
Um PyroCMS zu installieren, stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt:
- Mindestens 1 GB RAM oder Swap konfiguriert.
- PHP Version 7.0 oder höher mit PDO, cURL, SQLite, OpenSSL, Mbstring, Fileinfo, Tokenizer, GD PHP-Erweiterungen.
- MariaDB
- NGINX
Voraussetzungen
- Ein System, auf dem das CentOS 8-System läuft.
- Ein Nicht-Root-Benutzer mit sudo-Privilegien.
Erste Schritte
Prüfen Sie Ihre CentOS-Version:
cat /etc/centos-release # CentOS Linux release 8.1.1810 (Core)
Richten Sie die Zeitzone ein:
timedatectl list-timezones sudo timedatectl set-timezone 'Region/City'
Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, denn er stellt sicher, dass Sie über die neuesten Aktualisierungen und Sicherheitskorrekturen für die Standard-Softwarepakete Ihres Betriebssystems verfügen:
sudo dnf update -y
Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des CentOS-Betriebssystems erforderlich sind:
sudo dnf install -y curl wget vim git unzip socat bash-completion epel-release
Schritt 1 – PHP und notwendige PHP-Erweiterungen installieren
Laden Sie PHP und die erforderlichen PHP-Erweiterungen herunter und installieren Sie sie:
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-curl php-sqlite3 php-mbstring php-gd php-xml
Um in Modulen kompiliertes PHP anzuzeigen, können Sie ausführen:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Prüfen Sie die PHP-Version: Check Composer-Version: Check Composer-Version: Check 
php --version # PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS ) # Copyright (c) 1997-2018 The PHP Group # Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Starten und aktivieren Sie den PHP-FPM-Dienst:
sudo systemctl start php-fpm.service sudo systemctl enable php-fpm.service
Schritt 2 – Installieren Sie MariaDB und erstellen Sie eine Datenbank für PyroCMS
MariaDB installieren:
sudo dnf install -y mariadb-server mariadb-client
Prüfen Sie die MariaDB-Version:
mysql --version # mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1
Starten und aktivieren Sie den MariaDB-Dienst:
sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
Führen mysql_secure installation
Sie das Skript aus, um die Sicherheit von MariaDB zu verbessern und setzen Sie das Passwort für den root
MariaDB-Benutzer:
sudo mysql_secure_installation
Beantworten Sie jede der Fragen:
Enter current password for root (enter for none): Press Enter Set root password? [Y/n] Y 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
Melden Sie sich bei MariaDB als Root-Benutzer an:
sudo mysql -u root -p # Enter password
Erstellen Sie eine MariaDB-Datenbank und einen Benutzer, den Sie für Ihre Installation von PyroCMS verwenden werden, und merken Sie sich die Anmeldedaten:
CREATE DATABASE dbname; GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
Ersetzen Sie dbname und Benutzername durch geeignete Namen für Ihre Einrichtung. Ersetzen Sie das Passwort durch ein starkes Passwort.
Verlassen der MariaDB-Shell:
quit
Schritt 3 – Installieren Sie den Acme.sh-Client und erhalten Sie das Let’s Encrypt-Zertifikat (optional)
Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Praxis, um den Verkehr Ihrer Website zu sichern. Um ein SSL-Zertifikat von Let’s Encrypt zu erhalten, werden wir den Acme.sh-Client verwenden. Acme.sh ist eine reine UNIX-Shell-Software, um SSL-Zertifikate von Let’s Encrypt ohne Abhängigkeiten zu erhalten.
Laden Sie acme.sh herunter und installieren Sie es:
sudo su - root git clone https://github.com/Neilpang/acme.sh.git cd acme.sh ./acme.sh --install --accountemail [email protected] source ~/.bashrc cd ~
Version von acme.sh prüfen:
acme.sh --version # v2.8.6
Erhalten Sie RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Ihren Hostnamen:
# RSA 2048 acme.sh --issue --standalone -d example.com --keylength 2048 # ECDSA acme.sh --issue --standalone -d example.com --keylength ec-256
Wenn Sie gefälschte Zertifikate zum Testen benötigen, können Sie --staging
Flag zu den obigen Befehlen.
Um Ihre ausgestellten Zertifikate aufzulisten, können Sie diese ausführen:
acme.sh --list
Erstellen Sie ein Verzeichnis zum Speichern Ihrer Zertifikate. Wir werden Verzeichnis verwenden/etc/letsencrypt
.
mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installieren/Kopieren von Zertifikaten nach/etc/letsencryptVerzeichnis.
# 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“
Nachdem Sie die obigen Befehle ausgeführt haben, befinden sich Ihre Zertifikate und Schlüssel darin:
- Für RSA: Verzeichnis /etc/letsencrypt
/example.com
. - Für ECC/ECDSA: Verzeichnis /etc/letsencrypt
/example.com_ecc
.
Alle Zertifikate werden automatisch alle 60 Tage erneuert.
Nach Erhalt der Zertifikate verlassen Sie den Benutzer root und kehren zum normalen sudo-Benutzer zurück:
exit
Schritt 4 – Installieren Sie NGINX und konfigurieren Sie NGINX für PyroCMS
Installieren Sie den NGINX-Webserver:
sudo dnf install -y nginx
Prüfen Sie die NGINX-Version:
nginx -v # nginx version: nginx/1.14.1
Starten und aktivieren Sie den Nginx-Dienst:
sudo systemctl start nginx.service sudo systemctl enable nginx.service
Konfigurieren Sie NGINX für PyroCMS, indem Sie es ausführen:
sudo vim /etc/nginx/conf.d/pyro.conf
Und füllen Sie die Datei mit der folgenden Konfiguration auf:
server {
listen 80;
listen 443 ssl;
server_name example.com;
index index.php index.html;
root /var/www/pyro/public;
ssl_certificate /etc/letsencrypt/status.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com/status.example.com.key;
ssl_certificate /etc/letsencrypt/status.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com_ecc/status.example.com.key;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
}
Prüfen Sie die NGINX-Konfiguration auf Syntaxfehler:
sudo nginx -t
NGINX-Dienst neu laden:
sudo systemctl reload nginx.service
Schritt 5 – Composer installieren
Installieren Sie Composer, den PHP-Abhängigkeitsmanager global:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r „if (hash_file(’sha384′, ‚composer-setup.php‘) === ‚e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a‘) { echo ‚Installer verified‘; } else { echo ‚Installer corrupt‘; unlink(‚composer-setup.php‘); } echo PHP_EOL;“
php composer-setup.php
php -r „unlink(‚composer-setup.php‘);“
sudo mv composer.phar /usr/local/bin/composer
Composer-Version prüfen:
composer --version # Composer version 1.10.5 2012-04-02 10:52:10
Schritt 6 – PyroCMS installieren
Erstellen Sie ein Dokument-Stammverzeichnis, in dem sich PyroCMS befinden sollte:
sudo mkdir -p /var/www/pyro
Ändern Sie den Eigentümer des Verzeichnisses auf y , das/var/www/pyro
our_username
Sie zuvor erstellt haben sollten, und Sie sollten als dieser Benutzer angemeldet sein.
sudo chown -R your_username:your_username /var/www/pyro
HINWEIS: Vergessen Sie nicht, Ihren_Benutzernamen durch den von Ihnen gewählten Namen zu ersetzen.
Navigieren Sie zum Dokument-Stamm:
cd /var/www/pyro
Laden Sie die neueste stabile Version von PyroCMS über :
composer create-project pyrocms/pyrocms .
Ändern Sie den Eigentümer des /var/www/pyro
Verzeichnisses auf www-data
.
sudo chown -R nginx:nginx /var/www/pyro
Ausführen sudo vim /etc/php-fpm.d/www.conf
und setzen Sie den Benutzer und die Gruppe anfänglich auf nginx
apache.
Ausführen:
sudo vim /etc/php-fpm.d/www.conf
Und setzen Sie Benutzer und Gruppe auf nginx, wie unten beschrieben:
user = nginx group = nginx
Und schließlich starten Sie den PHP-FPM-Dienst neu, damit diese Änderungen wirksam werden:
sudo systemctl restart php-fpm.service
Schritt 7 – Abschließen der PyroCMS-Einrichtung
Greifen Sie in einem Webbrowser über den Domänennamen oder die IP-Adresse auf Ihre Site zu und folgen Sie dem PyroCMS Web-Installationsassistenten.
Nachdem Sie alle erforderlichen Informationen ausgefüllt haben, ist Ihre PyroCMS-Installation abgeschlossen.