如何在 Ubuntu 16.04 LTS 上安装 BookStack
在此页
- 先决条件
- 我们将做什么
- 第 1 步 - 更新和升级 Ubuntu
- 第 2 步 - 在 Ubuntu 16.04 上安装 Nginx
- 第 3 步 - 安装和配置 PHP-FPM
- 第 4 步 - 安装和配置 MariaDB 数据库
- 第 5 步 - 安装 PHP Composer
- 第 6 步 - 安装 BookStack
- 第 7 步 - 为 BookStack 配置 Nginx 虚拟主机
- 第 8 步 - 测试
- 参考资料
BookStack 是一个开源平台,可为您的项目创建文档/wiki 内容。它是用 PHP 编程语言和 Laravel 网络框架编写的。基本上,您的项目文档/wiki 会作为一本书存储在 BookStack 上,然后是章节和页面。它使您可以更轻松地创建和阅读基于章节和页面的书籍文档。
在本教程中,我将逐步向您展示如何在 LEMP(Linux、Nginx、PHP-FPM、MySQL/MariaDB)堆栈下的 Ubuntu 16.04 上安装和配置 BookStack。本教程将涵盖详细信息,包括如何安装 PHP Composer 以及如何使用命令行手动创建 MySQL 数据库。
先决条件
- Ubuntu 16.04
- 根权限
我们将要做什么
- 更新存储库和升级系统
- 在 Ubuntu 16.04 上安装 Nginx
- 安装和配置 PHP-FPM
- 安装和配置 MariaDB 数据库
- 安装 PHP 编写器
- 安装和配置 BookStack
- 为 BookStack 配置 Nginx 虚拟主机
- 测试
第 1 步 - 更新和升级 Ubuntu
在为 BookStack 安装安装任何软件包之前,请确保您的 Ubuntu 存储库和系统是最新的。
如果没有,您可以更新 Ubuntu 存储库并使用以下命令升级系统。
sudo apt update
sudo apt upgrade
第 2 步 - 在 Ubuntu 16.04 上安装 Nginx
在本教程中,我们将在 LEMP 堆栈下运行 BookStack 平台,我们将从 Ubuntu 存储库安装 Nginx Web 服务器。
使用下面的 apt 命令在 Ubuntu 上安装 Nginx Web 服务器。
sudo apt install nginx -y
安装完成后,启动该服务并使其在每次系统启动时启动。
systemctl start nginx
systemctl enable nginx
现在检查 nginx 服务状态和系统上的开放端口,确保您在列表中获得 HTTP 端口 80。
运行下面的命令。
systemctl status nginx
netstat -plntu
以下是结果。

Nginx Web 服务器安装在 Ubuntu 16.04 服务器上。
第 3 步 - 安装和配置 PHP-FPM
在此步骤中,我们将安装和配置 PHP-FPM 7.0。我们将安装 PHP 和 PHP-FPM 以及 BookStack 所需的一些扩展,包括 PDO、Tokenizer、GD、Tidy、MBString 和 OpenSSL。
通过运行下面的 apt 命令安装 PHP 和 PHP-FPM 以及所有必需的扩展。
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
安装完成后,我们需要配置php fpm和php cli的php.ini配置文件。
使用 vim 编辑 fpm 配置的 php.ini 文件。
vim /etc/php/7.0/fpm/php.ini
取消注释 cgi.fix_pathinfo 行并将值更改为 0。
cgi.fix_pathinfo=0
保存并退出。
使用 vim 编辑用于 cli 配置的 php.ini 文件。
vim /etc/php/7.0/cli/php.ini
取消注释 cgi.fix_pathinfo 行并将值更改为 0。
cgi.fix_pathinfo=0
保存并退出。
现在启动 PHP-FPM 服务并让它在每次系统启动时启动。
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
在 Ubuntu 系统上,PHP-FPM 将在 sock 文件下运行 - 使用下面的 netstat 命令检查它。
netstat -pl | grep fpm
你会得到如下结果。

