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 s webovým rámcem Laravel. V zásadě se vaše projektová dokumentace/wiki uloží na BookStack jako „Kniha“, po níž následují „Kapitola“ a „Stránky“. A 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 Ubuntu 16.04 pod zásobníkem LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Tento tutoriál pokryje podrobnosti včetně toho, jak nainstalovat PHP Composer a vytvořit databázi MySQL ručně pomocí příkazového řádku.
Předpoklady
- Ubuntu 16.04
- Oprávnění uživatele root
Co uděláme
- Aktualizujte úložiště a upgradujte systém
- Nainstalujte Nginx na Ubuntu 16.04
- Nainstalujte a nakonfigurujte PHP-FPM
- Nainstalujte a nakonfigurujte databázi MariaDB
- Nainstalujte PHP Composer
- Nainstalujte a nakonfigurujte BookStack
- Nakonfigurujte virtuálního hostitele Nginx pro BookStack
- Testování
Krok 1 – Aktualizace a upgrade Ubuntu
Před instalací jakýchkoli balíčků pro instalaci BookStack se ujistěte, že vaše úložiště Ubuntu a systém jsou aktuální.
Pokud ne, můžete aktualizovat úložiště Ubuntu a upgradovat systém pomocí příkazů níže.
sudo apt update
sudo apt upgrade
Krok 2 – Instalace Nginx na Ubuntu 16.04
V tomto tutoriálu spustíme platformu 'BookStack' pod zásobníkem LEMP a nainstalujeme webový server Nginx z úložiště Ubuntu.
Nainstalujte webový server Nginx na Ubuntu pomocí příkazu apt níže.
sudo apt install nginx -y
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í zkontrolujte stav služby nginx a otevřený port v systému a ujistěte se, že máte v seznamu HTTP port 80.
Spusťte níže uvedené příkazy.
systemctl status nginx
netstat -plntu
Následuje výsledek.
Webový server Nginx je nainstalován na serveru Ubuntu 16.04.
Krok 3 – Instalace a konfigurace PHP-FPM
V tomto kroku nainstalujeme a nakonfigurujeme PHP-FPM 7.0. Nainstalujeme PHP a PHP-FPM s některými rozšířeními, která 'BookStack' potřebuje, včetně PDO, Tokenizer, GD, Tidy, MBString a OpenSSL.
Nainstalujte PHP a PHP-FPM se všemi požadovanými rozšířeními spuštěním příkazu apt níže.
sudo apt install php7.0-fpm php7.0-mcrypt php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-tidy php7.0-zip php-soap libcurl3 curl -y
Po dokončení instalace musíme nakonfigurovat konfigurační soubory 'php.ini' pro 'php fpm' a 'php cli'.
Upravte soubor 'php.ini' pro konfiguraci 'fpm' pomocí vim.
vim /etc/php/7.0/fpm/php.ini
Odkomentujte řádek 'cgi.fix_pathinfo' a změňte hodnotu na '0'.
cgi.fix_pathinfo=0
Uložte a ukončete.
Upravte soubor 'php.ini' pro konfiguraci 'cli' pomocí vim.
vim /etc/php/7.0/cli/php.ini
Odkomentujte řádek 'cgi.fix_pathinfo' a změňte hodnotu na '0'.
cgi.fix_pathinfo=0
Uložte a ukončete.
Nyní spusťte službu PHP-FPM a povolte její spuštění při každém startu systému.
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
V systému Ubuntu poběží PHP-FPM pod souborem 'sock' – zkontrolujte to pomocí příkazu netstat níže.
netstat -pl | grep fpm
A dostanete výsledek, jak je uvedeno níže.
Byly nainstalovány PHP a PHP-FPM se všemi požadovanými rozšířeními.
Krok 4 – Instalace a konfigurace databáze MariaDB
BookStack nabízí pouze podporu pro databázi MySQL a běží pouze pod verzí MySQL>=5.6. V tomto tutoriálu budeme používat nejnovější verzi MariaDB, kterou lze nainstalovat z úložiště Ubuntu.
Spuštěním následujícího příkazu apt nainstalujte databázi MariaDB.
sudo apt install mariadb-server mariadb-client -y
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 mysql
systemctl enable mysql
Nyní musíme nakonfigurovat heslo 'root' pro databázi.
Spusťte následující příkaz pro nastavení hesla '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' na yes a Enter znovu.
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 pro instalaci BookStack.
Vytvoříme novou databázi s názvem 'bookstackdb ' s uživatelem 'bookstak “ a heslo „[e-mail chráněn] '.
Přihlaste se do prostředí MySQL jako uživatel root.
mysql -u root -p
Nyní spusťte všechny níže uvedené dotazy MySQL.
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 Ubuntu a byla vytvořena databáze pro instalaci 'BookStack'.
Krok 5 – Instalace PHP Composer
Composer 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 získáte soubor 'composer.phar' do svého domovského adresáře, přesuňte soubor do adresáře '/usr/bin' a spusťte příkaz 'composer', jak je uvedeno níže.
mv composer.phar /usr/bin/composer
composer -v
Získáte verzi skladatele, která je nainstalována ve vašem systému.
PHP Composer je nyní nainstalován na Ubuntu 16.04.
Krok 6 – Instalace BookStack
V tomto kroku nainstalujeme BookStack do adresáře '/var/www', což bude kořenový adresář aplikace.
Přejděte do adresáře '/var/www' 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 závislosti PHP pomocí příkazu skladatel, jak je znázorněno níže.
cd BookStack/
composer install
Ujistěte se, že se nezobrazuje žádná chyba, a po dokončení se zobrazí výsledek, jak je uvedeno 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 vlastníka adresáře 'BookStack' na uživatele a skupinu 'www-data'.
chown -R www-data:www-data /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 příkazy, jak je uvedeno níže.
php artisan key:generate
php artisan migrate
Budete požádáni o potvrzení, napište „ano“ a stiskněte Enter.
Počkejte, až příkaz vygeneruje tajný klíč a importuje schéma databáze.
BookStack byl nyní nainstalován na Ubuntu 16.04, byla vygenerována aplikace tajného jedinečného klíče a bylo 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ý virtuální hostitelský soubor 'bookstack' v adresáři 'sites-available'.
cd /etc/nginx/
vim sites-available/bookstack
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:/run/php/php7.0-fpm.sock;
}
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
Uložte a ukončete.
Nyní aktivujte virtuálního hostitele a otestujte konfiguraci.
ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled/
nginx -t
Ujistěte se, že se nezobrazuje žádná chyba, jak je uvedeno níže.
Nyní restartujte službu Nginx.
systemctl restart nginx
Byl přidán a aktivován virtuální hostitel Nginx pro BookStack.
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 administrátora „[email protected] ' s heslem 'heslo “ a poté stiskněte „Přihlásit se '.
A získáte uživatelský panel BookStack.
Klikněte na nabídku 'Nastavení' a dostanete se na stránku nastavení.
Nyní klikněte na nabídku „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'.
Tímto byla instalace BookStack se stackem LEMP (Linux, Nginx, MariaDB a PHP-FPM) na Ubuntu 16.04 úspěšně dokončena.