So installieren Sie das BookStack Documentations-Wiki auf CentOS 7

BookStack ist eine Open-Source-Plattform zur Erstellung von Dokumentations-/Wiki-Inhalten für Ihr Projekt. Es wurde in der Programmiersprache PHP geschrieben und verwendet das Laravel Web-Framework. Grundsätzlich wird Ihre Projektdokumentation/Wiki als ‚Book‘ auf BookStack gespeichert, gefolgt von ‚Chapter‘ und ‚Pages‘. Es erleichtert Ihnen die Erstellung und das Lesen der Dokumentation als Buch, basierend auf Kapitel und Seiten.

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie BookStack auf CentOS 7 unter dem LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB) Stapel installieren und konfigurieren. Dieses Tutorial behandelt Themen wie die Installation des PHP Composers und die Erstellung der MySQL-Datenbank über die Befehlszeile.

Voraussetzungen

  • CentOS 7
  • Root-Rechte

Was wir tun werden

  1. EPEL-Repository installieren
  2. Nginx installieren
  3. Installation und Konfiguration von PHP-FPM
  4. MySQL/MariaDB installieren und konfigurieren
  5. PHP Composer installieren
  6. BookStack installieren
  7. Nginx Virtual Host BookStack konfigurieren
  8. Prüfung

Schritt 1 – EPEL-Repository installieren

Fügen Sie das neue Drittanbieter-Repository dem System hinzu. Wir müssen EPEL (Extra Packages for Enterprise Linux) Repository zu unserem CentOS 7-System hinzufügen, damit wir Nginx und andere Pakete installieren können.

Installieren Sie das EPEL-Repository mit dem Befehl yum unten.

sudo yum -y install epel-release

Schritt 2 – Nginx auf CentOS 7 installieren

In diesem Tutorial werden wir die BookStack-Plattform unter dem LEMP-Stapel betreiben und den Nginx-Webserver aus dem EPEL-Repository installieren.

Installieren Sie den Nginx-Webserver mit dem Befehl yum unten.

sudo yum -y install nginx

Nachdem die Installation abgeschlossen ist, starten Sie den Dienst und ermöglichen Sie ihm, ihn jedes Mal beim Systemstart zu starten.

systemctl start nginx
systemctl enable nginx

Überprüfen Sie es nun mit dem Befehl netstat.

netstat -plntu

Stellen Sie sicher, dass Sie den Port 80 auf der Liste haben, der vom Nginx-Dienst verwendet wird.

Nginx installieren

Der Nginx-Webserver ist nun auf dem CentOS 7-System installiert.

Zusätzlich: Wenn Sie auf Ihrem System eine Firewall betreiben, fügen Sie der Konfiguration einen neuen HTTP-Dienst hinzu, indem Sie die folgenden Befehle ausführen.

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

Schritt 3 – PHP und PHP-FPM installieren

In diesem Schritt werden wir PHP-FPM 7.0 installieren und konfigurieren. Wir werden PHP und PHP-FPM aus dem ‚webtatic‘ Repository installieren – PHP mit einigen Erweiterungen, die von der ‚BookStack‘ Plattform benötigt werden, einschließlich PDO, Tokenizer, GD, Tidy, MBString und OpenSSL.

Bevor Sie PHP und PHP-FPM installieren, fügen Sie dem CentOS 7-System mit dem folgenden rpm-Befehl ein neues ‚webtatic‘ Repository hinzu.

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

Installieren Sie nun PHP und PHP-FPM mit allen benötigten Erweiterungen mit dem Befehl yum wie folgt.

sudo yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-common php70w-mbstring php70w-tidy php70w-zip php70w-soap curl

Nachdem die Installation abgeschlossen ist, müssen wir die Konfigurationsdatei’php.ini‘ bearbeiten und die php-fpm Poolkonfiguration’www.conf‘ bearbeiten.

Bearbeiten Sie die Konfigurationsdatei ‚php.ini‘ mit dem vim-Editor.

vim /etc/php.ini

Entkommentieren Sie die Zeile’cgi.fix_pathinfo‘ und ändern Sie den Wert auf’0′.

cgi.fix_pathinfo=0

Speichern und beenden.

Bearbeiten Sie anschließend die Pool-Konfigurationsdatei’www.conf‘.

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

Ändern Sie den Standardbenutzer für die Ausführung des PHP-FPM-Dienstes auf’nginx‘ Benutzer und Gruppe.

user = nginx
group = nginx

Ändern Sie in der Zeile „listen“ den Wert in die Sock-Datei wie unten beschrieben. Wir werden PHP-fpm unter der Sock-Datei ausführen.

listen = /var/run/php-fpm/php-fpm.sock

