搭建个人图床管理工具

前言

之前因为服务器到期了博客暂停了好久,近期购买了服务器,也折腾了NAS,然后又看到阿里云200mbps峰值带宽的服务器,立马下单。把我的博客恢复起来了网站是blog.aohyi.cn,并且重新好好装扮了一下blog总体采用了简约的风格。这个时候又遇到了新的问题需要解决。就是图片问题,我主要是用来解决下面这几个问题。1、这个时候发现我的每次在协文章的时候每次遇到要插入图片的时候,我都是用文字描述。避免插入图片。2、我的博客的缩略图blog的缩略图都是随便整了几个,想拓展又要到处去找别人的图很不方便。3、外面找的图片隔一段时间就失效了。
我想算了索性我自己搭建一个好了。这就开始了我这段新的折腾之旅。

一、选方案确定思路

因为搭建自己的图片网站,需要具备以下几个方面的功能。
1、需要界面简洁。
2、能够随时登录地址进行图片浏览。
3、可以在线上传下载删除图片。
4、可以使用我存在nas的图片。可以通过一些webdev、FTP之类协议链接过去。
基于上面这些需求我到处找解决方案,发现一个开源的图床准备试一试。
开源地址放这里兰空图床
这个又详细的文档,也有相关案例看了能满足我的需求,需要准备开整试一试。希望能满足我的需求。
我用的服务器是ubuntu22.04,服务器上已经安装nginx、mariadb、PHP

二、找到官方文档开整

兰空图床开源版V2.0文档
直接快速入门-安装

1、找个目录放项目

我习惯放在opt里面。依次运行下面的命令

1
2
3
cd /opt
mkdir lsky-pro
cd ./lsky-pro

获取安装包
https://github.com/lsky-org/lsky-pro/releases](https://github.com/lsky-org/lsky-pro/releases
下载最新的安装包,并上传到/opt/lsky-pro然后解压

1
unzip lsky-pro-2.1.zip

然后强迫症删掉安装包

1
rm -rf ./lsky-pro-2.1.zip

2、安装环境

然后是安装nginx我服务器上已经安装过来所以不用安装了。
然后安装PHP拓展,不知道为什么PHP要求页面是空白的,我也不知道要安装那些PHP拓展后面再readme里面找到了。
如下:

  • 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 函数
  • chmod、chown、fileperms 函数
    安装拓展老报错。先安装个PHP最新版。往下走走看,不行在回头来啃拓展安装。

3、配置nginx

这里应该是配置到public下的index.php来进行安装。

1
vim /etc/nginx/sites-available/lsky-pro.conf

填入

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name images.aohyi.cn;

root /opt/lsky-pro/public/; # 确保路径正确
index index.php index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ /index.php?$query_string;
}
}

启用配置

1
sudo ln -s /etc/nginx/sites-available/lsky-pro.conf /etc/nginx/sites-enabled

检查配置是否正确

1
nginx -t

显示successful表示没有问题
重启nginx

1
sudo systemctl restart nginx

域名配置后解析
我是配置到images.aohyi.cn,配置后好打开域名。
哦。不行出错了。网页下载了一个名为“下载”的文件。不对。应该是哪里出错了。
重新再来。另外找了个教程。

三、另外找到教程开整

教程地址
之前找到b站视频,和官方文档。我个渣渣搞了半天没搞出来。还是另外找大神教程在弄弄。

1、安装php跟php扩展

安装php

1
apt install php-fpm

安装php扩展

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

php-dom安装失败,AI告诉我运行下面这个命令指定具体版本需要先安装xml

1
2
sudo apt install php8.3-xml
sudo apt install php-dom

安装完成后,可以通过以下命令验证 DOM 扩展是否已正确加载:

1
php -m | grep dom

如果输出包含 dom,则表示 DOM 扩展已成功安装并加载。

接下来安装openssl

1
apt install libssl-dev openssl

2、配置php.ini

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

1
2
3
4
```
执行以下命令,打开php.ini:
```bash
nano /etc/php/8.3/fpm/php.ini

注意路径中的8.1改成您安装的对应版本号
在php.ini中,找到disable_functions,

1
2
3
4
5
6
7
8
9
10
11
12
若 “=” 右侧存在exec、shell_exec、readlink、symlink、putenv、getenv函数,将其删除(默认状态下,等号右侧为空白);
找到memory_limit,根据机器配置适当调大 “=” 右侧最大内存大小;
找到post_max_size,适当调大 “=” 右侧POST方法所能传输数据的最大大小;
找到upload_max_filesize,适当调大 “=” 右侧最大文件上传大小;
找到open_basedir,在其前面加上“;"(默认已添加)。
请注意:在文件上传大小限制方面,共有四个控制值。分别为:

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

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

1
systemctl restart php8.3-fpm

3、拉去安装包解压,并给文件夹赋值权限

这个在对官方文档的时候我弄过了。这里补充下权限

1
2
chmod -R 755 /opt/lsky-pro
chown -R www-data /opt/lsky-pro

4、配置nginx

前面的配置不对重新配一下

1
vim /etc/nginx/sites-available/lsky-pro.conf

填入

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name images.aohyi.cn;

root /opt/lsky-pro/public/; # 确保路径正确
index index.php index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ /index.php?$query_string;
}
}

启用配置

1
sudo ln -s /etc/nginx/sites-available/lsky-pro.conf /etc/nginx/sites-enabled

检查配置是否正确

1
nginx -t

显示successful表示没有问题
重启nginx

1
sudo systemctl restart nginx

域名配置后解析
我是配置到images.aohyi.cn,配置后好打开域名。
还是不行!!!!试了很多办法
打开域名会下载public下的index.php
我查了下可能是之前弄wordpress的时候弄得php版本太多了。
这就是一个服务弄多个应用的确定。不好维护。
所以我最后删除所有php。

最后发现是浏览器的原因,我常用edge浏览器,这个浏览器打开页面变成下载页面,我用谷歌浏览器就正常。
我都要奔溃了。最后发现是这么一个原因。
我原来一直说用edge跟谷歌没什么区别。因为edge也是用谷歌浏览器内核改的。我现在收回这句话。能用谷歌浏览器就用谷歌浏览器吧。