BookStack je platforma s otevřeným zdrojovým kódem pro vytváření obsahu dokumentace/wiki pro váš projekt. Byl napsán v programovacím jazyce PHP a používá webový framework Laravel. V zásadě bude vaše projektová dokumentace/wiki uložena na BookStack jako 'Kniha', následovaná 'Kapitola' a 'Stránky'. Usnadňuje vám vytváření a čtení dokumentace jako knihy na základě kapitol a stránek.
V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat a nakonfigurovat BookStack na CentOS 7 pod zásobníkem LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Tento tutoriál pokryje témata včetně instalace PHP Composer a vytvoření databáze MySQL pomocí příkazového řádku.
Předpoklady
- CentOS 7
- Oprávnění uživatele root
Co uděláme
- Nainstalujte úložiště EPEL
- Nainstalujte Nginx
- Nainstalujte a nakonfigurujte PHP-FPM
- Nainstalujte a nakonfigurujte MySQL/MariaDB
- Nainstalujte PHP Composer
- Nainstalujte BookStack
- Nakonfigurujte Nginx Virtual Host BookStack
- Testování
Krok 1 – Instalace úložiště EPEL
Přidejte do systému nové úložiště třetí strany. Potřebujeme přidat úložiště EPEL (Extra Packages for Enterprise Linux) do našeho systému CentOS 7, abychom mohli nainstalovat Nginx a další balíčky.
Nainstalujte úložiště EPEL pomocí příkazu yum níže.
sudo yum -y install epel-release
Krok 2 – Instalace Nginx na CentOS 7
V tomto tutoriálu spustíme platformu 'BookStack' pod zásobníkem LEMP a nainstalujeme webový server Nginx z úložiště EPEL.
Nainstalujte webový server Nginx pomocí příkazu yum níže.
sudo yum -y install nginx
Po dokončení instalace spusťte službu a povolte její spuštění při každém spuštění systému.
systemctl start nginx
systemctl enable nginx
Nyní to zkontrolujte pomocí příkazu netstat.
netstat -plntu
Ujistěte se, že máte na seznamu port 80 a že jej používá služba Nginx.
Webový server Nginx je nyní nainstalován v systému CentOS 7.
Další: Pokud na svém systému používáte firewall, přidejte do konfigurace novou službu HTTP spuštěním příkazů níže.
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Krok 3 – Instalace PHP a PHP-FPM
V tomto kroku nainstalujeme a nakonfigurujeme PHP-FPM 7.0. Nainstalujeme PHP a PHP-FPM z úložiště 'webtatic' - nainstalujte PHP s některými rozšířeními, která platforma 'BookStack' potřebuje, včetně PDO, Tokenizer, GD, Tidy, MBString a OpenSSL.
Před instalací PHP a PHP-FPM přidejte nové 'webtatic' úložiště do systému CentOS 7 pomocí příkazu rpm níže.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Nyní nainstalujte PHP a PHP-FPM se všemi potřebnými rozšířeními pomocí příkazu yum následujícím způsobem.
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
Po dokončení instalace musíme upravit konfigurační soubor 'php.ini' a upravit konfiguraci fondu php-fpm 'www.conf'.
Upravte konfigurační soubor php.ini pomocí editoru vim.
vim /etc/php.ini
Odkomentujte řádek 'cgi.fix_pathinfo' a změňte hodnotu na '0'.
cgi.fix_pathinfo=0
Uložte a ukončete.
Dále upravte konfigurační soubor fondu 'www.conf'.
vim /etc/php-fpm.d/www.conf
Změňte výchozího uživatele pro spouštění služby PHP-FPM na uživatele a skupinu 'nginx'.
user = nginx
group = nginx
Na řádku 'listen' změňte hodnotu na soubor ponožky, jak je uvedeno níže. Pod souborem sock budeme spouštět PHP-fpm.
listen = /var/run/php-fpm/php-fpm.sock
Nyní k povolení soketu a konfiguraci vlastníka. Odkomentujte tyto řádky a změňte hodnotu, jak je uvedeno níže.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Nakonec odkomentujte prostředí PHP-FPM.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Uložte a ukončete.
Pokud je konfigurace dokončena, spusťte službu PHP-FPM a povolte její spuštění při každém spuštění.
systemctl start php-fpm
systemctl enable php-fpm
Nyní to zkontrolujte pomocí příkazu netstat.
netstat -pl | grep php
A ujistěte se, že jste získali soubor PHP-FPM sock.
Na systém CentOS 7 byly nainstalovány PHP a PHP-FPM 7.0 se všemi rozšířeními potřebnými pro platformu 'BookStack'.
Krok 4 – Instalace a konfigurace MySQL/MariaDB
BookStack podporuje pouze databázi MySQL a poběží pouze pod verzí MySQL>=5.6. V tomto tutoriálu budeme používat MariaDB (nejnovější verzi), kterou lze nainstalovat z úložiště Ubuntu.
Spusťte příkaz yum níže a nainstalujte databázi MariaDB.
yum install -y mariadb mariadb-server
Po dokončení instalace spusťte službu a povolte její spuštění při každém spuštění.
systemctl start mariadb
systemctl enable mariadb
Nyní musíme nakonfigurovat heslo 'root' pro databázi.
Spusťte níže uvedený příkaz a nastavte heslo 'kořenové' databáze.
mysql_secure_installation
A budete požádáni o nové heslo root MySQL - zadejte heslo pro uživatele root a stiskněte Enter. Pro ostatní stačí napsat 'Y' pro yes a znovu stisknout Enter.
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
Kořenové heslo MySQL je nyní nastaveno.
Dále musíme vytvořit novou databázi MySQL pro instalaci BookStack. Vytvoříme novou databázi s názvem 'bookstackdb' s uživatelem 'bookstak' a heslem '[email protected]'.
Přihlaste se do prostředí MySQL pomocí uživatele root.
mysql -u root -p
Spusťte všechny dotazy MySQL níže v shellu.
create database bookstackdb;
create user [email protected] identified by '[email protected]';
grant all privileges on bookstackdb.* to [email protected] identified by '[email protected]';
flush privileges;
exit;
MySQL/MariaDB byla nainstalována do systému CentOS 7 a byla vytvořena databáze pro instalaci 'BookStack'.
Krok 5 – Instalace PHP Composer na CentOS 7
Skladatel je správce závislostí pro PHP. Umožňuje vám spravovat závislosti PHP, které potřebujete pro svůj projekt. V tomto kroku nainstalujeme Composer pomocí instalačního skriptu. Composer bude použit ke stažení všech PHP knihoven, které 'BookStack' potřebuje.
Přejděte do domovského adresáře a stáhněte si instalační program pomocí curl.
cd ~/
curl -sS https://getcomposer.org/installer | php
A ve svém domovském adresáři získáte soubor 'composer.phar'. Přesuňte soubor do adresáře '/usr/bin' a vyzkoušejte příkaz 'composer', jak je ukázáno níže.
mv composer.phar /usr/bin/composer
composer -v
A získáte verzi skladatele, která je nainstalována ve vašem systému.
PHP Composer je nyní nainstalován v systému CentOS 7.
Krok 6 – Instalace BookStack na CentOS 7
V tomto kroku nainstalujeme BookStack do adresáře '/var/www' - tento adresář bude kořenovým adresářem aplikace.
Před instalací 'BookStack' nainstalujte do systému git.
yum -y install git
Nyní vytvořte nový adresář '/var/www'.
mkdir -p /var/www
Přejděte do tohoto adresáře a naklonujte zdrojový kód BookStack pomocí příkazu git.
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
Přejděte do adresáře 'BookStack/' a nainstalujte všechny potřebné závislosti PHP pomocí příkazu skladatel, jak je znázorněno níže.
cd BookStack/
composer install
Ujistěte se, že se neobjeví žádná chyba a až bude hotovo. Výsledek uvidíte níže.
Nyní zkopírujte konfigurační soubor prostředí '.env.example' a upravte jej pomocí vim.
cp .env.example .env
vim .env
Na řádku s podrobnostmi o databázi změňte vše s informacemi o databázi, jak je uvedeno níže.
# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
[email protected]
Uložte a ukončete.
A změňte oprávnění k vlastnictví adresáře 'BookStack' na uživatele a skupinu 'nginx'.
chown -R nginx:nginx /var/www/BookStack
Dále musíme vygenerovat jedinečný aplikační klíč pro BookStack a aktualizovat schéma databáze pomocí řemeslných příkazů PHP.
V kořenovém adresáři aplikace '/var/www/BookStack' spusťte následující příkazy.
php artisan key:generate
php artisan migrate
Budete požádáni o potvrzení, napište „ano“ a stiskněte Enter.
Počkejte, dokud nebude migrace tabulky úspěšná.
Byla nainstalována aplikace BookStack s vygenerovaným tajným unikátním klíčem a aktualizováno schéma databáze pro BookStack.
Krok 7 – Konfigurace virtuálního hostitele Nginx pro BookStack
V tomto kroku nakonfigurujeme virtuálního hostitele nginx pro BookStack. Jako název domény pro naši adresu URL BookStack budeme používat 'book.hakase-labs.co'.
Přejděte do adresáře '/etc/nginx' a pomocí editoru vim vytvořte nový soubor virtuálního hostitele 'bookstack.conf' v adresáři 'conf.d/'.
cd /etc/nginx
vim conf.d/bookstack.conf
Vložte konfiguraci níže.
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;
}
}
Uložte a ukončete.
Nyní otestujte konfiguraci nginx a ujistěte se, že nedošlo k chybě, poté restartujte službu nginx.
nginx -t
systemctl restart nginx
Virtuální hostitel Nginx pro aplikaci BookStack byl vytvořen a aktivován.
Krok 8 – Testování
Otevřete webový prohlížeč a do adresního řádku zadejte adresu URL BookStack, moje je: http://book.hakase-labs.co/
A budete přesměrováni na stránku 'přihlášení/', jak je uvedeno níže.
Zadejte výchozího uživatele správce „[email protected]“ s heslem „password“ a poté stiskněte tlačítko „Přihlásit se“.
Měli byste získat uživatelský panel BookStack.
Klikněte na nabídku 'Nastavení' a dostanete se na stránku nastavení.
Nyní klikněte na „Uživatelé“ a poté klikněte na uživatele „Správce“. Změňte výchozí e-mail pomocí své e-mailové adresy a hesla pomocí vlastního tajného hesla.
Poté klikněte na tlačítko 'Uložit'.
Instalace BookStack se stackem LEMP (Linux, Nginx, MariaDB a PHP-FPM) na CentOS 7 byla úspěšně dokončena.