看到大家都有一个自己的web端图床,十分羡慕。这几天终于忍痛买了一个域名用来搭建属于自己的图床。以下简单记录利用Chevereto开源版本搭建图床的过程。

由于最新版已剔除中文语言,特从GitHub上找到了最新中文版以供下载中文版

此为官方版本,但是不建议使用官方免费版官方docker

快速下载中文版自用的版本

1. 安装宝塔

2. 宝塔新建网站

在宝塔的“文件”中,找到网站所在目录,用宝塔的远程下载功能,将安装程序下载到网站目录并设置权限,同时删除目录下其他无用文件

image.png

.content 和 images 目录是需要设置为 777 权限的,我们用宝塔面板讲这两个目录设置为777权限

image.png

image.png

访问https://域名/installer.php,按向导来

从宝塔查看数据库信息填入

image.png

3. 安装chevereto-free

填写域名,并选择创建数据库

image.png

宝塔设置网站伪静态规则

image.png

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.访问网站网址开始安装

image.png

配置管理员信息

image.png

安装完成

注意事项

一、创建网站的时候,image.png

数据库账号和密码均为自动生成,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的问题)

image.png

image.png

网站设置中的配置文件中加入以下代码( 加入的位置参考配置文件中已有的 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)
最后修改:2022 年 05 月 24 日
如果觉得我的文章对你有用,请随意赞赏