Installation von PyroCMS mit Nginx auf CentOS 7

PyroCMS ist eine leistungsstarke modulare CMS- und Entwicklungsplattform, die mit Laravel 5 entwickelt wurde, mit der Sie bessere Laravel-Websites und -Anwendungen schneller erstellen können.

In diesem Tutorial führen wir Sie durch den PyroCMS-Installationsprozess auf einem CentOS 7-Betriebssystem.mit NGINX als Webserver, MariaDB als Datenbankserver und optional können Sie die Transportschicht sichern, indem Sie den acme.sh-Client und die Let’s Encrypt-Zertifizierungsstelle 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 7-System läuft.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Überprüfen Sie Ihre CentOS-Version:

cat /etc/centos-release
# CentOS Linux release 7.6.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 es stellt sicher, dass Sie die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems erhalten:

sudo yum update -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Administration des CentOS-Betriebssystems erforderlich sind:

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

Schritt 1 – Installieren Sie PHP und die notwendigen PHP-Erweiterungen.

Richten Sie die Webtatic YUM Repo:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Laden Sie PHP und die erforderlichen PHP-Erweiterungen herunter und installieren Sie sie:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-mysqlnd php72w-curl php72w-sqlite3 php72w-mbstring php72w-gd php72w-xml

Um PHP, das in Modulen kompiliert ist, anzuzeigen, können Sie ausführen:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Überprüfen Sie die PHP-Version:

php --version
# PHP 7.2.19 (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

Starten und aktivieren Sie den PHP-FPM-Dienst:

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

Schritt 2 – MariaDB installieren und eine Datenbank für PyroCMS erstellen

Installieren Sie MariaDB aus dem offiziellen MariaDB-Repository. Erstellen Sie zuerst ein Repository:

sudo vim /etc/yum.repos.d/MariaDB.repo

Kopiere folgendes Fragment und füge es in die Datei /etc/yum.repos.d/MariaDB.repo ein:

[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Installieren Sie MariaDB:

sudo yum install -y MariaDB-server MariaDB-client

Überprüfen Sie die MariaDB-Version:

mysql --version
# mysql Ver 15.1 Distrib 10.2.13-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 Sie das mysql_secure installationSkript aus, um die MariaDB-Sicherheit zu verbessern, und legen Sie das Passwort für den rootMariaDB-Benutzer fest:

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 Anmeldeinformationen:

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

Ersetzen Sie dbname und username durch geeignete Namen für Ihr Setup. Ersetzen Sie das Passwort durch ein sicheres Passwort.

Verlassen Sie die MariaDB-Shell:

quit

Schritt 3 – Installieren Sie den Acme.sh-Client und erhalten Sie Let’s Encrypt Zertifikat (optional).

Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Vorgehensweise, um den Traffic 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 zum Erhalten von SSL-Zertifikaten von Let’s Encrypt ohne Abhängigkeiten.

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 ~

Überprüfen Sie die Version von acme.sh:

acme.sh --version
# v2.8.1

Besorgen Sie sich RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostname:

# 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 diese hinzufügen. --stagingFlagge zu den obigen Befehlen.

Um Ihre ausgestellten Zertifikate aufzulisten, können Sie diese ausführen:

acme.sh --list

Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir werden das/etc/letsencryptVerzeichnis verwenden.

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

Zertifikate installieren/kopieren 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, sind Ihre Zertifikate und Schlüssel in:

  • Für RSA: /etc/letsencrypt/example.com Verzeichnis.
  • Für ECC/ECDSA: /etc/letsencrypt/example.com_ecc Verzeichnis.

Alle Zertifikate werden automatisch alle 60 Tage erneuert.

Nachdem Sie Zertifikate erhalten haben, verlassen Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:

exit

Schritt 4 – NGINX installieren und NGINX für PyroCMS konfigurieren

Installieren Sie den NGINX Webserver:

sudo yum install -y nginx

Überprüfen Sie die NGINX-Version:

nginx -v

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:

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 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
}

Überprüfen Sie die NGINX-Konfiguration auf Syntaxfehler:

sudo nginx -t

Laden Sie den NGINX-Dienst neu:

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‘) === ‚a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1‘) { 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

Überprüfen Sie die Composer-Version:

composer --version
# Composer version 1.9.0 2019-08-02 10:52:10

Schritt 6 – PyroCMS installieren

Erstellen Sie ein Dokumentenstammverzeichnis, in dem sich PyroCMS befinden soll:

sudo mkdir -p /var/www/pyro

Ändere den Besitzer des Verzeichnisses auf y, das/var/www/pyroour_username du vorher hättest erstellen sollen und du solltest als dieser Benutzer angemeldet sein.

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

HINWEIS: Vergiss nicht, deinen Benutzernamen durch den Namen zu ersetzen, den du gewählt hast.

Navigieren Sie zur Dokumentenwurzel:

cd /var/www/pyro

Laden Sie die neueste stabile Version von PyroCMS herunter über :

composer create-project pyrocms/pyrocms .

Ändern Sie den Besitzer 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 aufnginx…. Zunächst werden sie auf apache. Ausführen gesetzt:

sudo vim /etc/php-fpm.d/www.conf

Und setze 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 – Fertigstellen des PyroCMS-Setups

Rufen Sie Ihre Website in einem Webbrowser über den Domänennamen oder die IP-Adresse auf und folgen Sie dem PyroCMS-Webinstallationsassistenten.

PyroCMS-Lizenz akzeptieren

Nachdem Sie alle erforderlichen Angaben gemacht haben, ist Ihre PyroCMS-Installation abgeschlossen.

Links

Das könnte dich auch interessieren …