Nun zu den Socket-Berechtigungen und der Eigentümer-Konfiguration. Entkommentieren Sie diese Zeilen und ändern Sie den Wert wie unten beschrieben.

listen.owner = nginx
 listen.group = nginx
 listen.mode = 0660

Entkommentieren Sie schließlich die PHP-FPM-Umgebung.

env[HOSTNAME] = $HOSTNAME
 env[PATH] = /usr/local/bin:/usr/bin:/bin
 env[TMP] = /tmp
 env[TMPDIR] = /tmp
 env[TEMP] = /tmp

Speichern und beenden.

Wenn die Konfiguration abgeschlossen ist, starten Sie den PHP-FPM-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Booten gestartet wird.

systemctl start php-fpm
systemctl enable php-fpm

Überprüfen Sie es nun mit dem Befehl netstat.

netstat -pl | grep php

Und stellen Sie sicher, dass Sie die PHP-FPM Sock-Datei erhalten.

php.ini konfigurieren

Auf dem CentOS 7 System wurden PHP und PHP-FPM 7.0 mit allen für die BookStack-Plattform notwendigen Erweiterungen installiert.

Schritt 4 – MySQL/MariaDB installieren und konfigurieren

BookStack unterstützt nur die MySQL-Datenbank und läuft nur unter MySQL-Version >= 5.6. Für dieses Tutorial verwenden wir MariaDB (neueste Version), die aus dem Ubuntu-Repository installiert werden kann.

Führen Sie unten den Befehl yum aus, um die MariaDB-Datenbank zu installieren.

yum install -y mariadb mariadb-server

Nachdem die Installation abgeschlossen ist, starten Sie den Dienst und ermöglichen Sie ihm, ihn jedes Mal beim Booten zu starten.

systemctl start mariadb
systemctl enable mariadb

Nun müssen wir das Passwort „root“ für die Datenbank konfigurieren.

Führen Sie den folgenden Befehl aus, um das Passwort für die Datenbank „root“ einzurichten.

mysql_secure_installation

MariaDB konfigurieren

Und Sie werden nach dem neuen MySQL-Root-Passwort gefragt – geben Sie Ihr Passwort für den Root-Benutzer ein und drücken Sie die Eingabetaste. Für die anderen tippen Sie einfach’Y‘ für ja und drücken Sie erneut die Eingabetaste.

Set root password? [Y/n] Y
 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

Das MySQL-Root-Passwort ist nun eingerichtet.

Als nächstes müssen wir eine neue MySQL-Datenbank für die BookStack-Installation erstellen. Wir werden eine neue Datenbank namens ‚bookstackdb‘ mit dem Benutzer ‚bookstak‘ und dem Passwort ‚bookstack@‘ erstellen.

Melden Sie sich mit dem root-Benutzer in der MySQL-Shell an.

mysql -u root -p

Führen Sie alle untenstehenden MySQL-Abfragen auf der Shell aus.

create database bookstackdb;
create user bookstack@localhost identified by 'bookstack@';
grant all privileges on bookstackdb.* to bookstack@localhost identified by 'bookstack@';
flush privileges;
exit;

Datenbank in MariaDB für BookStack erstellen

MySQL/MariaDB wurde auf dem CentOS 7-System installiert und die Datenbank für die Installation von’BookStack‘ wurde erstellt.

Schritt 5 – PHP Composer auf CentOS 7 installieren

Der Komponist ist ein Abhängigkeitsmanager für PHP. Es ermöglicht Ihnen die Verwaltung von PHP-Abhängigkeiten, die Sie für Ihr Projekt benötigen. In diesem Schritt installieren wir den Composer mit Hilfe des Installationsskripts. Der Composer wird zum Herunterladen aller PHP-Bibliotheken verwendet, die für den’BookStack‘ benötigt werden.

Gehen Sie in das Home-Verzeichnis und laden Sie das Installationsprogramm per Curl herunter.

cd ~/
curl -sS https://getcomposer.org/installer | php

Und Sie erhalten die Datei’composer.phar‘ in Ihrem Home-Verzeichnis. Verschieben Sie die Datei in das Verzeichnis’/usr/bin‘ und versuchen Sie den Befehl’composer‘ wie unten gezeigt.

mv composer.phar /usr/bin/composer
composer -v

Und Sie erhalten die composer-Version, die auf Ihrem System installiert ist.

PHP Composer installieren

Der PHP Composer ist nun auf dem CentOS 7 System installiert.

Schritt 6 – BookStack auf CentOS 7 installieren

In diesem Schritt installieren wir BookStack unter dem Verzeichnis’/var/www‘ – dieses Verzeichnis wird das Hauptverzeichnis der Anwendung sein.

