Centos7安装部署BookStack
参考文章链接:
https://blog.csdn.net/weixin_44799797/article/details/122563323
https://www.freesion.com/article/7543932093/
1、安装epel-release
yum -y install epel-release
2、安装nginx
yum -y install nginx
3、下载php-fpm以及所需依赖组件
因为版本适配的原因,需要下载php7.2版本以上的php-fpm,此处下载php74-fpm
//安装remi源
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
//安装php-fpm以及所需组件
yum --enablerepo=remi-php74 install -y php-fpm php-mcrypt php-curl php-cli php-mysql php-gd php-xsl php-json php-intl php-pear phpw-devel php-common php-mbstring php-tidy php-zip php-soap curl
4、配置PHP
//编辑php配置文件
vim /etc/php.ini
//修改以下行,并去掉行前注释
cgi.fix_pathinfo=0
//保存退出
5、更改php-fpm配置文件
//编辑配置文件
vim /etc/php-fpm.d/www.conf
//修改以下内容,并去掉行前注释
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
6、安装Mariadb
1、新建mariadb.repo,并添加阿里云镜像路径
//新建repo
vim /etc/yum.repos.d/mariadb.repo
//复制以下内容到mariadb.repo中
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.4/centos/7/x86_64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
enabled=1
gpgcheck=1
baseurl:需要根据centos版本更改,可以查看阿里云镜像进行查看路径
2、清除yum缓存,构建yum缓存:
//请求yum缓存
yum clean all
//构建yum缓存
yum makecache
3、下载mariadb:
//官网下载
yum -y install MariaDB-server MariaDB-client
//阿里云镜像下载
yum -y install mariadb-server mariadb
4、启用mysql并设置自启动:
//启动Mariadb
systemctl start mariadb
//设置开机自启
systemctl enable mariadb
5、初始化mysql,并新建用于bootstack的数据库、用户
//初始化mysql,设置好root密码
mysql_secure_installation
//登陆mysql,直接回车进入mysql,后续步骤详见下图
mysql -u root -p
//新建数据库
create database bookstackdb;
//新建用户
create user 'bookstack'@'localhost' identified by '123456';
//赋予新建用户权限
grant all privileges on bookstackdb.* to bookstack@localhost identified by '123456';
//刷新权限
flush privileges;
//退出mysql视图
exit;
7、安装Composer
//进入bin文件夹(放置composer的目标文件夹)
cd /usr/bin/
//安装composer
curl -sS https://getcomposer.org/installer | php
//改名
mv composer.phar composer
//查看composer是否安装成功
composer -v
8、安装bookstack
注:需要提前安装git,如已有git,可以忽略
//安装git
yum -y install git
1、创建bookstack安装目录,并clonebookstack代码
//新建文件夹存放bookstack
mkdir -p /var/www
//进入文件夹
cd /var/www
//从github克隆bookstack
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
2、克隆完成后,进行下面操作:
//进入bookstack文件夹
cd BookStack/
//使用composer安装
composer install
3、配置bookstack
//复制一份配置文件并更名使用
cp .env.example .env
//编辑配置文件
vim .env
//复制以下内容到.env中
APP_URL=http://IP地址
DB_HOST=localhost
DB_DATABASE=bookstackdb (步骤6中新建的数据库)
DB_USERNAME=bookstack (步骤6中新建的数据库用户名 )
DB_PASSWORD=123456 (步骤6中设置的密码 )
9、nginx用户授权
注:不授权,无法正常访问页面
chown -R nginx:nginx /var/www/BookStack
10、为 BookStack 生成唯一的应用程序密钥,并使用 PHP artisan 命令更新数据库模式
//进入文件夹
cd /var/www/BookStack
php artisan key:generate
php artisan migrate
不执行此步骤,数据库bookstackdb中没有数据,需要执行此步骤往数据库中表
11、配置Nginx
1、配置nginx.conf文件
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vi /etc/nginx/nginx.conf
//复制以下内容到nginx.conf中
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
2、配置bookstack.conf文件
mkdir -p /etc/nginx/conf.d
cd /etc/nginx/conf.d
vim /bookstack.conf
//复制以下内容到bookstack.conf
server {
listen 80;
server_name (自己服务器的域名或者IP);
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;
//该部分为步骤5中www.conf的listen项
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;
}
}
12、配置SELINUX
vi /etc/selinux/config
---
//修改SELINUX为disabled
SELINUX=disabled
---
13、设置开机自启
systemctl enable nginx.service && systemctl enable mariadb.service && systemctl enable php-fpm.service
14、重启服务器
systemctl reboot
15、开启端口
1、开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放80端口
firewall-cmd --reload # 配置立即生效
2、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
如果不开放端口,将导致主机无法访问Linux中部署的应用
测试
1、输入:http://ip地址 即步骤8中配置的Ip地址
2、输入用户名:admin@admin.com
3、输入密码: password
如果页面无法访问:
- 查看相关配置文件是否正确
- 登录数据库,查看表信息是否完整
- 查看日志信息:
//查看日志信息
cd /var/log/nginx
//打印日志信息
tail -f bookstack_error.log -n 1000
//根据日志信息具体定位
1、登录页面
2、内部页面