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&nbsp

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 installationSie das Skript aus, um die Sicherheit von MariaDB zu verbessern und setzen Sie das Passwort für den rootMariaDB-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 --stagingFlag 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/pyroour_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/pyroVerzeichnisses auf www-data.

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

Ausführen sudo vim /etc/php-fpm.d/www.confund setzen Sie den Benutzer und die Gruppe anfänglich auf nginxapache. 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.

Accept PyroCMS license

Nachdem Sie alle erforderlichen Informationen ausgefüllt haben, ist Ihre PyroCMS-Installation abgeschlossen.

Links

Das könnte dich auch interessieren …