最新版Chevereto-Free1.6.x常见问题集锦

  • 📝教程
  • 8063 阅读
  • 2022年07月26日
  • 8 条评论
  • 全文共2272字, 阅读大约需要6分钟
  • 搜索引擎已收录

首页 / 📝教程 / 正文

前言

昨天那篇文中我说了在Chevereto图床上传图片的时候出现了一个很奇怪的问题,webp文件无法上传,提示系统性错误,错误报告显示:Animated WebP is not supported,意思是不支持动态webp文件。

这是个啥意思,我这上传的也不是动态webp啊?难道是Chevereto出错了?不应该啊,我这个图床也稳定运行了快两年了,前段时间还上传过webp图片的。大致检查了一遍并没有发现是哪里的问题,因为我的Chevereto还是原作者停止维护的最后一个版本 V1.4.2 ,看着后台提示升级的红色图标,想了想还是升个级吧,反正也是闲着,这一升级可是费了老劲了,下面把这个坑爹的过程出现的问题以及处理方法的记录一下,至于上面这个问题的解决方法,容我卖个关子,答案放在最后😔。

国内无法在线升级

进入仪表盘,点击检查更新按钮,在弹出的提示框中点击现在升级,等了一会儿以后发现提示下载错误?什么鬼?以前升级都是很快就完成了,今天就这么背吗?转念一想,以前是国外主机,这个是国内主机,多半是因为这个 问题,这就好解决了。

解决办法

检查国内主机无法在线升级的原因是Github在国内无法访问,你只要能解决这个问题就可以了。具体方法请自行搜索,例如 :修改Hosts访问github,这里给大家说一种更简单的办法。

打开 /app/install/update/updater.php 并查找

https://github.com

替换为

https://mirror.ghproxy.com/https://github.com

这样就能国内主机就能直接后台在线升级了。或者直接下载Chevereto-free 1.6.2.zip后,上传覆盖旧版文件即可。

Github下载(已加速)🐙 网盘下载 🚀

新版Chevereto-Free没有中文了?

经过刚才的处理以后,再升级,很快就升级成功了,重新进入仪表盘,😳怎么成了英文了?个人设置和后台设置中都没有语言设置项了?Chevereto从初版开始就内置中文语言包,怎么这一更新还不支持中文了?这用起来就费劲了啊,绝对不能忍,找找万能的网友吧,一搜索才知道,原作者停止维护Free版本以后由另外一个人接手进行维护了,然而这个人据说是个棒子,所以1.5.1版开始就已经阉割语言设置功能,真TM的棒子,脑回路就是和正常人不一样😤。幸好有大佬解决了这个问题,下面就贴一下设置方法。

解决办法

已经有大佬现成的1.6.2中文完美版,直接上传覆盖除 images content app/settings.php以外的其他文件。


以下方法并不通用,有人成功有人失败,不推荐

1、修改class.gettext.php

打开文件:lib/G/classes/class.gettext.php

更新:最新版本chevereto已经不带这个文件了,您可以在网上下载个旧版chevereto从中提取该文件。如果您是由旧版升级来的,则不用下载。

搜索:private function cache(),在其下面第二行加上return false;

说明:这个函数是写语言缓存的,它会强行更改语言缓存文件。这里改成让它直接返回,不要写缓存。

更改后的代码如下:

        return false;
        if (!@is_dir(dirname($this->cache_file))) {
            throw new GettextException("Target cache dir doesn't exists", 400);
        }

2、修改l10n.php

打开文件:app/lib/l10n.php
搜索:

