天兴工作室

主题演示站

宝塔面板nginx设置证书时报错”nginx: [emerg] BIO_new_file“的解决办法

今天阿里云提现我一个网站的证书到期了,于是去阿里云申请了了一个免费的证书。

接着就是一套正常流程操作:下载nginx证书并解压,得到两个文件。打开宝塔后台,打开对应网站设置,打开ssl,复制下载的两个文件内容对应填写到ssl设置界面的其他证书里面。最后点击保存,直接给我报错了:

1.jpg

复制到百度翻译里面翻译了下,大概是打开这个文件出了什么错误之类的。

用宝塔的文件管理器打开这个文件发现没啥问题。

然后就开始尝试了各种办法,删掉文件重建啥的都试了还是报错。


没办法就去搜索引擎搜搜看了,结果这问题遇上的人还蛮多的。解决后也来写篇文章水一水。

问题原因:

未知,可能是nginx或者宝塔的bug?毕竟很久都没有打开宝塔的面板了,只是更换证书就报这种错误。

解决办法:

关掉网站的SSL,然后再去nginx设置里面重启一下nginx,最后再重新设置一次ssl证书即可。

关于dedecms收取授权费的一点吐槽

dedecms官网在2021年9月26日发了个声明:

1.jpg

然后好多站长群就炸了锅,毕竟使用dedecms建站的站长人数还是很多的。然而我看了这个声明就只感受到了dedecms的疯狂,完全是疯了。

下面是个人一点吐槽。

先声明,版权肯定是要尊重的,毕竟我自己也算是个独立开发者。开源的项目赚钱不容易也是事实。但是在一些渠道看到的信息显示dedecms已经取证并留档了很多使用dedecms的网站,并且请了专门的律师,这明摆着就是要最后疯狂一把管它是韭菜还是野草,统统收割掉!

想钱想疯了吗?

你开源的程序一直以来都没有在哪里有标注需要授权收费,然后赚不到钱学layui关掉官网git继续就完事了。取证留档这个操作是真的辣眼睛。

这么一搞使用了国内开源程序的站长人人自危。

2.jpg

然后恶性循环,毕竟建站需求就在那里。国内开源程序不靠谱那就去用国外的wordpress好了,国内其他开源程序还混个屁,dedecms这次的行为可以称得上恶劣了。

这种事情跟我这种开源程序主题模板开发者属于利益相关,所以吐槽了这么些,只能代表我个人的歪屁股看法而已。

吐槽完毕,继续搬砖。毕竟我已经好久没有用dedecms了...


ps:最后说下zblog的授权规则,这是之前写的一些关于版权和授权的说明:

关于zblog网站底部是否需要显示版权的一些说明

本站正式代理zblog商业授权服务

然后就这么事情天兴工作室在咨询zblog官方人员后得到的回复是zblog暂无强制授权的打算,毕竟zblog官方是可以靠应用市场是有些许盈利的......

wordpress只获取当前用户头像图片地址的方法

最近又在折腾wordpress了,个人感觉wordpress和zbp还真的是大不一样,wp完全就是函数走天下。一些模板常用的数据标签都是用各种各样的函数来实现,而zbp好多标签都弄到了“$zbp“这个对象里面去了,要获取起来比较简单。至于哪个效率更高我这技术水平就真说不上来了。

本文要说的是获取当前用户的头像这个需求。zbp直接用标签”$zbp->user->Avatar“即可。而wp需要这样:

//定义下全局参数
global $current_user;
//一个函数
get_currentuserinfo();
//输出头像,两个参数,第一个是用户ID(必须),第二个是头像大小(可选)
echo get_avatar( $current_user->ID, 32);

但是上面那玩意获取出来的是一个完整的”<img>“标签,在某些情况下只要用户头像图片的url咋办呢?还得另外写个函数:

function get_avatar_url($avatar_html) {
    preg_match('/src=["|\'](.+)[\&|"|\']/U', $avatar_html, $matches);
    if ( isset( $matches[1] ) && ! empty( $matches[1] ) ) {
        return esc_url_raw( $matches[1] );
    }
    //这里其实可以输出个默认的头像图片地址
    return '';
}

最后的wp获取当前用户头像图片地址的代码是:

//定义下全局参数
global $current_user;
//一个函数
get_currentuserinfo();
//输出头像,两个参数,第一个是用户ID(必须),第二个是头像大小(可选)
$userimg = get_avatar( $current_user->ID, 32);
echo get_avatar_url($userimg);

就是这么累。

jQuery的$post返回类型为json时不进入回调函数的坑

今天在调试一个网站的时候发现用jQuery的$post函数返回类型是json的时候,无论如何也到不了请求成功时运行的函数“function(data,status,xhr)”里面去。

