Centos7部署个人wiki(bookstack)
在网上找的相关部署手册均有不完善的地方,踩了不少坑,以此文章做为部署汇总
安装epel-release
yum -y install epel-release
安装nginx,启动并设置自启(如有请忽略)
yum -y install nginx
systemctl start nginx
systemctl enable nginx
下载php-fpm以及所需依赖组件
因为版本适配的原因,需要下载php7.2版本以上的php-fpm,此处下载php74-fpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm //安装remi源
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 //安装php-fpm以及所需组件
此处应注意:若下载php-gd时报错缺失所需依赖,先将remi的所有repo删除,再使用yum remove 卸载掉remi;重新安装remi源再尝试下载php-gd
配置php
vim /etc/php.ini //编辑php配置文件
修改以下行,并去掉行前注释:
cgi.fix_pathinfo=0
保存退出
更改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
启动php-fpm并设置自启动
systemctl start php-fpm
systemctl enable php-fpm
安装mysql
因版本适配原因,需下载mysql5.6以上的版本,此处直接安装最新版
vim /etc/yum.repos.d/mariadb.repo //新建repo
直接将下面内容复制到repo:
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.4/centos/7.6/x86_64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
enabled=1
gpgcheck=1
注:上述的baseurl需根据自己的centos版本修改
清除yum缓存,构建yum缓存:
yum clean all
yum makecache
下载mariadb:
yum -y install MariaDB-server MariaDB-client
启用mysql并设置自启动:
systemctl start mariadb
systemctl enable mariadb
初始化mysql,并新建用于bookstack的数据库、用户
mysql_secure_installation //初始化mysql,设置好root密码
mysql -u root -p **** //登陆mysql
mysql > create database bookstackdb; //新建数据库
mysql > create user 'bookstack'@'localhost' identified by '123456'; //新建用户
mysql > grant all privileges on bookstackdb.* to bookstack@localhost identified by '123456'; //赋予新建用户权限
mysql > flush privileges; //刷新权限
mysql > exit; //退出mysql视图
安装Composer
cd /usr/bin/ //进入bin文件夹(放置composer的目标文件夹)
curl -sS https://getcomposer.org/installer | php //安装composer
mv composer.phar composer //改名
可执行composer -v查看其版本,以确定是否成功安装
安装bookstack
此处bookstack从github直接克隆
yum -y install git //安装git
mkdir -p /var/www //新建文件夹存放bookstack
cd /var/www //进入文件夹
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch //从github克隆bookstack
注:若上述git clone操作停顿在clone into,使用ctrl + c取消操作,进行以下操作:
ping github.com //ping github网站(一般不通)
systemctl restart network //重启网卡
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch //从github克隆bookstack
克隆完成后,进行下面操作:
cd BookStack/ //进入bookstack文件夹
composer install //使用composer安装
配置bookstack
cp .env.example .env //复制一份配置文件并更名使用
vim .env //编辑配置文件
将以下内容进行修改:
APP_URL=http://(服务器IP)
# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
DB_PASSWORD=123456
注:此处的APP_URL如果不改,最终访问会跳转到https://example.com
nginx用户授权
chown -R nginx:nginx /var/www/BookStack
为 BookStack 生成唯一的应用程序密钥,并使用 PHP artisan 命令更新数据库模式
/var/www/BookStack //进入文件夹
php artisan key:generate
php artisan migrate
配置nginx
cd /etc/nginx、conf.d/ //进入自己的Nginx所在配置文件夹
vim bookstack.conf //新建一个bookstack的nginx配置文件
以下内容直接复制进配置文件:
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;
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;
}
}
保存退出
systemctl restart nginx //重启nginx
测试访问
浏览器输入http://(IP/域名)
默认账号密码:
admin@admin.com
password