if ($msg && !is_null($args)) {

在这行上面增加一行

$msg = CHV\L10n::gettext($msg);

更改后的代码如下:

function _s($msg, $args=null)
{
    $msg = CHV\L10n::gettext($msg);
    if ($msg && !is_null($args)) {
        $fn = is_array($args) ? 'strtr' : 'sprintf';
        $msg = $fn($msg, $args);
    }
    return $msg;
}
说明:这是用于调用翻译函数。

3、修改loader.php

打开文件:app/loader.php
搜索:

define('CHV_APP_PATH_CONTENT_SYSTEM', CHV_APP_PATH_CONTENT . 'system/');

在这行下面增加:

define('CHV_APP_PATH_CONTENT_LANGUAGES', CHV_APP_PATH_CONTENT . 'languages/');
说明:这是定义了一个语言文件路径,最新版本给去掉了,我们要加回来

4、上传中文语言文件

下载中文语言文件,解压后,把该语言文件上传到网站的 app/content/languages/overrides/app/content/languages/overrides/app/content/languages/cache/overrides/ 三个文件夹内。第二个文件夹可能原来没有,需要手动新建。(可以在网上下载个旧版chevereto从中提取该文件。如果您是由旧版升级来的,则不用下载。)

修改数据库

  • 如果你网站原来就是设置的显示中文语言,该步骤可忽略。
  • 如果原来是其他语言,或者你说新安装的,需要进数据库,把数据表chv_settings,把里面的default_language的setting-value值改为zh-CN

后续问题

这样修改后,我的Chevereto-Free升级到 1.6.2 版本后 就支持中文了,但是,我看有网友说他们修改后出现错误,本着折腾的精神,我就又重新安装了一个1.6.2版本的测试了一下,果然修改后,打开网站直接白板了,估计是缓存问题,几经折腾,最终还是没能解决问题,各位大佬如果知道是哪里的错误,请留言指导一下。

文件下载

修改文件下载 🚀 语言包下载 🚀 Chevereto-Free 1.6.2 DEMO

安装1.6.2版本出现404错误

结果按照原来的方法安装,直接404了,猜测是伪静态的问题,上网搜索了一下,同样问题的人还不少,这里也贴一下安装方法。

新版环境要求

现在Chevereto最新版的最低环境要求已经提高到 PHP7.4MYSQL5.7。而且已经支持ImageMagick,

PHP扩展

你可能还需要安装以下PHP函数:

  • curl
  • exif
  • fileinfo
  • hash
  • imagick
  • gd
  • json
  • mbstring
  • pdo
  • pdo-mysql
  • session
  • xml
  • zip

设置文件夹权限

appcontentimages 三个文件夹,app/setting.php 文件设置权限为 777,经测试权限 775会出错。

伪静态

经我测试,1.6.2用以前的伪静态规则会显示404,所以要用新的,下面两个Nginx伪静态设置都是可以的。

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; }
    # Disable access to sensitive application files
    location ~* (app|content|lib)/.*\.(po|php|lock|sql)$ {
        return 404;
    }
    location ~* composer\.json|composer\.lock|.gitignore$ {
        return 404;
    }
    location ~* /\.ht {
        return 404;
    }
# Image not found replacement
location ~* (jpe?g|png|gif|webp) {
log_not_found off;
error_page 404 /content/images/system/default/404.gif;
}

# CORS header (avoids font rendering issues)
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}

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

需要注意的就是这几处,然后访问网站域名,根据提示填入数据库信息后安装就可以了。具体安装过程可以看我以前的文章。

宝塔面板安装Chevereto图床程序及其常见问题

[scode type="tip-success"]2022年7月27日更新:最新版Chevereto-Free常见问题集锦 - 国内主机在线升级的方法 - 升级1.6.2设置中文的方法 - 安装1.6.2时404错误的解决 - 宝塔面板PHP7.4不支持webp的解决方法[/scode] [post]2221[/post] ## 关于Chevereto Chevereto是一个可以帮助你建立自己的图像分享网站(图床)的应用程序,我们的目标是可以让世界上的任何一个人都可以建立自己的图像共享平台。我们坚定不移的为那些想要可定制的白标图....

宝塔环境下支持WeBP格式的设置

Chevereto-Free从1.3.0版就开始支持WEBP了,宝塔面板PHP7.4默认GD库是支持WEBP的。

1、查看GD库是否支持webp格式

宝塔面板打开PHP7.4设置 - 选择phpinfo - 查看phpinfo - 找到GD库参数 - 查看 WebP Support 是否为 enabled ,看下图(图中标记错了,不碍事,能看懂就行),只要是 enabled 就说明支持。如果查看GD库不支持WEBP,可以用下列命令重新编译安装PHP7.4。

编译安装PHP7.4

wget -O php.sh http://download.bt.cn/tools/php.sh
bash php.sh install 7.4

2、网站nginx放行webp

然后打开网站设置,分别在Nginx配置文件和伪静态中添加webp,见下图,在这个两个位置加入 webp ,然后保存。

3、Chevereto后台启用webp

最后登录Chevereto,进入仪表盘 - 设置 - 图片上传 - 勾选WEBP - 保存,此时就可以上传webp图片了。

如果还是上传出现错误,在webp转码软件里面取消勾选 保留元数据 就可以正常上传了。

安装imagick驱动Chevereto支持WEBP格式

新版的Chevereto-Free已经支持ImageMagick扩展,或许你想使用ImageMagick驱动Chevereto,但宝塔PHP7.4默认安装的ImageMagick却不支持WEBP格式,Chevereto对PHP8的兼容又不太好。以下介绍宝塔PHP7.4编译安装ImageMagick及设置的方法。

1、编译安装PHP7.4及imagick

wget -O php.sh http://download.bt.cn/tools/php.sh
bash php.sh install 7.4

然后再去安装 imagick扩展。

2、安装最新imagick包

  • 下载安装包

https://pecl.php.net/package/imagick 下载安装包,本文所用为当前最新版的3.5.1,从3.4.4后的版本都支持WEBP。

wget https://pecl.php.net/get/imagick-3.5.1.tgz
  • 解压安装包
