Hi,
有钱终成眷属
没钱亲眼目睹

技术文章 第6页

群晖非docker通过Web Station安装nextcloud

伊阳阅读()

前段时间网了买了个蜗牛,装了个黑裙,也设置了内网穿透,可以正常外网进行群晖套件的访问。想着如果就这样了,感觉有点浪费,想着能不能再装点其它东西,接着就想装个Nextcloud网盘试试,docker安装Nextcloud虽然简单方便,但我就是想利用群晖的web套件装一下,也是尝试了好多次才安装成功。下面我就写下大概的步骤:

1、在群晖套件里安装Web Station、PHP7.2、phpMyAdmin、MDB10、Apache2.4这个个套件。

MDB10会要求设置root的密码,记好,后面要用到。
2、打开Web Station常规设置里,后台服务器选择Apache,php选择7.2 ,如下图。

3、从网上下载Nextcloud的安装包,并拷贝到群晖并解压到web目录下。

4、选中Nextcloud文件夹右键属性,给文件夹设置web权限。

5、在Web Station里,新建虚拟主机,设置如下图。

http端口可自行设置,https可根据需要自行开启设置。
6、通过phpmyadmin连接mdb数据库,并新建数据库,名称随意。

7、通过浏览器http://ip:端口,打开Nextcloud安装界面,会提示缺失如下扩展。


在web Station里进行扩展安装,不懂的话扩展最好全部安装,如图。

之后,就会出现安装界面,并要求你输入相关信息,如图。

数据库地址一定要改为127.0.0.1:3307,localhost:3307,会报错。其中3307为mdb的端口号。

好了,安装步骤到此就完了,效果如下。

黑群晖将系统盘多余的空间分离出来

伊阳阅读()

本文最后更新于2019年4月7日,已超过 6 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

借着”矿场“的崩盘,一大波名为“蜗牛星际”的矿机流入了市场,然后在某宝上一搜,发现好多店都在卖,我呢就找了个销量高的,花了298元买了个A款单网的。到货后,拆开包装一看,成色很新,日期为18年12月底。反正是用买机箱的钱,买了个主机,装个群晖刚好。群晖系统我用的6.2,引导装在U盘里,装完后发现主机自带的固态还剩大概10G左右的空间未使用,那如何将空闲的容量分离出来呢?由于对群晖系统不懂,也是第一次接触,网上找了好久,也没有教程,最后在心灰意冷之时,想着试一把大不了,系统坏了重装,谁知还给成功了。接下来,我将把大致步骤写下来,分享给像我一样的新手们,大佬就请绕路走吧。

1、点击存储空间管理员。

2、依次点击:存储池–>新增–>存储池类型(两者任选一种)–>下一步。

3、Raid类型选中:Basic,然后下一步。

4、把要分离空间的硬盘拖到右边,然后下一步。

5、点击确定。
当出现“硬盘数据将被清除”的提示时,大部分人和我当初一样,都放弃了,因为系统安装在硬盘上,万一清除了,又要重装系统,我在这里大胆的说:没事的。

6、选中:否,然后下一步。

7、点击:应用。

8、这下在存储池中,就可以看到刚才分离出来的空间了。

到这里,还没有完,还需要到存储空间里进行相关设置。
9、依次点击:存储空间–>新增–>选中存储池–>下一步。

10、可以对存储进行大小分区,然后下一步。

11、选择文件系统格式,自己选择任一即可,之后下一步。

12、最后点击:应用。



好了,到此就完成了,这样就把SSD系统盘里多余的空间给分离出来了。

WordPress 四分栏文章列表样式显示方法

伊阳阅读()

本文最后更新于2021年4月1日,已超过 4 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

当今是个信息共享的时代,好的东西就要拿出来与大家分享,才能体现它的价值。今天我要分享的是如何在WordPress首页展示四分栏文章列表样式,效果如下图所示。

