常见问题
部署时常见问题
Q: 如何在容器中创建数据库?
bash
# 一、进入容器,如果你的容器不叫 mysql,需要把下方的 mysql 改为你的容器名
docker exec -it mysql /bin/bash
# 二、登录 mysql,将下方 -p 后的 xzzz 修改为你的数据库密码
mysql -uroot -pxzzz
# 三、创建数据库
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
# 提示以下内容则创建成功
Query OK, 1 row affected
# 一、进入容器,如果你的容器不叫 mysql,需要把下方的 mysql 改为你的容器名
docker exec -it mysql /bin/bash
# 二、登录 mysql,将下方 -p 后的 xzzz 修改为你的数据库密码
mysql -uroot -pxzzz
# 三、创建数据库
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
# 提示以下内容则创建成功
Query OK, 1 row affected
Q: 启动时出现 Unknown database blossom
错误
查看 MySQL 中是否创建了对应数据库,若未创建数据库,可以使用如下语句创建数据库。
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Q: 启动时出现 Host xxx is not allowed to connect to this MariaDB server
该问题出现在使用MariaDB
时,你需要登录到数据库执行以下语句打开数据库的远程访问权限。
sql
use mysql;
update mysql.global_priv set Host='%' where User='root';
update user set host = '%' where user = 'root';
flush privileges;
use mysql;
update mysql.global_priv set Host='%' where User='root';
update user set host = '%' where user = 'root';
flush privileges;
Q: 如何配置 Nginx?
下方是一个 Nginx 服务端反向代理以及网页静态代理完整实例供你参考:
bash
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
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;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
# 监听 80 端口,本例中转发至了 https
server {
listen 80;
server_name www.wangyunf.com;
return 301 https://$host$request_uri;
}
# 本例中使用 https
# 如果你使用 http,将下方 location 开头的配置都写到上方的 80 端口监听中
server {
listen 443 ssl;
server_name www.wangyunf.com;
ssl_certificate cert/wangyunf.com_bundle.crt;
ssl_certificate_key cert/wangyunf.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 后台的反向代理,代理到指定端口
location /bl/ {
# 改为你的后台端口,或者 docker 的端口映射
proxy_pass http://127.0.0.1:9999/;
client_max_body_size 50m;
proxy_set_header x-forwarded-for $remote_addr;
}
# blossom 博客
location /blossom/ {
# 改为你解压博客/移动端的路径
alias /usr/local/xzzz/blossom/blog/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
gzip on;
gzip_buffers 32 4k;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml font/ttf font/otf image/svg+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
}
# blossom 网页版客户端
location /blossom-demo/ {
# 改为你解压网页客户端的路径
alias /usr/local/xzzz/blossom/demo/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
gzip on;
gzip_buffers 32 4k;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml font/ttf font/otf image/svg+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
}
}
}
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
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;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
# 监听 80 端口,本例中转发至了 https
server {
listen 80;
server_name www.wangyunf.com;
return 301 https://$host$request_uri;
}
# 本例中使用 https
# 如果你使用 http,将下方 location 开头的配置都写到上方的 80 端口监听中
server {
listen 443 ssl;
server_name www.wangyunf.com;
ssl_certificate cert/wangyunf.com_bundle.crt;
ssl_certificate_key cert/wangyunf.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 后台的反向代理,代理到指定端口
location /bl/ {
# 改为你的后台端口,或者 docker 的端口映射
proxy_pass http://127.0.0.1:9999/;
client_max_body_size 50m;
proxy_set_header x-forwarded-for $remote_addr;
}
# blossom 博客
location /blossom/ {
# 改为你解压博客/移动端的路径
alias /usr/local/xzzz/blossom/blog/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
gzip on;
gzip_buffers 32 4k;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml font/ttf font/otf image/svg+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
}
# blossom 网页版客户端
location /blossom-demo/ {
# 改为你解压网页客户端的路径
alias /usr/local/xzzz/blossom/demo/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
gzip on;
gzip_buffers 32 4k;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml font/ttf font/otf image/svg+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
}
}
}
使用中常见问题
Q: 后台启动成功,但客户端连接不上
排查以下问题:
- 如果登录页填写的后台地址为 https,则后台必须能通过 https 访问到。
- 如果访问客户端为 https,则登录页填写的后台地址也必须为 https。
- 登录地址中不能包含
editor/#/settingindex
。
Q: 图片上传后在照片墙中无法显示
在设置中将文件访问地址已修改为【登录地址+/pic
】,也可点击右侧自动配置按钮,会自动修改为【登录地址+/pic
】。
Q: 图片上传时提示图片已存在
该配置是为了防止误传重复文件,你可以在设置中忽略该校验。
Q: 使用 Docker 部署时,备份或导出文件未在配置的文件夹目录中
检查 备份文件路径 - BACKUP_PATH 是否挂载到了宿主机中。