tar -xzvf imagick-3.5.1.tgz
  • 编译安装
cd imagick-3.5.1
/www/server/php/74/bin/phpize
./configure --with-modules --with-webp --with-php-config=/www/server/php/74/bin/php-config
make && make install
  • 配置PHP及ImageMagick

编辑PHP7.4的配置文件,在末尾加上以下内容(no-debug-non-zts-20190902文件夹名称需以你服务器的具体文件夹名为准,请自行修改,勿照抄):

[imagick]
extension = /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/imagick.so

重启php应该就可以安装了

可选编辑/etc/ImageMagick-6/policy.xml文件,根据服务器具体情况修改以下几项的值,memory,map,area将限制ImageMagick所使用的内存缓存,width,height限制ImageMagick所处理的图片大小。

<policy domain="resource" name="memory" value="1024MiB"/>
<policy domain="resource" name="map" value="2048MiB"/>
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>
<policy domain="resource" name="area" value="2048MB"/>
<policy domain="resource" name="disk" value="2GiB"/>

修改app/settings.php文件

$settings['image_library'] = 'imagick';

跨域错误警告

今天发现本站在博文中Chevereto图床的图片提示跨域错误的警告,见下图,折腾了半天还是没能解决问题,最后在一篇博文中发现说Chrome不会有这个问题,但是Egde和Firefox就会出现上述问题,经我测试确实如此,所以应该是浏览器的问题,如果介意这个情况,可以换Chrome。

Access to XMLHttpRequest at 'https://cdn2.imgbed.top/images/2021/06/18/fca81fb7598573d4ff81e891426a71a5.jpg' from origin 'https://nie.su' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

webp上传错误

上面这些基本就是我因为Chevereto上传Webp图片提示错误,然后折腾的整个过程,但是经过上面的操作,再上传Webp图片竟然还是提示错误,就在我无计可施的时候,突然灵机一动,会不会不是Chevereto的问题,而是Webp图片有问题,会这样想还是因为上面提到的一句话:

如果还是上传出现错误,在webp转码软件里面取消勾选 保留元数据 就可以正常上传了。

平时我转换Webp图片都是用一个在线服务,无需上传文件的多功能图片批量处理程序v3.0,这里要说一下,这个服务还是非常不错的,大家都可以试试,多文件处理速度很快,会不会是转换文件的时候有点问题导致的上传错误,于是我就换另外一个在线服务,Squoosh,这一次上传成功了,所以应该就是在转换文件格式的时候有问题,我会向提供服务的这位大佬反馈这个问题,看下个版本能不能解决。

参考文章

 赞  赏

如果觉得我的文章对你有用,请随意打赏

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开  或者  扫一扫,即可进行扫码赞赏哦

原创文章,版权属于:涅槃博客 - love2wind
本文最后更新于2023年10月18日11时11分26秒,已超过190天没有更新,若内容或图片失效,请留言反馈
本文链接:https://nie.su/archives/2221.html(转载时请注明本文出处及文章链接)
作品采用:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

发表评论

已有 8 条评论

  1. h Lv.1     Win 10 /    Chrome 说道:

    编译安装imageMagick不管用,还是不支持webp

    1. 【站长】 love2wind Lv.6     Win 10 /    Chrome 说道:

      按照上面的方法编译安装imgeMagick以后应该就能解决问题,重新加载PHP配置,重启PHP试试。
      另外,自从Chevereto-Free分支被棒子接管以后,除了删除中文支持以为,各种问题层出不穷,建议换最新的开心版4.0试试。
      https://nie.su/archives/2236.html

      1. h Lv.1     Win 10 /    Chrome 说道:

        v4我也装了,同样卡在webp支持上

        1. 【站长】 love2wind Lv.6     Win 10 /    Chrome 说道:

          兰空图床和Chevereto的程序架构和底层支持是不一样的,同样的PHP环境,不一定就都能正常工作。其实现在选择比较多了,不是非常建议继续使用Chevereto了,换个其他的试试:滑稽:

          1. h Lv.1     Win 10 /    Chrome 说道:

            我又开了台机子试了一下,centos不行,debian一切正常,看来是系统问题

            1. 【站长】 love2wind Lv.6     Win 10 /    Chrome 说道:

              :乖:应该不是,我就是centos7.9,完全没有问题。不过问题解决了就好。

        2. 【站长】 love2wind Lv.6     Win 10 /    Chrome 说道:

          那问题多半就出在环境上,看看网站日志错误信息,升级下宝塔面板试试,或者安装个其他版本的PHP看看,具体我也想不出来,实在不行就在宝塔论坛问问。

          1. h Lv.1     iPhone /    Safari 说道:

            但是同一个环境下兰空图床可以正常使用,想不通

博主 - <?php $this->author->screenName(); ?>

love2wind

记录生活,分享世界