如何在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
- 根特权
我们将要做什么
- 安装EPEL存储库
- 安装Nginx
- 安装和配置PHP-FPM
- 安装和配置MySQL / MariaDB
- 安装PHP Composer
- 安装BookStack
- 配置Nginx虚拟主机BookStack
- 测试
第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 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文件。
具有'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
并且您将被要求提供新的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;
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现在安装在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
确保你没有错误,当它完成。 你会看到如下结果。
现在复制环境配置文件'.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键。
等待表迁移成功。
已安装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虚拟主机已经创建和激活。
第8步 - 测试
打开您的网络浏览器并在地址栏中输入BookStack URL,我的地址是: http ://book.hakase-labs.co/
您将被重定向到如下所示的“登录/”页面。
输入密码为'password'的默认管理员用户' admin@admin.com ',然后按'登录'按钮。
你应该得到BookStack用户仪表板。
点击'设置'菜单,你会看到设置页面。
现在点击“用户”,然后点击“管理员”用户。 用您的电子邮件地址和密码更改默认电子邮件,并使用您自己的密码。
然后点击'保存'按钮。
在CentOS 7上使用LEMP(Linux,Nginx,MariaDB和PHP-FPM)的BookStack安装已成功完成。