如何在CentOS 7上安装BookStack Documentation Wiki

BookStack是为您的项目创建文档/ wiki内容的开源平台。在本教程中,我将逐步向您展示如何安装...

如何在CentOS 7上安装BookStack Documentation Wiki

BookStack是为您的项目创建文档/ wiki内容的开源平台。 它以PHP编程语言编写,并使用Laravel Web框架。 基本上,您的项目文档/ wiki将作为“书”存储在BookStack中,然后是“章”和“页”。 它使您可以更容易地创建和读取基于章节和页面的书籍文档。

在本教程中,我将逐步向您展示如何在LEMP(Linux,Nginx,PHP-FPM,MySQL / MariaDB)下的CentOS 7上安装和配置BookStack。 本教程将介绍包括PHP Composer安装和使用命令行创建MySQL数据库的主题。

先决条件

  • CentOS 7
  • 根特权

我们将要做什么

  1. 安装EPEL存储库
  2. 安装Nginx
  3. 安装和配置PHP-FPM
  4. 安装和配置MySQL / MariaDB
  5. 安装PHP Composer
  6. 安装BookStack
  7. 配置Nginx虚拟主机BookStack
  8. 测试

第1步 - 安装EPEL存储库

将新的第三方存储库添加到系统。 我们需要为我们的CentOS 7系统添加EPEL(Enterprise Linux的额外软件包)存储库,因此我们可以安装Nginx和其他软件包。

使用下面的yum命令安装EPEL存储库。

sudo yum -y install epel-release

第2步 - 在CentOS 7上安装Nginx

在本教程中,我们将在LEMP下运行'BookStack'平台,并且我们将从EPEL存储库安装Nginx Web服务器。

使用下面的yum命令安装Nginx Web服务器。

sudo yum -y install nginx

安装完成后,启动服务并使其每次在系统引导时启动。

systemctl start nginx
systemctl enable nginx

现在使用netstat命令检查它。

netstat -plntu

确保你获得了列表中的端口80,并且它被Nginx服务使用。

安装Nginx

Nginx Web服务器现在安装在CentOS 7系统上。

其他:如果您在系统上运行firewalld,请通过运行以下命令将新的HTTP服务添加到配置中。

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

第3步 - 安装PHP和PHP-FPM

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

在安装PHP和PHP-FPM之前,使用下面的rpm命令将新的'webtatic'存储库添加到CentOS 7系统。

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

现在使用yum命令按以下方式安装所需的全部扩展程序PHP和PHP-FPM。

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

安装完成后,我们需要编辑'php.ini'配置文件并编辑php-fpm池配置'www.conf'。

使用vim编辑器编辑'php.ini'配置文件。

vim /etc/php.ini

取消注释'cgi.fix_pathinfo'行并将该值更改为'0'。

cgi.fix_pathinfo=0

保存并退出。

接下来,编辑池配置文件'www.conf'。

vim /etc/php-fpm.d/www.conf

将运行PHP-FPM服务的默认用户更改为'nginx'用户和组。

user = nginx
group = nginx

在'listen'行中,将值更改为sock文件,如下所示。 我们将在sock文件下运行PHP-fpm。

listen = /var/run/php-fpm/php-fpm.sock

现在为套接字权限和所有者配置。 取消注释这些行并按如下所示更改值。

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

最后,取消注释PHP-FPM环境。

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

保存并退出。

如果配置完成,请启动PHP-FPM服务并在启动时启用它。

systemctl start php-fpm
systemctl enable php-fpm

现在使用netstat命令检查它。

netstat -pl | grep php

并确保您获得PHP-FPM sock文件。

配置php.ini

具有'BookStack'平台所需扩展名的PHP和PHP-FPM 7.0已安装在CentOS 7系统上。

第4步 - 安装和配置MySQL / MariaDB

BookStack仅支持MySQL数据库,并且只能在MySQL版本> = 5.6下运行。 在本教程中,我们将使用可以从Ubuntu存储库安装的MariaDB(最新版本)。

运行下面的yum命令来安装MariaDB数据库。

yum install -y mariadb mariadb-server

安装完成后,启动该服务并使其在启动时每次启动。

systemctl start mariadb
systemctl enable mariadb

现在我们需要为数据库配置'root'密码。

运行下面的命令来设置'root'数据库密码。

mysql_secure_installation

配置MariaDB

并且您将被要求提供新的MySQL root密码 - 为root用户键入您的密码并按Enter键。 对于其他人,只需输入“是”并再次按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根密码现在已经建立。

接下来,我们需要为BookStack安装创建一个新的MySQL数据库。 我们将创建一个名为'bookstackdb'的新数据库,其中包含用户'bookstak'和密码' bookstack@ '。

用root用户登录到MySQL shell。

mysql -u root -p

在shell上运行下面的所有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;

在MariaDB中为BookStack创建数据库

MySQL / MariaDB已安装在CentOS 7系统上,并已创建'BookStack'安装数据库。

第5步 - 在CentOS 7上安装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现在安装在CentOS 7系统上。

第6步 - 在CentOS 7上安装BookStack

在这一步中,我们将在'/ var / www'目录下安装BookStack - 该目录将成为根应用程序目录。

在安装'BookStack'之前,在你的系统上安装git。

yum -y install git

现在创建新的'/ var / www'目录。

mkdir -p /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

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

使用Composer安装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'目录的所有权权限更改为'nginx'用户和组。

chown -R nginx:nginx /var/www/BookStack

接下来,我们需要为BookStack生成唯一的应用程序密钥,并使用PHP artisan命令更新数据库模式。

在根应用程序目录'/ var / www / BookStack'中,运行以下命令。

php artisan key:generate
php artisan migrate

系统会要求您确认,输入'yes',然后按Enter键。

PHP工匠

等待表迁移成功。

已安装BookStack应用程序,生成秘密唯一密钥应用程序并更新BookStack的数据库方案。

第7步 - 为BookStack配置Nginx虚拟主机

在这一步中,我们将为BookStack配置nginx虚拟主机。 我们将使用'book.hakase-labs.co'作为我们的BookStack URL的域名。

转到'/ etc / nginx'目录并使用vim编辑器在'conf.d /'目录下创建新的虚拟主机文件'bookstack.conf'。

cd /etc/nginx
vim conf.d/bookstack.conf

粘贴下面的配置。

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;
  }
}

保存并退出。

现在测试nginx配置并确保没有错误,然后重新启动nginx服务。

nginx -t
systemctl restart nginx

BookStack应用程序的Nginx虚拟主机已经创建和激活。

配置Nginx虚拟主机

第8步 - 测试

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

您将被重定向到如下所示的“登录/”页面。

BookStack登录

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

你应该得到BookStack用户仪表板。

仪表板

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

设置

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

BookStack用户

然后点击'保存'按钮。

在CentOS 7上使用LEMP(Linux,Nginx,MariaDB和PHP-FPM)的BookStack安装已成功完成。

参考