跳到正文
MAKI分享
返回

宝塔不安全?使用docker来搭建一个功能强大的兰空图床 ——Lsky Pro

更新于:
MAKI

简介:

Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名「兰空图床」,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。

Lsky Pro 官网:https://www.lsky.pro/

Lsky Pro on GitHub:https://github.com/lsky-org/lsky-pro

Lsky Pro 官方文档:https://docs.lsky.pro/

安装Nginx 执行以下命令安装Nginx:

apt install nginx

安装Nginx 执行以下命令安装Nginx:

systemctl status nginx

若出现类似内容即处于工作状态:

安装PHP

根据官方文档,我们需要安装以下扩展,开启以下函数:

  • PHP >= 8.0.2
  • BCMath PHP 扩展
  • Ctype PHP 扩展
  • DOM PHP 扩展
  • Fileinfo PHP 扩展
  • JSON PHP 扩展
  • Mbstring PHP 扩展
  • OpenSSL PHP 扩展
  • PDO PHP 扩展
  • Tokenizer PHP 扩展
  • XML PHP 扩展
  • Imagick 扩展
  • exec、shell_exec 函数
  • readlink、symlink 函数
  • putenv、getenv 函数

执行以下命令安装PHP-FPM:

apt install php-fpm

ps:注意 php 版本一定要>=8.0,否则将无法安装兰空图床!!!

执行以下命令安装BCMath、DOM、JSON、Mbstring、Tokenizer、XML、Imagick扩展(Ctype、Fileinfo、PDO已包含在上一步安装的php-common中):

apt install php-bcmath php-dom php-json php-mbstring php-tokenizer php-xml php-imagick

openssl扩展的安装比较特殊,需要执行以下命令安装:

apt install libssl-dev openssl

下一步,我们要对PHP进行配置。

执行以下命令,打开 php.ini :

nano /etc/php/8.1/fpm/php.ini
#注意路径中的8.1改成您安装的对应版本号

在php.ini中:

  1. 找到disable_functions,若 “=” 右侧存在exec、shell_exec、readlink、symlink、putenv、getenv函数,将其删除(默认状态下,等号右侧为空白);
  2. 找到memory_limit,根据机器配置适当调大 “=” 右侧最大内存大小;
  3. 找到post_max_size,适当调大 “=” 右侧POST方法所能传输数据的最大大小;
  4. 找到upload_max_filesize,适当调大 “=” 右侧最大文件上传大小;
  5. 找到open_basedir,在其前面加上“;“(默认已添加)。

ps:在文件上传大小限制方面,共有四个控制值。分别为:

  • PHP的post_max_size
  • PHP的upload_max_filesize
  • Nginx的client_max_body_size
  • 兰空图床管理界面对每个用户组上传文件大小的限制

这四者所设定的值都必须大于等于您所想要设置的最大文件上传大小。例如,您想要上传最大大小为10M的图片,那么这四项设定值都必须大于等于10M。如设置错误,将出现无法上传大文件的问题!

执行以下命令重启PHP-FPM:

systemctl restart php8.1-fpm
#根据安装版本调整版本号

检查PHP-FPM是否处于工作状态:

systemctl status php8.1-fpm
#根据安装版本调整版本号

若出现以下内容即为工作状态:

恭喜,PHP-FPM已经安装完成!

下载Lsky Pro正式版本

Lsky Pro的每个版本都是通过 github 发布,下载正式版本请访问https://github.com/lsky-org/lsky-pro/releases

ps:如果你不是开发者,请不要下载名称为 Source Code 的压缩包,此为核心源代码,需要自己安装拓展!

将下载的 zip 压缩包上传至安装路径(这里使用 /var/www/html )。

执行以下命令安装 unzip :

apt install unzip

执行以下命令解压压缩包:

unzip /var/www/html/lsky-pro-2.0.4.zip -d /var/www/html
#压缩包名、解压路径自行设置

执行以下命令删除压缩包:

rm -rf /var/www/html/lsky-pro-2.0.4.zip
#路径、压缩包名自行设置

下一步,我们将调整权限:

执行以下命令将安装文件夹及其子文件夹权限设为 755 ,所有者改为 www-data :

chmod -R 755 /var/www/html
chown -R www-data /var/www/html
#安装路径自行设置

恭喜,Lsky Pro正式版本的安装文件已经准备完毕!

配置Nginx与PHP-FPM协同工作

执行以下命令打开default网站配置文件:

