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

技术文章 第6页

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

伊阳阅读(2511)

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

当今是个信息共享的时代,好的东西就要拿出来与大家分享,才能体现它的价值。今天我要分享的是如何在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图床

伊阳阅读(1W+)

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

目前,自己在阿里云服务器上通过宝塔面板分别安装了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库

伊阳阅读(3026)

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

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三分栏文章样式实现方法

伊阳阅读(3967)

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

本文于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修复

伊阳阅读(2259)

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

使用懿古今大佬的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,后续发现在进行补充!

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

伊阳阅读(2258)

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

根据《信息系统安全等级保护基本要求》中华人民共和国国家标准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光模块的区别

伊阳阅读(3794)

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

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

一、认识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启动方式快捷键汇总

伊阳阅读(2846)

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

一般的品牌机,例如联想电脑,无论台式机或笔记本,选择启动项的键都是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 这些东西和主板厂商有关的,一般都是主板决定的。

Nextcloud15的安全及设置警告优化处理方法

伊阳阅读(1W+)

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

昨天,介绍了有关在宝塔面板下配置安装Nxtcloud15的教程,但是安装完成后,在后台的概览里显示安全设置及警告的提示信息。

如图:

下面,我就总结下如何处理安全设置及告警提示信息。

1、您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者你可以将数据目录移动到 Web 服务器文档根目录。

解决方法是修改nextcloud绑定的网站配置文件,添加nextcloud常用目录禁止访问即可,加入下列代码

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
    deny all;
}

2、PHP的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”)函数测试返回了一个空值。 请参照安装说明文档 ↗中的PHP配置说明查阅您服务器的PHP配置信息,特别是在使用php-fpm时。

从宝塔文件管理,打开/www/server/php/72/etc/php-fpm.conf,在其尾部添加一行

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

保存并重启PHP即可解决该问题。

3、通过 HTTP 访问网站不安全。强烈建议您将服务器设置成 HTTPS 协议,请查阅 安全贴士↗。

如果以前申请过SSL,可以将crt和key用记事本打开,分别黏贴到下图中。

如果没有,也可注册宝塔会员,免费申请,申请完点击部署即可。

4、您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档。
您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档。

这两个警告可以一起解决,出现该提示一般是因为这两个路径的伪静态设置有问题,导致无法正常访问。
解决方法就是添加两行重定向配置

rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;

5、未找到 PHP 的 “fileinfo” 模块。强烈推荐启用该模块,从而获得更好的 MIME 类型探测结果。

因为php环境默认是没有安装fileinfo这个扩展模块的,所以需要手动去宝塔PHP管理选项中安装fileinfo扩展。

6、内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。

安装php的Memcached和apcu模块(注意是memcached,非memcache),我选的是Memcached和apcu

编译安装完毕之后,从宝塔面板打开/www/wwwroot/你的域名/config/config.php,手动给nextcloud的配置文件中添加一行设置,指定使用APCu作为缓存
第1行为指定本地缓存为APCu,第2、3行为指定分布式缓存为Memcached

'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.distributed' => '\\OC\\Memcache\\Memcached',
  'memcached_servers' => 
  array (
    0 => 
    array (
      0 => 'localhost',
      1 => 11211,
    ),
 );

7、PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。

安装php的opcache扩展模块

并改为下图的参数

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

8、该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。imagick

安装php的imagemagick扩展模块

9、数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。您可以通过命令行手动执行 “occ db:convert-filecache-bigint” 命令以应用挂起的更改。该操作需要当整个实例变为离线状态后执行。查阅相关文档以获得更多详情。
  • filecache.mtime
  • filecache.storage_mtime

通过SSH登录到服务器的命令模式下,并cd到站点目录下,输入

php occ db:add-missing-indices

提示如下信息

意思是需要使用www用户权限来修改,再次输入

sudo -u www php occ db:add-missing-indices

提示如下图信息,并输入 y

10、HTTP的请求头 “Referrer-Policy” 未设置为 “no-referrer”, “no-referrer-when-downgrade”, “strict-origin” or “strict-origin-when-cross-origin”. 这会导致信息泄露。

