看到大家都有一个自己的web端图床,十分羡慕。这几天终于忍痛买了一个域名用来搭建属于自己的图床。以下简单记录利用Chevereto开源版本搭建图床的过程。
由于最新版已剔除中文语言,特从GitHub上找到了最新中文版以供下载中文版
快速下载中文版自用的版本
1. 安装宝塔
略
2. 宝塔新建网站
在宝塔的“文件”中,找到网站所在目录,用宝塔的远程下载功能,将安装程序下载到网站目录并设置权限,同时删除目录下其他无用文件
.content 和 images 目录是需要设置为 777 权限的,我们用宝塔面板讲这两个目录设置为777权限
访问https://域名/installer.php,按向导来
从宝塔查看数据库信息填入
3. 安装chevereto-free
填写域名,并选择创建数据库
宝塔设置网站伪静态规则
if (!-f $request_filename){ set $rule_0 1$rule_0; } if ($rule_0 = "1"){ #ignored: "-" thing used or unknown variable in regex/rew } if (!-f $request_filename){ set $rule_1 1$rule_1; } if (!-d $request_filename){ set $rule_1 2$rule_1; } if ($uri !~* "\.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpe?g|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|webp|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$"){ set $rule_1 3$rule_1; } if ($rule_1 = "321"){ rewrite /. /index.php last; }
顺带去域名控制面板添加A记录,将以上填写的域名指向服务器IP。
5.访问网站网址开始安装
配置管理员信息
安装完成
注意事项
一、创建网站的时候,
数据库账号和密码均为自动生成,PHP一定要选7以上的版本,否则会出现图床语法不兼容
创建好之后,进入chevereto文件夹,删除掉里面的404.html和index.html,然后将1.6.2的压缩包解压缩到chevereto文件夹内。
为chevereto文件夹内的三个文件夹执行chmod -R 777,这一步是因为这个图床需要这三个文件夹的读写权限,这几个文件夹没有权限是进不去安装界面的
chmod -R 777 app
chmod -R 777 content
chmod -R 777 images
执行完毕后,点击设置(接下来的步骤是为了解决访问报404的问题)
在网站设置中的配置文件中加入以下代码( 加入的位置参考配置文件中已有的 location / ,同级别就行):
location / {
if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } try_files $uri $uri/ /api.php; } location /admin { try_files $uri /admin/index.php?$args;
}
````
或者加入这段代码`location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } try_files $uri $uri/ /api.php; } location /admin { try_files $uri /admin/index.php?$args; }`
![image.png](https://blog.zyt1.top:5333/usr/uploads/2022/05/1922277572.png)
二、改设置为中文
**因为还得去数据库里面进行一些操作**
首先需要到你刚才在安装界面填的那个数据库里找到 **chv_users** ,在这个里面找到你登录的账户,将**user_language**字段改为 **zh-CN** ,再刷新图床页面,即可看到界面变为中文
参考:[中文版教程](https://github.com/keven1024/chevereto-free-multi-language/discussions/1)
## 其他问题汇总
#### 1)首页添加网站图片数量
修改 `app/themes/Peafowl/views/index.php` 大约在32行的适当位置添加下面代码:
目前本站已安全托管 999999 ? $stats['images'] : number_format($stats['images']); ?> 张图片
复制
#### 2)添加备案信息
修改 `app/themes/Peafowl/views/index.php` 找到下述代码:
复制
替换成类似如下代码即可。
复制
#### 3)通过api上传图片到指定用户、指定相册
API V1没有办法上传与给定用户相关联的图像,但是你可以覆盖默认的API,将默认的`app/routes/route.api.php`的文件复制到`app/routes/overrides/route.api.php`文件夹。
**105行下列内容**
CHV\Image::uploadToWebsite($source);
复制
**改成这个** (将 `juanito` 更换成目标用户名或用户id)
// 这将会为juanito用户上传图片
$uploaded_id = CHV\Image::uploadToWebsite($source, 'juanito');
复制
通过这一步,`/api`路径(来源于`app/routes/overrides/route.api.php`)将以该用户的名称上传图像。
**改成这样是指定用户、指定相册**
$uploaded_id = CHV\Image::uploadToWebsite($source,'juanito', array('album_id'=>1));
复制
#### 4)注册和登录页面显示公共头部和尾部
##### 修改 login.php 文件
需要修改三处,一处为头部引用代码,另一处为背景调用代码,还有一处是尾部调用代码。
**a. 修改头部引用代码**
查找:
<?php G\Render\include_theme_file('head'); ?>
复制
替换为:
<?php G\Render\include_theme_header(); ?>
复制
**b. 修改背景调用代码**
查找:
<?php G\Render\include_theme_file('snippets/quickty/background_cover'); ?>
复制
替换为:
<?php G\Render\include_theme_file('snippets/homepage_cover_slideshow'); ?>
复制
**c. 修改尾部代码**
查找:
<?php G\Render\include_theme_file('snippets/quickty/top_left'); ?>
复制
替换为:
复制
##### 修改 header.php 文件
需要修改两处,一处修改 class 内容,另一处为修改 logo 地址。
**a. 修改 class 内容**
查找:
if (G\get_route_name() == 'index') { $body_class = CHV\getSetting('homepage_style'); if (function_exists('get_list')) { $list = get_list(); $hasPrev = $list->has_page_prev; if ($hasPrev) { $body_class = ''; } else { $top_bar_class = in_array(CHV\getSetting('homepage_style'), ['landing', 'split']) ? 'black' : get_theme_top_bar_color(); } } else { $top_bar_class = 'black'; }}
复制
在后面添加:
// 给 body 和 header 指定样式名称,跟首页保持一致,从而达到首页的头部效果elseif (G\get_route_name() =='login'or G\get_route_name() =='signup') { $body_class = 'full--wh landing'; $top_bar_class = 'transparent black'; }
复制
**b. 修改 logo 地址**
查找:
if ($body_class && G\get_route_name() == 'index' and in_array(CHV\getSetting('homepage_style'), ['landing', 'split'])) { $logo_header .= '_homepage';}
复制
在后面添加:
// 给 LOGO 指定样式名称,跟首页保持一致,从而达到首页的 LOGO 效果elseif ($body_class&& (G\get_route_name() =='login'or G\get_route_name() =='signup') andin_array(CHV\getSetting('homepage_style'), ['landing', 'split'])) { $logo_header.= '_homepage';}
复制
#### 5)Chevereto图床程序上传大图片失败Server error(Internal server error) 解决方法
很多人在使用上传图片时就一部分上传的时候提示:Server error(internal server error),特别是上传大文件的图片以及很多图片的时候,这个错误就简直了,因为他提示错误之后,有的图片会继续上传,有的不会,然后你就不知道你到底上传了什么图片,没上传什么图片。。。
上传多张图片是出错,或者上传单个大图片(7MB-10MB以上图片)时也会提示 Server error(internal server error),像这种情况我们需要修改一下PHP配置的数值:
max_execution_timemax_input_timememory_limitpost_max_sizeupload_max_filesize复制
这个数值要根据自己服务器配置来调,服务器配置低的不要调太高。
#### 6)添加邮件模板
上传邮件模板文件至 Chevereto 主题 `Peafowl/overrides/mails/` 文件目录下即可,或者直接替换掉`mails` 目录亦可。
**目前已支持以下模板**
* 账号更换邮箱
* 新账户注册验证
* 账户重置密码
* 新用户注册欢迎
**更改邮件模板头图**
打开邮件模板文件,找到以下代码,替换为你自己的图片链接。
$body_arr = [ // Mail body array (easier to edit)'Backimg'=>'https://resbeta.com/images/2019/02/22/365027cf0b5e911c3212750373c9f684.md.jpg',//修改此处图片链接即可.........];
复制
**文件下载**
[ 在此下载邮件模板](https://ola.niege.ml/t/DGO8KG)
#### 7)其他
[Chevereto也能用QQ、GitHub、微博登陆啦 - 松鼠の博客 (doge.uk)](https://love2wind.cn/go/aHR0cHM6Ly9kb2dlLnVrL2NvZGluZy9jaGV2ZXJldG8tcXEtbG9naW4uaHRtbA)
[Chevereto 更改图像预览快捷键 - 松鼠の博客 (doge.uk)](https://love2wind.cn/go/aHR0cHM6Ly9kb2dlLnVrL2NvZGluZy9jaGV2ZXJldG8tY2hhbmdlLWltYWdlLXByZXZpZXctc2hvcnRjdXQuaHRtbA)