如何在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
- 根特权
我们将要做什么
- 更新存储库和升级系统
- 在Ubuntu 16.04上安装Nginx
- 安装和配置PHP-FPM
- 安装和配置MariaDB数据库
- 安装PHP Composer
- 安装和配置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。 我们将安装包含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-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根密码现在已经建立。
接下来,我们需要为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现在安装在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
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服务。
systemctl restart nginx
BookStack的Nginx虚拟主机已添加并激活。
第8步 - 测试
打开您的网络浏览器并在地址栏中输入BookStack URL,我的地址是http://book.hakase-labs.co/
你将被重定向到'login /'页面,如下所示。
输入密码为' password '的默认管理员用户' admin@admin.com ',然后按' 登录 '按钮。
你将得到BookStack用户仪表板。
点击'设置'菜单,你会看到设置页面。
现在点击“用户”菜单,然后点击“管理员”用户。 用您的电子邮件地址和密码更改默认电子邮件,并使用您自己的密码。
然后点击'保存'按钮。
有了这个,Ubuntu 16.04上的LEMP(Linux,Nginx,MariaDB和PHP-FPM)的BookStack安装已成功完成。