第一步:将下列代码另存为rand-hot-comment.php。
<?php
//按时间获得浏览器最高的文章
function post_viewed_tab($mode = '', $limit ='', $days = '', $display = true) {
  global $wpdb, $post;
  $today = date("Y-m-d H:i:s"); //获取今天日期时间
  $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
  $where = '';
  $temp = '';
  if(!empty($mode) && $mode != 'both') {
    $where = "post_type = '$mode'";
  } else {
    $where = '1=1';
  }
  $most_viewed = $wpdb->get_results("SELECT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '$today' AND post_date > '$daysago' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");
  if($most_viewed) {
    foreach ($most_viewed as $post) {
      $post_views = intval($post->views);
      $post_views = number_format($post_views);
      $temp .= "<li class=\"list-title\"><span class=\"tab-icon\"></span><a href=\"".get_permalink()."\" title=\"".get_the_title()."\" target=\"_blank\" rel="noopener noreferrer">".get_the_title()."</a></li>";
   }		
  } else {
     $temp = '<a>'.__('N/A', 'Nana').'</a>'."\n";
}
  if($display) {
   echo $temp;
  } else {
    return $temp;
  }
}
?>
<?php
//按时间获得评论数最多的文章
function hot_comment_viewed_tab($number, $days){
  global $wpdb, $post; 
  $today = date("Y-m-d H:i:s"); //获取今天日期时间
  $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
  $sql = "SELECT * FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_date < '$today' AND post_date > '$daysago' AND post_password = '' ORDER BY comment_count DESC LIMIT 0 , $number ";
  $posts = $wpdb->get_results($sql);
  $output = "";	
    if(empty($posts)) {
    	$output = '<li>None data.</li>';
    } else {
    foreach ($posts as $post){
      $commentcount = $post->comment_count;
      if ($commentcount != 0) {
        $output .= "<li class=\"list-title\"><span class=\"tab-icon\"></span><a  href=\"".get_permalink()."\"  title=\"".get_the_title()."\"  target=\"_blank\" rel="noopener noreferrer">".get_the_title()."</a></li>";
      }
    }
  }
  echo $output;	
}
?>
<div class="tab-site wow fadeInUp sort" data-wow-delay="0.3s">
   <div id="layout-tab" class="tab-product">
      <h2 class="tab-hd">
	 <span class="tab-hd-con"><a href="javascript:">站长推荐</a></span>
	 <span class="tab-hd-con"><a href="javascript:">热门文章</a></span>
         <span class="tab-hd-con"><a href="javascript:">热评文章</a></span>
	 <span class="tab-hd-con"><a href="javascript:">随机推荐</a></span>
      </h2>
      <div class="tab-bd dom-display">
	 <ul class="tab-bd-con current">
	   <?php query_posts( array ( 'meta_key' => 'hot', 'meta_value' => 'true','showposts' => 8, 'orderby' => 'rand', 'ignore_sticky_posts' => 1 ) ); while ( have_posts() ) : the_post(); ?>
	   <li class="list-title"><span class="tab-icon"></span><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a>
           </li>							
	   <?php endwhile;wp_reset_query();?>
	  </ul>
	  <ul class="tab-bd-con">
	     <?php post_viewed_tab('post',8,90, true, true);wp_reset_query();  ?>	
	  </ul>
	  <ul class="tab-bd-con">            
	     <?php hot_comment_viewed_tab(8, 90);wp_reset_query(); ?>
	   </ul>
	   <ul class="tab-bd-con">
	      <?php $args = array('numberposts' => 8, 'orderby' => 'rand',);$rand_posts = get_posts($args); foreach( $rand_posts as $post ): ?>
              <li class="list-title"><span class="tab-icon"></span><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
              <?php endforeach; wp_reset_query(); ?>
	  </ul>			
        </div>
   </div>