nano /etc/nginx/sites-available/default

在 default 文件中,

转到 server 块,找到 root 项,将其后的路径指向 Lsky Pro 安装路径的 public 文件夹; 找到 index 项,在其后添加 index.php ; 找到 server_name 项,将其后的内容改为您的 IP 或 域名 ; 转到 location /  块,找到 try_files 项,将 =404 改为 /index.php?$query_string(即设置伪静态); 转到 location ~ \.php$ 块,去除行前 # 号,选择 With php-fpm 方法,将路径中的 PHP版本 修改为对应安装版本。修改完的效果如图所示:

执行以下命令打开Nginx配置文档:

nano /etc/nginx/nginx.conf

在http块中添加如下语句:

client_max_body_size 5m;
#5m为Nginx限制的一次性上传文件最大大小
#大小可视情况调整

ps:在文件上传大小限制方面,共有四个控制值。分别为:

PHP的post_max_size PHP的upload_max_filesize Nginx的client_max_body_size 兰空图床管理界面对每个用户组上传文件大小的限制 这四者所设定的值都必须大于等于您所想要设置的最大文件上传大小。例如,您想要上传最大大小为10M的图片,那么这四项设定值都必须大于等于10M。如设置错误,将出现无法上传大文件的问题!

执行以下命令检查Nginx配置文件是否正确:

nginx -t

若无错误,执行以下命令重启Nginx:

systemctl restart nginx

恭喜,现在PHP-FPM可以和Nginx协同工作了!

安装MySQL并准备数据库

执行以下命令安装MySQL和它的PHP扩展:

apt install mysql-server php-mysql

初次使用,我们需要设置root密码,执行以下命令进入MySQL控制台:

mysql

在控制台中,我们执行以下命令修改root密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
#'your_password'值请修改为你想要修改的新密码
#不要忘记末尾分号!!!

执行以下命令退出控制台:

exit;

然后,我们需要进行MySQL的安全初始化设置。

执行以下命令:

mysql_secure_installation

根据情况自主选择(以下仅作参考):

是否建立密码验证插件(用以验证密码强度):n 首次运行则会要求输入并确认root密码,设置过第2步的root初始密码则会提示是否修改密码。 如果遇到以下报错,请先执行上面第2步的设置root初始密码: Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn’t store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters. 是否删除匿名用户:y 是否禁止root远程登陆:n 是否删除test数据库:y 刷新权限:y

检查MySQL服务的状态:

sudo systemctl status mysql

显示如下结果则说明MySQL服务运行正常:

以root角色登录MySQL:

# 登录方式:mysql -u 用户名 -p密码 
mysql -u root -p

输入root密码进入MySQL

# 给root账号开放所有权限
GRANT ALL PRIVILEGES ON *.* TO root@'localhost';
# 创建新用户, 开放所有权限
# @后面'localhost'就是仅限本地访问,配置成'%'就是所有主机都可连接
CREATE USER new_user@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO new_user@'%' ;
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

ps:MySQL服务的启动/停止/重启

# 启动MySQL服务
service mysql start
# 停止MySQL服务
service mysql stop
# 重启MySQL服务
service mysql restart
然后我们执行以下命令,再次进入MySQL控制台:
mysql -pYour_Password
#“Your_Password”修改为刚刚设置的密码

执行以下命令,创建新的用户和数据库:

CREATE USER 'lsky'@'localhost' IDENTIFIED BY 'password';
#“password"字段改为新用户的密码
CREATE DATABASE IF NOT EXISTS lsky CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON lsky.* TO 'lsky'@'localhost';
FLUSH PRIVILEGES;
exit;

执行以下命令重启并检查MySQL是否正常工作:

systemctl restart mysql
systemctl status mysql

若出现如下内容即为正常工作:

恭喜,MySQL已经安装并配置完成!

至此,Lsky Pro的系统环境准备已经全部完成,下面我们将打开浏览器进行正式安装。

系统自检安装环境

在浏览器内打开您的IP或域名,应当看到如下界面:

确认系统自检通过后,请点击下一步。

数据库连接

按照界面指引填写之前准备好的数据库用户名、密码和数据库名:

确认信息无误并且通过测试后,点击立即安装

安装完成

若出现以下界面:

恭喜你!Lsky Pro已经可以使用了!


分享这篇文章:

上一篇
流媒体测试脚本
下一篇
io测试,三网测速脚本

// 评论