如何在Ubuntu 16.04 LTS上安装BookStack

BookStack是为您的项目创建文档/ wiki内容的开源平台。您的项目文档/ wiki存储在BookStack上...

如何在Ubuntu 16.04 LTS上安装BookStack

BookStack是为您的项目创建文档/ wiki内容的开源平台。 它已经用Laravel Web框架以PHP编程语言编写。 基本上,您的项目文档/ wiki以Bookstack的形式存储,然后是'章节'和'页面'。 它使您可以更容易地创建和阅读基于章节和页面的书籍文档。

在本教程中,我将逐步向您展示如何在LEMP(Linux,Nginx,PHP-FPM,MySQL / MariaDB)下的Ubuntu 16.04上安装和配置BookStack。 本教程将介绍详细信息,包括如何安装PHP Composer以及使用命令行手动创建MySQL数据库。

先决条件

  • Ubuntu 16.04
  • 根特权

我们将要做什么

  1. 更新存储库和升级系统
  2. 在Ubuntu 16.04上安装Nginx
  3. 安装和配置PHP-FPM
  4. 安装和配置MariaDB数据库
  5. 安装PHP Composer
  6. 安装和配置BookStack
  7. 为BookStack配置Nginx虚拟主机
  8. 测试

第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

Nginx Web服务器安装在Ubuntu 16.04服务器上。

第3步 - 安装和配置PHP-FPM

在这一步中,我们将安装并配置PHP-FPM 7.0。 我们将安装包含PDO,Tokenizer,GD,Tidy,MBString和OpenSSL的'BookStack'需要的一些扩展的PHP和PHP-FPM。

通过运行下面的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编辑'php.ini'文件以获得'fpm'配置。

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和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键。 对于其他人,只需键入“是”并再次输入。

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根密码现在已经建立。

安装并启动MariaDB数据库

接下来,我们需要为BookStack安装创建一个新的数据库。

我们将创建一个名为' bookstackdb '的新数据库, 其中包含用户' bookstak '和密码' bookstack@ '。

以root用户身份登录到MySQL shell。

mysql -u root -p

现在运行下面的所有MySQL查询。

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已安装在Ubuntu系统上,并且已创建'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

您将获得安装在系统上的Composer版本。

安装PHP Composer

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

确保你没有错误,当它完成时,你会看到如下结果。

安装BookStack

现在复制环境配置文件'.env.example'并使用vim进行编辑。

cp .env.example .env
vim .env

在数据库详细信息行中,使用数据库信息更改所有内容,如下所示。

# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
DB_PASSWORD=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键。

配置安装环境

等待命令生成密钥并导入数据库方案。

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虚拟主机

现在重新启动Nginx服务。

systemctl restart nginx

BookStack的Nginx虚拟主机已添加并激活。

第8步 - 测试

打开您的网络浏览器并在地址栏中输入BookStack URL,我的地址是http://book.hakase-labs.co/

你将被重定向到'login /'页面,如下所示。

测试BookStack

输入密码为' password '的默认管理员用户' admin@admin.com ',然后按' 登录 '按钮。

你将得到BookStack用户仪表板。

BookStack仪表板

点击'设置'菜单,你会看到设置页面。

设置菜单

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

书店用户

然后点击'保存'按钮。

有了这个,Ubuntu 16.04上的LEMP(Linux,Nginx,MariaDB和PHP-FPM)的BookStack安装已成功完成。

参考


分享按钮