已安装具有所有必需扩展的 PHP 和 PHP-FPM。
第 4 步 - 安装和配置 MariaDB 数据库
BookStack 仅提供对 MySQL 数据库的支持,并且只能在 MySQL 版本 >= 5.6 下运行。对于本教程,我们将使用可以从 Ubuntu 存储库安装的最新版本的 MariaDB。
运行以下 apt 命令来安装 MariaDB 数据库。
sudo apt install mariadb-server mariadb-client -y
安装完成后,启动该服务并使其在每次系统启动时启动。
systemctl start mysql
systemctl enable mysql
现在我们需要为数据库配置root密码。
运行以下命令设置根数据库密码。
mysql_secure_installation
系统会要求您输入新的 MySQL root 密码 - 输入 root 用户的密码,然后按 Enter。对于其他人,只需将 Y 键入是,然后再次输入。
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
MySQL root 密码现已设置。

接下来,我们需要为 BookStack 安装创建一个新的数据库。
我们将使用用户 bookstak 和密码 [email 创建一个名为 bookstackdb 的新数据库。
以 root 用户身份登录到 MySQL shell。
mysql -u root -p
现在运行下面的所有 MySQL 查询。
create database bookstackdb;
create user ';
flush privileges;
exit;
Ubuntu系统已经安装了MySQL/MariaDB,BookStack安装的数据库也已经创建。

第 5 步 - 安装 PHP Composer
Composer 是 PHP 的依赖管理器。它允许您管理项目所需的 PHP 依赖项。在此步骤中,我们将使用安装程序脚本安装 Composer。 Composer 将用于下载 BookStack 所需的所有 PHP 库。
转到主目录并使用 curl 下载安装程序。
cd ~/
curl -sS https://getcomposer.org/installer | php
您将在您的主目录中获得 composer.phar 文件,将文件移动到 /usr/bin 目录,然后运行 composer 命令,如下所示。
mv composer.phar /usr/bin/composer
composer -v
您将获得系统上安装的作曲家版本。

PHP Composer 现已安装在 Ubuntu 16.04 上。
第 6 步 - 安装 BookStack
在此步骤中,我们将在 /var/www 目录下安装 BookStack,该目录将成为应用程序的根目录。
转到 /var/www 目录并使用 git 命令克隆 BookStack 源代码。
cd /var/www/
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
转到 BookStack/ 目录并使用 composer 命令安装所有 PHP 依赖项,如下所示。
cd BookStack/
composer install
确保没有错误,完成后,您将看到如下结果。

现在复制环境配置文件 .env.example 并使用 vim 编辑它。
cp .env.example .env
vim .env
在数据库详细信息行中,使用您的数据库信息更改所有内容,如下所示。
# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
保存并退出。
并将 BookStack 目录的所有者更改为 www-data 用户和组。
chown -R www-data:www-data /var/www/BookStack
接下来,我们需要为 BookStack 生成唯一的应用程序密钥,并使用 PHP artisan 命令更新数据库模式。
在根应用程序目录 /var/www/BookStack 上,运行如下所示的命令。
php artisan key:generate
php artisan migrate
系统将要求您确认,键入 yes 并按 Enter。

等待命令生成秘钥,导入数据库scheme。
BookStack 现已安装到 Ubuntu 16.04 上,生成了秘密唯一密钥应用程序,并更新了 BookStack 的数据库方案。
第 7 步 - 为 BookStack 配置 Nginx 虚拟主机
在这一步中,我们将为 BookStack 配置 nginx 虚拟主机。我们将使用 book.hakase-labs.co 作为我们 BookStack URL 的域名。
转到 /etc/nginx 目录并使用 vim 编辑器在 sites-available 目录下创建一个新的虚拟主机文件 bookstack。
cd /etc/nginx/
vim sites-available/bookstack
粘贴下面的配置。
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;
}
}
保存并退出。
现在激活虚拟主机并测试配置。
ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled/
nginx -t
确保没有错误,如下所示。

现在重启 Nginx 服务。
systemctl restart nginx
BookStack 的 Nginx 虚拟主机已添加并激活。
第 8 步 - 测试
打开您的网络浏览器并在地址栏中输入 BookStack URL,我的是 http://book.hakase-labs.co/
您将被重定向到登录/页面,如下所示。

输入默认管理员用户 [email 和密码 password,然后按登录按钮。
您将获得 BookStack 用户仪表板。

单击“设置”菜单,您将进入设置页面。

现在单击用户菜单,然后单击管理员用户。使用您的电子邮件地址更改默认电子邮件,使用您自己的秘密密码更改密码。

然后单击保存按钮。
这样,在 Ubuntu 16.04 上使用 LEMP(Linux、Nginx、MariaDB 和 PHP-FPM)堆栈的 BookStack 安装已经成功完成。
参考
- https://www.bookstackapp.com/docs/