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
- EPEL-Repository installieren
- Nginx installieren
- Installation und Konfiguration von PHP-FPM
- MySQL/MariaDB installieren und konfigurieren
- PHP Composer installieren
- BookStack installieren
- Nginx Virtual Host BookStack konfigurieren
- 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.
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.
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
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;
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.
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.
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.
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.
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.
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.
Klicken Sie auf das Menü „Einstellungen“ und Sie erhalten die Einstellungsseite.
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.
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.