902397dda144ad34cc107999dda20cf431ad8505.png

看了下控制台里面的请求和返回都是正常的...折腾了半天差点放弃用json的时候老老实实的去网上搜索了下,发现原来如果服务器返回的json数据格式不正确的话,就会出现这个问题。

然后检查服务器返回的json数据,没发现格式有什么问题...

又一次差点放弃的时候觉得是不是json字符串前后有空格造成的?

把字符串处理了一下再测试就成功了。

果然是字符串前后的空格造成的...

原来在$post方法用json做返回类型的话,json格式和数据是非常严格的,稍微有一点不对就进入不了回调函数,然后也没有任何提示...就踩了今天这个坑。

记录一下加深印象,也希望帮助到遇到同样问题的童鞋。

zblogphp调用分类下子分类和子孙分类的代码

zblogphp有程序自带的调用分类下子分类和子孙分类的代码,本文来尝试说明下代码使用方法。


zblogphp调用分类下子分类的函数是“$zbp->categorys[分类id]->SubCategorys”,此函数输出数组,直接用foreach循环即可取得对应数据,完整代码示例:

{foreach $zbp->categories[分类ID]->SubCategorys as $cate}
<a href="{$cate->Url}">{$cate->Name}</a>
{/foreach}

上面的“$zbp->categorys[分类id]->SubCategorys”只获取到了分类下的子分类,孙子分类是获取不到的。要子孙一起获取的话需要用“$zbp->categorys[分类id]->ChildrenCategories”,这个函数一样的是输出数组,使用方法跟上面也是差不多的,如下:

{foreach $zbp->categories[分类ID]->ChildrenCategories as $cate}
<a href="{$cate->Url}">{$cate->Name}</a>
{/foreach}

有了这俩个函数,我们只需要给指定的分类id即可很方面的获取到分类下的子孙分类了。

zblog一个数据库建立多个网站或者多个网站公用一个数据库的方法

今天在zblog论坛上看到有用户问zblog能不能一个数据库建立多个网站的问题,本文就来尝试介绍下实现这个需求的方法。

详细来说的话这个需求可以细分为,多个网站是公用一套数据还是多个网站公用一个数据库但是每个网站都有单独的数据。

如果你是需要多个网站公用一个数据库但是每个网站都有单独的数据这个就很简单,在安装zblog的第三步的时候会让你填写数据库信息:

图片.png

上图箭头指向的表前缀默认是“zbp_”,我们在一个数据库安装了一个zblog网站后安装另外一个zblog网站的时候,只需要修改下这个表前缀,例如改成“zbp1_”就可以了。另外个人不太建议一个数据库安装太多的zblog网站,会增加数据库查询的复杂度。


另外一种需求是多个网站是公用一套数据,简单来说就是一个zblog网站可以根据访问域名显示出不同的样式,这个需求zblog应用中心有现成的插件。

插件下载地址:https://app.zblogcn.com/?id=1506

安装插件后就可以在插件里面设置不同的域名显示不同的主题了。


如果你还有其他需求可以直接联系我们的在线qq:1109856918咨询获取报价。

zblog如何调用用户?zblog调用网站用户的方法

有的时候我们需要在网站的某个地方调用网站的注册用户,zblogphp有内置的函数可以直接调用,本文就是来分享zblog调用网站用户的方法。

zblogphp调用网站用户的函数是“$zbp->GetMemberList()”,这个函数一共有5个参数,详细如下:

$zbp->GetMemberList(
$select = null, //大部分不用选,直接用(*)即可
$where = null, //筛选指定条件的用户,例如array('<', 'mem_Level','4')就是调用等级小于4的用户
$order = null, //显示的顺序,例如array('mem_Articles'=>'DESC')就是按用户发布文章从多到少排序
$limit = null, //调用数量,填写整数
$option = null  //附加选项,调用数量多的时候配合$page分页使用
);

一个完整的调用例子如下:

{foreach $zbp->GetMemberList('*', null, array('mem_Articles'=> 'DESC'), 5, null) as $users}
<a href="{$users.Url}">{$users.Name}</a>
{/foreach}

以上就是zblog调用网站用户的方法代码了,希望能帮助到有需要的zblog用户。

zblog新版GetList函数的参数说明和使用方法

zblog1.7版本优化了原来的”GetList函数“,我们先回顾下老版本函数:

1.jpg

老版的”GetList函数“有7个参数,主要问题在于附加选项太弱,基本上能筛选指定条件的数据很少。所以之前开发者用的比较多的都是”$zbp->GetArticleList“函数。

而最新的”GetList函数“就补足了缺少调用指定逻辑的不足,再来看下新版的”GetList函数“:

QQ截图20210706175539.jpg