</div>
<div class="clear"></div>
第二步:将rand-hot-comment.php上传到主题inc文件夹内,并在需要显示的位置插入下列代码。
get_template_part( '/inc/rand-hot-comment' );
第三步:将下列css代码,加入到主题style样式中。
.tab-site {overflow: hidden;margin: 0 0 10px 0;border: 1px solid #ddd;border-radius:0px;box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);}
.tab-hd {overflow: hidden;height: 40px;line-height: 40px;}
.tab-hd-con {float: left;text-align: center;cursor: pointer;height: 39px;border-right: 1px solid #ddd;font-size: 1pc;}
.tab-hd-con {width: 25%;}
.dom-display .current {display: block;}
.tab-hd .current{border-bottom: 3px solid #c01e22;}
.tab-hd .current a{color:#c01e22;}
.tab-bd-con {display: none; overflow: hidden;}
.tab-bd li {float: left;width: 47.35%;line-height: 210%;margin: 0 20px 0 0;white-space: nowrap; word-wrap: normal;text-overflow: ellipsis;overflow: hidden;}
@media screen and (max-width: 480px) {.tab-bd li {width: 95%;margin: 0 0 0 0;}}
.list-title {width: 84%;line-height: 210%; white-space: nowrap;word-wrap: normal;text-overflow: ellipsis; overflow: hidden;}
.tab-site {overflow:hidden;background:#fff;padding-bottom:10px}
.tab-bd li a{color:#555;}
.tab-bd .list-title .tab-icon:before{content:'\f105'}
.tab-bd .list-title .tab-icon{font-family:fontawesome; margin-right:5px;}
.tab-bd li a:hover{color:#c01e22;text-decoration:underline}
.tab-bd {background: #fff; padding:10px 15px;margin-top:-1px; border-top: 1px solid #ddd;}
第四步:将下列代码加到主题的script.js里。
$(document).ready(function(){
   $("#layout-tab span:first").addClass("current");
   $("#layout-tab .tab-bd-con:gt(0)").hide();
   $("#layout-tab span").mouseover(function(){
     $(this).addClass("current").siblings("span").removeClass("current");
     $("#layout-tab .tab-bd-con:eq("+$(this).index()+")").show().siblings(".tab-bd-con").hide().addClass("current");
   });
});

好了,方法就介绍完成了,大致方法如上所示,可能不能完全适应其它主题,需自行修改。

利用宝塔面板安装Chevereto图床

伊阳阅读()

本文最后更新于2021年2月9日,已超过 4 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

目前,自己在阿里云服务器上通过宝塔面板分别安装了Nextcloud云盘和Chevereto图床两款程序,之前也写过如何用宝塔面板安装云盘的文章,而我博客内的大部分图片都存在图床里。

Chevereto 是一款图床建站源码,允许用户创建自己的照片展示专题,在线图片存储分享服务系统,类似于 Flickr,非常适合自己搭建图床,易于部署,支持主题的定制。

Chevereto 采用 PHP 语言开发,支持多语言,提供中文语言包下载,支持本地上传和在线获取两种图像上传方式,支持图片的批量上传,并集成了网址缩短服务。

提供免费版本,可去官网社区下载。

而我自己用是Chevereto3.11.1开心版,安装包取自萌猫博客,传送门:https://moecat.cn/chevereto-3-11-1.html,默认为日语,安装完成后可进入后台更改语言。

要看效果的请打开:https://img.chyiyang.cn

今天闲来无事,就把如何在宝塔面板里安装Chevereto步骤记录下来,也算是做个笔记吧,同时也可以帮助有需要的人,好了废话不多说,开始…

第一步:网站–>添加站点–>填入站点信息,如下图所示。

第二步:点击新建站点的设置–>配置文件–>在最后的}前加入如下代码。

# Disable access to .ht* files
location ~ /\.ht {
	deny all;
}

# Disable access to sensitive files in app path
location ~ /(app|content|lib)/.*\.(po|php|lock|sql)$ {
   deny all;
}

# Disable log on not found images + image replacement
location ~* (jpe?g|png|gif) {
	log_not_found off;
	error_page 404 /content/images/system/default/404.gif;
}

# Enable CORS header (needed for CDN)
location ~* \.(ttf|ttc|otf|eot|woff|woff2|css|js)$ {
	add_header Access-Control-Allow-Origin "*";
}

# Force serve upload path as static content (match your upload folder if needed)
location /images {}

# Route dynamic request to index.php
location / {
	try_files $uri $uri/ /index.php?$query_string;
}
 
第三步:文件–>选中/www/wwwroot/img.chyiyang.cn文件夹内的文件,并点击删除。

第四步:将下载好的Chevereto.zip文件,解压后上传到img.chyiyang.cn文件夹内。

上传方法很多,可通过ftp软件或者宝塔面板自带的上传完成,这里就不做说明了。

第五步:创建数据库,填入数据库名、用户名、密码等,如下图。

第六步:在浏览器中输入自己的站点域名,会出现安装界面,输入数据库信息,点击确定。出现如下图。

第七步:接下来填入图床的管理员信息等,
需要注意的是个人为私用,社区为开放,其它人进行注册。

第八步:上步点击确定后,显示如下图,并点击下图中的红框,输入管理员信息进入,后台管理面板。

第九步:因为安装完为日文,按照下图,将程序设置成中文。


好了,图床安装到此就算完成了。
最后的最后要说的是,要在仪表盘设置里可以对图床的站点名称信息、水印相关信息等进行设置,在这里就不啰嗦了。

如果用的是3.11.1开心版,因为自带了随机图及音乐播放器,如果个人不喜欢,可以:

随机图片去除:/app/themes/Peafowl/views/index.php 删掉 使用 index – 原文件. php 改名 index.php
音乐播放器去除:/app/themes/Peafowl/header.php notepad++ 打开 第 586 – 641 行 删掉

下面我分享下樱花博客的Chevereto 3.11.1开心版,原安装包默认为日语,我已经修改为默认中文,需要的拿去。

CentOS和RedHat下8个最常用的YUM库

伊阳阅读()

本文最后更新于2021年4月1日,已超过 4 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

YUM (Yellowdog Updater Modified)是一个开源、广泛使用的命令行和基于图形的包管理工具。其用于管理基于RPM的Linux系统,包括但不限于RedHat Linux、CentOS和Oracle Linux。其用于在系统上安装、更新、移除和搜索软件包。

安装软件包不限于缺省的base和updates库,还包括附加的CentOS库 (Extras, Centosplus, CentOS-Fasttrack, Continuous Release, and Software Collections),你需要在你的系统上安装和启用其它第三方库。

如下库列表并非CentOS提供或者支持。它们可能不会及时更新,或者运行结果并不能达到你的预期,这些风险需要注意。
1. EPEL

EPEL (Extra Packages for Enterprise Linux) 想必大多数人都用过,它是一个免费、开源,广受欢迎的,基于社区的库项目。其目标是提供一个在Fedora下开发、测试和完善的高质量的软件包。并且可以在RHEL, CentOS和Scientific Linux等Linux系统可用。后续本文列举的库依赖于EPEL.

如果想在你的系统上使用EPEL库,使用如下命令:

# yum install epel-release
 

需要注意的是在RHEL 7上,你需要启用optional和extras库。因为EPEL包可能依赖这些库。

# subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"
 
2. REMI

REMI 是一个广受欢迎的提供PHP栈最新版本的第三方库,同时该库提供PHP栈其它相关软件。针对的用户包括Fedora及其它企业级Linux发行版,诸如RHEL、CentOS、Oracle和 Scientific Linux等等。

在安装Remi库之前,需要先安装EPEL库,具体如下:

- CentOS/RHEL 7 ---------------- 
# yum install epel-release
# wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7.rpm
# subscription-manager repos --enable=rhel-7-server-optional-rpms [On RHEL only]
---------------- CentOS/RHEL 6 ----------------
# yum install epel-release
# wget https://rpms.remirepo.net/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6.rpm
# rhn-channel --add --channel=rhel-$(uname -i)-server-optional-6 [On RHEL only]
 
3. RPMFusion 库

RPMFusion 是一个为Fedora和企业级Linux发行版提供免费和非免费软件的第三方库。

该软件库也依赖EPEL,因此在安装之前需要提前安装EPEL:

---------------- CentOS/RHEL 7 ---------------- 
# yum install epel-release
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm 
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
---------------- CentOS/RHEL 6 ----------------
# yum install epel-release
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm 
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm
 
4. ELRepo 库

ELRepo (Community Enterprise Linux Repository) 是一个提供诸如文件系统驱动、显卡驱动、网络驱动、声卡驱动等硬件相关软件包的RPM库。

通过如下命令可以安装该库:

---------------- CentOS/RHEL 7 ---------------- 
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
---------------- CentOS/RHEL 6 ----------------
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
 
5. NUX-dextop 库

NUX-dextop是一个为企业级Linux提供桌面及多媒体软件包的RPM库。其包括大量的图形软件和命令行软件,包括Remmina远程桌面、VLC媒体播放器等。

安装步骤如下:

---------------- CentOS/RHEL 7 ---------------- 
# yum -y install epel-release
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
---------------- CentOS/RHEL 6 ----------------
# yum -y install epel-release 
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
 
6. GhettoForge 库

GhettoForge 聚焦在为Enterprise Linux releases 6 和 7 提供base和其它第三方库不提供的软件包。

通过如下命令可以启用该软件库:

---------------- CentOS/RHEL 7 ---------------- 
# rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
---------------- CentOS/RHEL 6 ----------------
# rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el6.noarch.rpm
 
7. Psychotic Ninja 库

Psychotic Ninja 的目标是为Enterprise Linux releases 6 和 7 提供base和其它第三方库不提供的高质量软件包。

如果需要使用Psychotic Ninja库,首先需要导入GPG,然后安装该库:

# rpm --import http://wiki.psychotic.ninja/RPM-GPG-KEY-psychotic
# rpm -ivh http://packages.psychotic.ninja/6/base/i386/RPMS/psychotic-release-1.0.0-1.el6.psychotic.noarch.rpm 
 
8. IUS Community 库

最后介绍的是IUS (Inline with Upstream Stable) ,它是一个新的第三方的、社区支持的库,它为PHP, Python和MySQL提供了最新的高质量的RPM包。

跟我们了解到的其它库类似,IUS也依赖EPEL:

---------------- CentOS/RHEL 7 ---------------- 
# yum -y install epel-release
# rpm -Uvh https://centos7.iuscommunity.org/ius-release.rpm
---------------- CentOS/RHEL 6 ---------------- 
# yum -y install epel-release
# rpm -Uvh https://centos6.iuscommunity.org/ius-release.rpm
 

转自:https://www.toutiao.com/i6659602594354168323/

WordPress Tab三分栏文章样式实现方法

伊阳阅读()

本文最后更新于2021年4月1日,已超过 4 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
温馨提示

本文于2019年3月3日进行修正。

今天打算写一个我折腾了好一阵子的侧边栏Tab三分栏文章样式的实现方法,其实NANA主题也自带了一个三分栏的显示样式,但我自己不是很喜欢。当我浏览懿古今大佬的站点时,他的站点的三分栏样式,很对我的胃口,然后就扒了懿古今大佬的部分代码,在此表示感谢!!!在折腾的过程中,由于我自己对代码不是太懂,绕了不少的弯路,好在上天还是不会辜负勇于努力钻研的人,最终让我给弄成功了。

下面我就介绍下实现的方法,(NANA主题的话,那直接用即可,其他主题需自己适配)。

显示效果

1、将下列代码粘贴到当前主题的inc/functions文件夹的widgets.php下即可。
class zonghe_post extends WP_Widget {
  function __construct(){
    parent::__construct('zonghe_post', '主题&nbsp;&nbsp;Tab三分栏, array('description' => '包括站长推荐、热门文章和热评文章。') );
  }
  unction widget($args, $instance) {
    extract($args);
    echo $before_widget;
    $number = strip_tags($instance['number']) ? absint( $instance['number'] ) : 6;
    $days = strip_tags($instance['days']) ? absint( $instance['days'] ) : 90;
?>
    <ul id="top_post_filter">
      <li id="zhan_post" class="top_post_filter_active">站长推荐</li>
      <li id="men_post" class="">热门文章</li>
      <li id="ping_post" class="">热评文章</li>
    </ul>
    <div id="tab-content" class="investment_con">
       <div class="investment_con_list" style="display:block;">
          <ul class="tab_post_links">
	    <?php query_posts( array ( 'meta_key' => 'hot', 'meta_value' => 'true','showposts' => $number, 'orderby' => 'rand', 'ignore_sticky_posts' => 1 ) );$i=1; while ( have_posts() ) : the_post(); ?>
	    <li class="hot-title"><span class="li-icon li-icon-<?php echo $i;?>"><?php echo $i;$i++;?></span><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a>							
	     <?php endwhile;wp_reset_query();?>
          </ul>
       </div>					
       <div class="investment_con_list" style="display:none;">
          <ul class="tab_post_links">
             <?php get_timespan_most_viewed('post',$number,$days, true, true);wp_reset_query();  ?>
           </ul>
        </div>
        <div class="investment_con_list" style="display:none;">
           <ul class="tab_post_links">
            <?php hot_comment_viewed($number, $days);wp_reset_query(); ?>	
           </ul>
        </div>
	</div>
<?php
   echo $after_widget;
}
   function update( $new_instance, $old_instance ) {
     if (!isset($new_instance['submit'])) {
       return false;
     }
     $instance = $old_instance;
     $instance = array();
     $instance['number'] = strip_tags($new_instance['number']);
     $instance['days'] = strip_tags($new_instance['days']);
     return $instance;
   }
   function form($instance) {
     global $wpdb;
     $instance = wp_parse_args((array) $instance, array('number' => '6'));
     $instance = wp_parse_args((array) $instance, array('days' => '90'));
     $number = strip_tags($instance['number']);
     $days = strip_tags($instance['days']);
?>
    <p><label for="<?php echo $this->get_field_id('number'); ?>">显示数量:</label>
       <input id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
       <p><label for="<?php echo $this->get_field_id('days'); ?>">时间限定(天):</label>
       <input id="<?php echo $this->get_field_id( 'days' ); ?>" name="<?php echo $this->get_field_name( 'days' ); ?>" type="text" value="<?php echo $days; ?>" size="3" /></p>
       <input type="hidden" id="<?php echo $this->get_field_id('submit'); ?>" name="<?php echo $this->get_field_name('submit'); ?>" value="1" />
<?php }
}
add_action( 'widgets_init', create_function( '', 'register_widget( "zonghe_post" );' ) );
 
2、将下列两个hot_comment_viewed.php和hot-post-viewed.php放到当前主题的inc/functions文件夹下。


3、将下列代码加到当前主题的functions.php的?>前。
// 热门文章
require get_template_directory() . '/inc/functions/hot-post-viewed.php';
// 热评文章
require get_template_directory() . '/inc/functions/hot_comment_viewed.php';
4、将下面的js代码粘贴到主题的任一js文件内。
$(document).ready(function(){
   $('.investment_con').each(function(){
      $(this).children().eq(0).show();
   });
   $('#top_post_filter').each(function(){
      $(this).children().eq(0).addClass('top_post_filter_active');
   });
   $('#top_post_filter').children().mouseover(function(){
      $(this).addClass('top_post_filter_active').siblings().removeClass('top_post_filter_active');
      var index = $('#top_post_filter').children().index(this);
      $('.investment_con').children().eq(index).show().siblings().hide();
   });
});
注意:如使用的是NANA主题需删除当前主题js文件夹下script.php里的31-39行代码
5、下列是部分css样式,可放到主题的style样式里。
#top_post_filter {padding: 0 15px;}
#top_post_filter .top_post_filter_active, #top_post_filter li:hover {border-bottom: 3px solid #c01e22;cursor: pointer;color: #333;font-weight: 700;}
#top_post_filter li {float: left;width: 33.3%;height: 43px;line-height: 43px;color: #999;font-size: 1pc; text-align: center;border-bottom: 1px solid #e5e5e5;}
.tab_post_links li:first-child {padding-top: 10px;}
.li-icon-1 {background: #c01e22;}
.li-icon-2 {background: #23b7e5;}
.li-icon-3 {background: #6E8B3D;}
.li-icon {background: #ccc;font-size: 12px;color: #fff;line-height: 180%;margin: 0 5px 0 0;padding: 0 5px;border-radius: 2px;}
 

好了,通过上面5步,基本上可实现Tab三分栏显示效果,实际的样式效果可能跟主题的css有关,自己可自行调整。

懿古今NANA主题的一些Bug修复

伊阳阅读()

本文最后更新于2021年4月1日,已超过 4 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

使用懿古今大佬的NANA主题也有一段时间了,在使用过程中,发现NANA主题存在着一些bug,今天我就针对自己发现的bug进行的修复,做一下说明。

1、站长推荐
之前写过,今天就不再赘述了,请看下面的文章。

2、热评文章
修改前,表现为杂乱显示,且自动补充到8篇,不论文章是否有评论。
修改后,按照天数自动对有评论的文章进行排序。
只需要将主题下inc/functions下的hot-comment.php中的第5-11行代码

$limit_date = current_time('timestamp') - ($days*26400);
if($limit_date < 0){
  $limit_date=0;
}
$limit_date = date("Y-m-d H:i:s",$limit_date); 
  $sql = "SELECT * FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_date < '".current_time('mysql')."' AND post_date > '".$limit_date."' ORDER BY comment_count DESC LIMIT 0 , $number ";
 </pre>
改为
<pre lang="php" line="1" escaped="true">
$today = date("Y-m-d H:i:s"); //获取今天日期时间
$daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
    $sql = "SELECT * FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_date < '$today' AND post_date > '$daysago' AND post_password = '' ORDER BY comment_count DESC LIMIT 0 , $number ";

3、热门文章
修改前,显示如下图,指定期限天数无效。
修改后,如下图,在后台设置期限,可以正常显示。

只需要将主题下inc/functions下的hot-post.php中的第5-14行代码

$limit_date = current_time('timestamp') - ($days*26400);
$limit_date = date("Y-m-d H:i:s",$limit_date);	
$where = '';
$temp = '';
if(!empty($mode) && $mode != 'both') {
   $where = "post_type = '$mode'";
} 
else {
   $where = '1=1';
}
$most_viewed = $wpdb->get_results("SELECT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND post_date > '".$limit_date."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");

改为

$today = date("Y-m-d H:i:s"); //获取今天日期时间
$daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
$where = '';
$temp = '';
if(!empty($mode) && $mode != 'both') {
  where = "post_type = '$mode'";
} 
else {
  $where = '1=1';
}
$most_viewed = $wpdb->get_results("SELECT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '$today' AND post_date > '$daysago' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");

目前就发现了上面3个小bug,后续发现在进行补充!

信息化机房的三级等保技术要求

伊阳阅读()

本文最后更新于2019年3月4日,已超过 6 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

根据《信息系统安全等级保护基本要求》中华人民共和国国家标准GB/T 22239-2008,技术要求包含物理、网络、主机、应用、数据5个方面。而三级等保管理制度又细分为5个管理制度。下面将从这五个方面以及管理制度做相关说明介绍。

一、物理安全方面:

1、机房应区域划分至少分为主机房和监控区两个部分;

2、机房应配备电子门禁系统、防盗报警系统、监控系统;

3、机房不应该有窗户,应配备专用的气体灭火、备用发电机;

二、网络安全方面:

1、应绘制与当前运行情况相符合的拓扑图;

2、交换机、防火墙等设备配置应符合要求,例如应进行Vlan划分并各Vlan逻辑隔离,应配置Qos流量控制策略,应配备访问控制策略,重要网络设备和服务器应进行IP/MAC绑定等;

3、应配备网络审计设备、入侵检测或防御设备;

4、交换机和防火墙的身份鉴别机制要满足等保要求,例如用户名密码复杂度策略,登录访问失败处理机制、用户角色和权限控制等;

5、网络链路、核心网络设备和安全设备,需要提供冗余性设计。

三、主机安全方面:

1、服务器的自身配置应符合要求,例如身份鉴别机制、访问控制机制、安全审计机制、防病毒等,必要时可购买第三方的主机和数据库审计设备;

2、服务器(应用和数据库服务器)应具有冗余性,例如需要双机热备或集群部署等;

3、服务器和重要网络设备需要在上线前进行漏洞扫描评估,不应有中高级别以上的漏洞(例如windows系统漏洞、apache等中间件漏洞、数据库软件漏洞、其他系统软件及端口漏洞等);

4、应配备专用的日志服务器保存主机、数据库的审计日志。

四、应用安全方面:

1、应用自身的功能应符合等保要求,例如身份鉴别机制、审计日志、通信和存储加密等;

2、应用处应考虑部署网页防篡改设备;应用的安全评估(包括应用安全扫描、渗透测试及风险评估),应不存在中高级风险以上的漏洞(例如SQL注入、跨站脚本、网站挂马、网页篡改、敏感信息泄露、弱口令和口令猜测、管理后台漏洞等);

3、应用系统产生的日志应保存至专用的日志服务器。

五、数据安全方面:

1、应提供数据的本地备份机制,每天备份至本地,且场外存放;

2、如系统中存在核心关键数据,应提供异地数据备份功能,通过网络等将数据传输至异地进行备份;

六、三级等保的管理制度方面

安全管理制度、安全管理机构、人员安全管理、系统建设管理、系统运维管理。

SFP、SFP+、XFP光模块的区别

伊阳阅读()

本文最后更新于2019年2月14日,已超过 6 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

因我自己工作的原因,或多或少会接触到光模块,但我一直对光模块不是很了解,今天我在网上搜集了相关资料,并进行了整理,希望能帮到大家。

一、认识SFP光模块

SFP是SMALL FORM PLUGGABLE的缩写,可以简单的理解为GBIC的升级版本。SFP模块体积比GBIC模块减少一半,可以在相同的面板上配置多出一倍以上的端口数量。SFP模块的其他功能基本和GBIC一致。

有些交换机厂商称SFP模块为小型化GBIC(MINI-GBIC)。 SFP模块体积比GBIC模块减少一半,可以在相同的面板上配置多出一倍以上的端口数量。SFP模块的其他功能基本和GBIC相同。(Mini- GBIC)。 Gigabit Interface Converter的缩写,是将千兆位电信号转换为光信号的接口器件。GBIC设计上可以为热插拔使用。GBIC是一种符合国际标准的可互换产品。采用GBIC接口设计的千兆位交换机由于互换灵活,在市场上占有较大的市场分额。

GBIC模块分为两大类:

一是普通级联使用的GBIC模块,实现与其他交换机的普通连接;二是堆叠专用的GBIC模块,实现与其他交换机的冗余连接。

SFP模块则通过将CDR和电色散补偿放在了模块外面,而更加压缩了尺寸和功耗。

1、SFP 标准化

SFP收发器由一个竞争厂商之间的多边协议(MSA)进行规范。SFP根据GBIC接口进行设计,允许比GBIC更大的端口密度(主板边上每英寸的收发器 数目),因此SFP也被称作“mini-GBIC”。与此相关的小封装收发器(SFF transceiver)在尺寸上比SFP要小,但SFF是作为一种针脚(as a pin through-hole device)焊接到主机板上,而不是插到边卡插槽上。

2、SFP类型

SFP收发器有多种不同的发送和接收类型,用户可以为每个链接选择合适的收发器,以提供基于可用的光纤类型(如多模光纤或单模光纤)能达到的”光学性 能”。可用的光学SFP模块一般分为如下类别:850纳米波长/550米距离的 MMF (SX)、1310纳米波长/10公里距离的 SMF (LX)、1550 纳米波长/40公里距离的XD、80公里距离的ZX、120公里距离的EX或EZX,以及DWDM。

SFP收发器也提供铜缆接口,使得主要为光纤通信设计 的主机设备也能够通过UTP网络线缆通信。也存在波分复用(CWDM)以及单光纤”双向”(1310/1490纳米波长上行/下行)的SFP。

3、光纤分类

光纤分为多模光纤和单模光纤两种:其中,多模光纤由于发光器件比较便宜以及施工简易的特性,广泛用于短距离的通讯上,多模光纤又分为50um芯径和62.5um芯径两种,其中62.5um的比较常见,但性能上没有50um的好。

单模光纤一般用于远距离通讯,芯径为9um,单模光纤上传输距离分别达到10公里、20公里、70公里、120公里。一般交换机厂商在单模上只提供10公 里和70公里两种型号,20公里产品可以有效的节约系统集成商特定网络方案的总体造价。120公里产品用于特殊的超长运行环境。

4、SFP的区别

SFP光模块通常采用双LC接口,此外还有单芯SFP光模块。从速率和光纤类型上可分为百兆单多模、千兆单多模4种规格。

二、SFP多模和单模的区别

按照波长分有850nm/1310nm/1550nm/1490nm/1530nm/1610nm,波长为850nm是SFP多模,传输距离在2KM以下;波长为1310/1550nm的是SFP单模,传输距离在2KM以上,相对来说这三种波长的价格较其他三种要便宜。

裸模块如果没有标识很容易混淆,一般厂家会在拉环的颜色上进行区分,比如:黑色拉环的为多模,波长是850nm,蓝色、黄色和紫色拉环的为单模,波长分别是1310nm、1550nm、1490nm。

多模:

几乎所有的多模光纤尺寸均为50/125μm或62.5/125μm,并且带宽(光纤的信息传输量)通常为 200MHz到2GHz。多模光端机通过多模光纤可进行长达2公里的传输。以发光二极管或激光器为光源。拉环或者体外颜色为黑色。

单模:

单模光纤的尺寸为9/125μm,并且较之多模光纤具有无限量带宽和更低损耗的特性。而单模光端机多用于长距离传输,有时可达到100公里。采用LD或光谱线较窄的LED作为光源。拉环或者体外颜色为蓝色、黄色或者紫色。

两者之间的区别:

  • 单模光纤价格便宜,但单模设备较之同类的多模设备却昂贵很多。
  • 单模设备通常既可在单模光纤上运行,亦可在多模光纤上运行,而多模设备只限于在多模光纤上运行。
  • 随着今年来单模与多模SFP光模块的拉近,目前单模光缆与单模模块的采用已经成为主流。
  • 单模在使用上明显优于多模类型。

三、SFP和BIDI SFP的区别

众所周知,一个常见的SFP模块通常有两个端口,一个是TX端口用来发射信号,另一个是RX端口用来接收信号。不同于常见的SFP模块,BiDi SFP模块只有一个端口,在一个单一的光纤上采用整体WDM耦合器来发射和接收信号。

SFP和BIDI SFP连接方法

所有的SFP模块必须成对使用。对于常见的SFP,我们应该把具有相同波长的两个SFPs连接在一起。例如,我们在一端使用850nm SFP,那么在另一端我们必须使用850nm SFP(如下图所示)。

对于BiDi SFP,因为它用不同的波长来发射和接收信号,我们应该把具有相反的波长的两个BiDi SFP连接在一起。例如,我们在一端使用TX1310/RX1550nm BiDi SFP ,那么在另一端我们应该使用TX1550/RX1310nm BiDi SFP(如下图所示)。

BiDi SFP应用

目前,BiDi SFP主要用于光纤到户部署P2P(点对点)的连接。一个FTTH/FTTB有源以太网网络由一个中央局(CO)连接到客户端设备(CPE)组成。BiDi SFP允许利用波分复用在单纤上双向通信,这使得CO和CPE连接更简单。

四、SFP、SFP+和XFP的区别

很多人不清楚SFP+与SFP、XFP的区别,所以有时候带来不必要的麻烦(安防弱电圈)。10G模块经历了从300Pin,XENPAK,X2,XFP的发展,最终实现了用和SFP一样的尺寸传输10G的信号,这就是SFP+。SFP+凭借其小型化低成本等优势满足了设备对光模块高密度的需求,目前已经逐渐取代XFP成为10G市场主流。

SFP封装—热插拔小封装模块,目前最高速率可达4G,多采用LC接口 。

SFP+封装—标准封装,工作速率是10G,可以满足以太网10G的应用。

XFP封装—串行10G光收发模块的一种标准化封装。

SFP+光模块优点:

1、SFP+具有比X2和XFP封装更紧凑的外形尺寸(与SFP尺寸相同);

2、可以和同类型的XFP,X2,XENPAK直接连接;

3、成本比XFP,X2,XENPAK产品低。

SFP和SFP+的区别:

1、SFP 和SFP+ 外观尺寸相同;

2、SFP的最高速率可达4G,SFP+的速率是10G;

3、SFP协议规范:IEEE802.3、SFF-8472 ;

4、SFP+支持数字诊断。

SFP+ 和XFP 的区别:

1、 SFP+和XFP 都是10G 的光纤模块,且与其它类型的10G模块可以互通;

2、 SFP+比XFP 外观尺寸更小;

3、 因为体积更小,SFP+将信号调制功能,串行/解串器、MAC、时钟和数据恢复(CDR),以及电子色散补偿(EDC)功能从模块移到主板卡上;

4、 XFP 遵从的协议:XFP MSA协议;

5、SFP+遵从的协议:IEEE 802.3ae、SFF-8431、SFF-8432;

6、SFP+是更主流的设计;

7、SFP+ 协议规范:IEEE 802.3ae、SFF-8431、SFF-8432。

五、BIDI SFP+光模块的优势

随着通信的飞速发展,市场上对无线带宽的要求越来越高,于是很多光通信产品制造商不断的开发新的产品来满足市场需求。BiDi SFP+ 光模块也是在这种情况下产生的,接下来跟大家分享BiDi SFP+光模块的使用。

BIDI是单纤双向的光模块。即BiDi(Bidirectional)。BIDI光模块只有1个端口,通过光模块中的滤波器进行滤波,同时完成1310nm光信号的发射和1550nm光信号的接收,或者相反。

由此这种模块必须成对使用,其最大的优势就是节省光纤资源。BIDI光模块常用的波长有TX1310/RX1550nm;TX1310/RX1490nm; TX1550/RX1490nm。

SFP+光模块,(10 Gigabit Small Form Factor Pluggable)是一种可热插拔的,独立于通信协议的光学收发器,通常传输光的波长是850nm, 1310nm或1550nm,用于10G bps的SONET/SDH,光纤通道,gigabit Ethernet,10 gigabit Ethernet和其他应用中,也包括DWDM链路。

因此, BiDi SFP+光模块是基于CPRI(通用公共无线电接口)和OBSAI(开放式基站架构计划)标准开发设计研发的。BiDi SFP+光模块采用SFP+小封装,满足SFF- 8431 MSA、SFF-8432和 SFF -8472等协议标准,支持单纤双向传输。不仅如此,还支持不同传输距离,包括10km, 20km 以及40 km等。另外,工作温度范围非常广,从0℃-75℃可轻松运营,成为室内和室外通信网络的首选,为其提供高速、稳定的信号传输通道。

综上所述, BiDi SFP+光模块的优势特点:

  • 波长TX1270/RX1330nm的传输距离是10KM/20KM/40KM/60KM; 波长TX1490/RX1550nm的传输距离是80KM
  • 单电源+3.3V供电
  • LVPECL/PECL数据接口
  • 工作温度0℃-70℃※ 符合GR-468-CORE要求
  • 符合Laser Class 1,达到IEC60825-1要求
  • 可供应符合RoHS规范要求的产品

BiDi SFP+光模块广泛用于现有无线通信基站和新建的无线通信基站,并为通信基站和光纤天线间架起高速、稳定的信号传输桥梁。

电脑BIOS启动方式快捷键汇总

伊阳阅读()

本文最后更新于2019年2月1日,已超过 6 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

一般的品牌机,例如联想电脑,无论台式机或笔记本,选择启动项的键都是F12,开机的时候按F12键会出现启动项选择界面,从中我们可以选择电脑从什么介质启动,一般可供选择的有光驱、硬盘、网络、可移动磁盘(U盘)。

惠普笔记本:F9 ,戴尔:F12,有一部分组装机是F8,大体而言也就这么几种按键。有些电脑开机的时候在电脑屏幕下方会显示哪个键可以用来设置启动选项,有些电脑不显示,那就需要进BIOS将F12 的BOOT MENU 功能开启。

注意:其它机型请尝试或参考以上品牌常用启动热键

不同类型的机器进入BIOS设置程序的按键不同,有的在屏幕上给出提示,有的不给出提示,几种常见的BIOS设置程序的进入方式简单列表如下:

笔记本方面,不同的笔记本进入BIOS方法不同,这就造成了许多人进BIOS的时候的烦恼:

Thinkpad/IBM(冷开机按F1,部分新型号可以在重新启动时启动按F1)

HP(启动和重新启动时按F2)

SONY(启动和重新启动时按F2)

Dell(启动和重新启动时按F2)

Acer(启动和重新启动时按F2)

Toshiba(冷开机时按ESC然后按F1)

Compaq(开机到右上角出现闪动光标时按F10,或者开机时按F10)

Fujitsu(启动和重新启动时按F2)

大多数国产和台湾品牌(启动和重新启动时按F2)台式机进入BIOS开机时候请多按del键,

就可以进入BIOS 这些东西和主板厂商有关的,一般都是主板决定的。