需要设置一个Referrer-Policy请求头来提高安全性。

add_header Referrer-Policy "no-referrer";

下面是我的Nextcloud用得Nginx配置

server
{
    #基础配置,这些可以照搬宝塔的配置
    listen 80;
    listen 443 ssl http2;
    server_name www.chyiyang.net;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www_chyiyang_net;

    ssl_certificate    /etc/letsencrypt/live/www.chyiyang.net/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/www.chyiyang.net/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
	
    error_page 497 https://$host$request_uri;
    #nextcloud包含了403和404的错误页面
    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;
	
    #HSTS、缓存设置
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    large_client_header_buffers 4 16k;
    client_max_body_size 10G; 
    fastcgi_buffers 64 4K;
    gzip off;
	
    #宝塔默认是include调用PHP相关配置,这里稍稍修改了一下,注意php版本
    #加入了front_controller_active这项参数以删除页面URL中的index.php
    location ~ [^/]\.php(/|$)
    {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi-72.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
	    include pathinfo.conf;
	    fastcgi_param front_controller_active true;
    }
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
	
    #nextcloud一些关键目录的权限设置
    location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
        deny all;
    }
    #静态资源重定向1
    location ~* \/core\/(?:js\/oc\.js|preview\.png).*$ {
        rewrite ^ /index.php last;
    }
    #webdav重定向
    location / {
        rewrite ^ /index.php$uri;
        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
        rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
    #静态资源重定向2,支持使用acme脚本在申请证书时对域名的验证
     if ($uri !~* (?:\.(?:css|js|svg|gif|png|html|ttf|woff)$|^\/(?:remote|public|cron|status|ocs\/v1|ocs\/v2)\.php|^\/\.well-known\/acme-challenge\/.*$)){
         rewrite ^ /index.php last;
        }
    }
	
    #静态资源重定向3
    location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        access_log off;
    }
    
    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri/ =404;
        index index.php;
    }
	
    #对静态资源添加header
    location ~ \.(?:css|js|woff|svg|gif)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=15778463";
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
		add_header Referrer-Policy "no-referrer";
        access_log off;
    }
    #caldav和#carddav
    rewrite /.well-known/carddav /remote.php/dav permanent;
    rewrite /.well-known/caldav /remote.php/dav permanent;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
    {
        expires      30d;
        access_log off; 
    }
    #access_log  /www/wwwlogs/www.chyiyang.net.log;
}

好了,就写到这了,希望对大家有所帮助,文笔有限,望谅解~~

宝塔面板安装Nextcloud15简单教程

伊阳阅读(8760)

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

之前,我用centos7.4 + nginx + php7.2 + MariaDB的环境安装了Nextcloud14,之后版本大更新,想升级到Nextcloud15,结果不知道按错了按钮还是什么的,把Nextcloud直接给弄崩溃了,直接登录不进去。一气之下,安装了宝塔面板后,直接安装Nextcloud15。

Nextcloud15在宝塔面板安装环境为PHP7.2 + SQL5.6 + Nginx, 接下来,介绍在宝塔面板环境下如何安装Nextcloud。
1、在网站栏目下添加站点信息。

2、在文件栏目下,切换到wwwroot目录下,添加下载好的nextclou.zip包。

也可以选择远程下载,加入下载地址

3、选择上传的zip包,解压到当前目录。

4、清空新建站点下的所有文件,并将nextcloud内的所有文件复制到站点里。


5、在数据库栏下,添加数据库,输入数据库名、用户名及密码。

6、在浏览器下输入站点地址后,提示下面的错误。

内部服务器错误
服务器不能完成你的请求.
如果多次出现这个错误, 请联系服务器管理员, 请把下面的技术细节包含在您的报告中.
更多细节可以在服务器日志中找到.

上面的问题是由于文件夹权限设置的不到位。


站点权限为755,将站点权限改为770.

7、再次在浏览器输入站点地址,出现如下画面

8、分别输入管理员账号及密码,选择数据库并输入数据库用户名、密码及数据库名称,最后点击安装完成。

9、安装完成后,自动跳转到如下界面。

博主自己我文笔有限,写的不好请谅解~~·