从上面这些参数我们可以看到,新版的”GetList函数“从数量到指定分类指定作者指定日期指定tag指定搜索词都可以轻松实现,重要是最下面可以自定义where和order,这两个也是数组,通过这些参数就可以更精细的获得指定逻辑的数据了。

附上新老两版函数的官方文档地址:

旧版:https://wiki.zblogcn.com/doku.php?id=zblogphp:development:functions:getlist

新版:https://docs.zblogcn.com/php/#/books/dev-functions?id=getlist-%e5%87%bd%e6%95%b0

记录瀑布流+下拉无限加载+lightbox页面踩的坑

最近接了个单,页面需要瀑布流加上下拉无限加载,另外点击图片还要有灯箱效果。这种复杂程度的页面自己写显然毫无意义[重复造轮子不可取,另外这种程度的轮子造不出来...]

直接上现成的库。

瀑布流用”masonry“,下拉无限加载用”infinitescroll“,图片灯箱用”lightGallery“。

坑就在整合里面了。

masonry和infinitescroll一起使用有很多教程。

第一个坑就是下拉加载新出来的页面”lightGallery“没有效果。

查询搜索之后发现要在”infinitescroll“下拉加载成功后回调函数里面用”destroy“销毁再重新加载数据。

第二个坑是masonry在加载的时候有的图片加载的比较慢就会发生获取不到图片高度导致页面页面重叠的问题。这个问题还是在客户的网站上发现的,自己的测试站因为速度还可以根本没发现...

解决办法就是要先判断图片是否加载完成,等全部的图片加载完成后再去执行masonry瀑布流效果。


最后附上代码,三个库的js文件都要加载这个就不贴了,下面的是三个库直接的整合代码:

var $container = $('.img-wrap'); // masonry大容器
var t_img; // 定时器
var isLoad = true; // 控制变量
     isImgLoad(function () {
            // 加载完成
            setTimeout(function() {
            $container.masonry({
                itemSelector: '.img-item', //masonry项目
                columnWidth: '.img-item',//masonry宽度
                percentPosition: true
            });
        }, 100);
        });

        function isImgLoad(callback) {
            $('.img').each(function () { //图片全部给"img"类名
                if (this.height === 0) {
                    isLoad = false;
                    return false;
                }
            });
            if (isLoad) {
                clearTimeout(t_img);
                callback();
            } else {
                isLoad = true;
                t_img = setTimeout(function () {
                    isImgLoad(callback);
                }, 500);
            }
        }

        $container.infinitescroll({
                navSelector: "#npage",
                nextSelector: "#npage a",
                itemSelector: ".img-item",
                pixelsFromNavToBottom: 300,
                loading: {
                    msgText: '我正在给力载入中...',
                    finishedMsg: '已经全部看完了哦',
                },
            },
            function(newElements) {
                $(".img-wrap").data("lightGallery").destroy(true);
                createLightGallery();
                var $newElems = $(newElements).css({
                    opacity: 0
                });
                setTimeout(function() {
                    $newElems.animate({
                        opacity: 1
                    });
                    isImgLoad(function () {
                         $container.masonry('appended', $newElems, true);
                    });
                }, 100);
            }
        );

zblog1.7版本“固定网站域名”按钮不见了怎么办?zblog固定网站域名功能设置步骤

已经有两位用户咨询我“zblog1的“固定网站域名”按钮为什么不见了?”,在开发群里吹水之后知道了答案和解决办法,猪说可以水一篇文章出来,那就水一篇文章出来。

固定网站域名按钮为什么不见了?

zblog在1.7版本里面去掉了固定网站域名按钮,1.7以前的版本是这样的:

1.7版本则是这样的:

至于此功能被去掉的原因,主要是因为这个功能会导致用户操作网站搬家后出错。由于有太多的用户报这个错误,于是索性给砍掉算逑。嗯,这很zblog。

固定网站域名设方法:

功能被去掉了有没有其他方法呢?

有的。

其实这个功能只是被隐藏了,你确实需要开启这个功能的话请按照以下步骤操作:

1、打开应用中心,下载并安装“Z-Blog PHP Development Kit”插件,如下图:

3.png

2、打开插件配置,选择blogconfig,找到“ZC_PERMANENT_DOMAIN_SHOW”选项后开启。

34.png

3‘回到网站设置,就可以看到固定网站域名开关回来了。

补充说明:

Z-Blog PHP Development Kit这个插件里面很多配置项都是一些系统核心功能开关,如果你不了解,请务必不要随意操作,否则很容易把网站搞挂掉,切记。

<< 1 2 3 4 5 6 7 8 9 10 > >>
«    2025年5月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.4

天兴工作室主题演示站点,如遇到问题请联系我们的在线qq:207649916咨询