Bevor Sie’BookStack‘ installieren, installieren Sie git auf Ihrem System.

yum -y install git

Erstellen Sie nun das neue Verzeichnis’/var/www‘.

mkdir -p /var/www

Gehen Sie in dieses Verzeichnis und klonen Sie den BookStack-Quellcode mit dem Befehl git.

cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch

Gehen Sie in das Verzeichnis’BookStack/‘ und installieren Sie alle PHP-Abhängigkeiten, die Sie mit dem Befehl composer benötigen, wie unten gezeigt.

cd BookStack/
composer install

Stellen Sie sicher, dass Sie keinen Fehler erhalten und wann er vollständig ist. Sie werden das Ergebnis wie folgt sehen.

BookStack mit Composer installieren

Kopieren Sie nun die Umgebungskonfigurationsdatei ‚.env.example‘ und bearbeiten Sie sie mit vim.

cp .env.example .env
vim .env

Ändern Sie in der Zeile Datenbankdetails alles mit Ihren Datenbankinformationen, wie unten gezeigt.

# Database details
 DB_HOST=localhost
 DB_DATABASE=bookstackdb
 DB_USERNAME=bookstack
 DB_PASSWORD=bookstack@

Speichern und beenden.

Und ändern Sie die Eigentümerrechte des Verzeichnisses’BookStack‘ auf den Benutzer und die Gruppe’nginx‘.

chown -R nginx:nginx /var/www/BookStack

Als nächstes müssen wir den eindeutigen Anwendungsschlüssel für BookStack generieren und das Datenbankschema mit den PHP-Artisan-Befehlen aktualisieren.

Führen Sie im Stammverzeichnis der Anwendung ‚/var/wwww/BookStack‘ die folgenden Befehle aus.

php artisan key:generate
php artisan migrate

Sie werden nach einer Bestätigung gefragt, geben Sie „ja“ ein und drücken Sie die Eingabetaste.

PHP Handwerker

Warten Sie, bis die Tabellenmigration erfolgreich war.

Die BookStack-Anwendung wurde installiert, wobei die geheime, eindeutige Schlüsselanwendung generiert und das Datenbankschema für BookStack aktualisiert wurde.

Schritt 7 – Nginx Virtual Host für BookStack konfigurieren

In diesem Schritt konfigurieren wir den virtuellen Host von nginx für BookStack. Wir werden ‚book.hakase-labs.co‘ als Domain-Namen für unsere BookStack-URL verwenden.

Gehen Sie in das Verzeichnis ‚/etc/nginx‘ und erstellen Sie mit dem vim editor eine neue virtuelle Hostdatei ‚bookstack.conf‘ unter dem Verzeichnis ‚conf.d/‘.

cd /etc/nginx
vim conf.d/bookstack.conf

Füge die Konfiguration unten ein.

server {
   listen 80;
   server_name book.hakase-labs.co;
   root /var/www/BookStack/public;

access_log  /var/log/nginx/bookstack_access.log;
error_log  /var/log/nginx/bookstack_error.log;

client_max_body_size 1G;
fastcgi_buffers 64 4K;

index  index.php;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}

location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}

location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}

Speichern und beenden.

Testen Sie nun die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den nginx-Dienst neu.

nginx -t
systemctl restart nginx

Der Nginx Virtual Host für die BookStack-Anwendung wurde erstellt und aktiviert.

Nginx Virtual Host konfigurieren

Schritt 8 – Prüfung

Öffnen Sie Ihren Webbrowser und geben Sie die BookStack-URL in die Adressleiste ein, meine schon:http://book.hakase-labs.co/

Und Sie werden wie unten beschrieben auf die Seite „login/“ weitergeleitet.

BookStack Login

Geben Sie den standardmäßigen Admin-Benutzer’admin@admin.com‘ mit dem Passwort’password‘ ein, und drücken Sie dann die Schaltfläche’Login‘.

Sie sollten das BookStack Benutzer-Dashboard herunterladen.

Dashboard

Klicken Sie auf das Menü „Einstellungen“ und Sie erhalten die Einstellungsseite.

Einstellungen

Klicken Sie nun auf „Benutzer“ und dann auf den Benutzer „Admin“. Ändere die Standard-E-Mail mit deiner E-Mail-Adresse und das Passwort mit deinem eigenen geheimen Passwort.

BookStack-Benutzer

Klicken Sie dann auf die Schaltfläche „Speichern“.

Die BookStack-Installation mit LEMP (Linux, Nginx, MariaDB und PHP-FPM) Stapel auf CentOS 7 wurde erfolgreich abgeschlossen.

Referenz

Das könnte dich auch interessieren …