WordPress评论区爆炸特效

一直羡慕别人的博客输入有这样一个特效,想自己做一个,终于在这个博客找到了解决方案,于是尝试一下成功了!

WordPress优化:给博客添加评论输入特效

第一步:下载js代码,放入网站目录某文件夹下,我放在【/www/wwwroot/blog.songtianlun.cn/wp-content/themes/hestia/mouseclink】目录下

js文件:下载

第二步:在主题目录下footer.php文件中添加如下依赖

<script src="https://blog.songtianlun.cn/wp-content/uploads/2018/10/WordpressCommentBomb/activate-power-mode.js"></script>  
<script>  
POWERMODE.colorful = true; // make power mode colorful  
POWERMODE.shake = false; // turn off shake  
document.body.addEventListener('input', POWERMODE);  
</script> 

保存,测试一下,大功告成!

Linux 常用命令

Linux常用命令

端口占用查询

netstat -apn

Centos查看端口占用情况命令

比如查看80端口占用情况使用如下命令:

lsof -i tcp:80

列出所有端口

netstat -ntlp

程序归属(master为例)

locate  master | grep '/master$'

初始化(新安装命令生效)

sudo updatedb

进程管理

查进程

ps命令查找与进程相关的PID号:
    ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    ps -A 显示所有程序。
    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    ps -e 此参数的效果和指定"A"参数相同。
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    ps -H 显示树状结构,表示程序间的相互关系。
    ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
    ps u 以用户为主的格式来显示程序状况。
    ps x 显示所有程序,不以终端机来区分。

杀进程

使用kill命令结束进程:kill xxx
 例:kill -9 324
   Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

SSH使用

1 ssh远程登录服务器

ssh username@remote_ip 
#将username换成自己的用户名,将remote_ip换成远程服务器的ip地址

2 将文件/文件夹从远程服务器拷至本地(scp)

scp -r username@remote_ip:/home/username/remotefile.txt 

3 将文件/文件夹从本地拷至远程服务器(scp)

scp -r localfile.txt username@remote_ip:/home/username/

4 将文件/文件夹从远程服务器拷至本地(rsync)

rsync -v -u -a --delete --rsh=ssh –stats username@remote_ip:/home/username/remotefile.txt .

5 将文件/文件夹从本地拷至远程服务器(rsync)

rsync -v -u -a --delete --rsh=ssh --stats localfile.txt username@remote_ip:/home/username/

6 连接远程ssh非22端口的服务器(ssh端口为12345)

ssh -p 12345 username@remote_ip

7 远程拷贝ssh非22端口的服务器文件(ssh端口为12345)

scp -P 12345 local_file username@remote_ip:remote_dir

scp -P 12345 username@remote_ip:remote_file local_dir

scp -o port=12345 username@remote_ip:remote_file local_dir

scp -P 12345 -r local_dir/.* username@remote_ip:remote_dir

拷贝目录,-r是将目录下的目录递归拷贝。”.*”是将隐藏文件也拷贝过去。需要先在远端创建好相应的目录。

sftp用法

sftp -o port=12345 username@remote_ip:remote_dir

Docker

Docker stop停止/remove删除所有容器

    $ docker ps // 查看所有正在运行容器
    $ docker stop containerId // containerId 是容器的ID

    $ docker ps -a // 查看所有容器
    $ docker ps -a -q // 查看所有容器ID

    $ docker stop $(docker ps -a -q) //  stop停止所有容器
    $ docker  rm $(docker ps -a -q) //   remove删除所有容器

批量删除Docker中已经停止的容器

方法一: 

#显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, 

sudo docker ps -a|grep Exited|awk '{print $1}' 

#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器 

sudo docker rm \`docker ps -a|grep Exited|awk '{print $1}'\` 

方法二: #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了) 

sudo docker rm $(sudo docker ps -a -q) 

方法三: #根据容器的状态,删除Exited状态的容器 

sudo docker rm $(sudo docker ps -qf status=exited) 

方法四: 

#Docker 1.13版本以后,可以使用 

docker containers prune 命令,删除孤立的容器。 

sudo docker container prune #删除所有镜像 

sudo docker rmi $(docker images -q)

实用指令

统计当前目录下所有文件及文件夹大小

    du -h --max-depth=1

创建任意网站镜像

wget -mk -w 20 http://www.example.com/

//命令行中的20代表间隔20秒下载一个文件,这样可以避免网站的访问过于频繁。你可以调小点,但当你是备份别人的站时,还是为别人的服务器考虑下吧。

问题解决

git “ssh-add ~/.ssh/id_rsa” Could not open a connection to your authentication agent问题解决

使用git,添加私钥时发生如下错误

ssh-add ~/.ssh/id_rsa 输出错误: Could not open a connection to your authentication agent

解决此问题的方法是执行下 eval `ssh-agent -s 然后再次执行ssh-add ~/.ssh/id_rsa就可以顺利执行了

vps使用Shadowsocks搭建vpn

Create a SOCKS5 Proxy Server with Shadowsocks on Ubuntu and CentOS 7

简介

编程需要经常需要翻墙,当年的我天真无邪上了不少当,每次的 vpn 经历无一不遇奸商!于是下决心搭建自己的 vpn!就在今天,vpn 终于搭建成功,在这里分享一下成功的喜悦同时贴出自己搭建的过程仅供参考!

服务器端配置

环境

vps 提供商:阿里云 系统:CentOS 7.3 节点:香港 峰值带宽:35MB

方法一

第一步:远程登入服务器,运行如下代码

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

第二步:选择一种脚本

Which Shadowsocks server you'd select:
1.Shadowsocks-Python
2.ShadowsocksR
3.Shadowsocks-Go
4.Shadowsocks-libev
Please enter a number (default 1):

在这里我选择了第一个 python,输入 3,回车!

第三步:输入密码和端口,回车!

第四步:等待安装完成!

安装完成后的标志如下:

Congratulations, Shadowsocks-Python server install completed!
Your Server IP        :  *************************
Your Server Port      :  ****
Your Password         :  ********
Your Encryption Method:  aes-256-cfb
Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://YWVzLTI1Ni1jZmI6c290aWx1ODM4OEAxNDkuMTI5Ljg5LjIxMjo4Mzg4
Your QR Code has been saved as a PNG file path:
 /root/shadowsocks_python_qr.png
Welcome to visit: https://teddysun.com/486.html
Enjoy it!

方法二

shadowsocks Python 一键安装

获取脚本

使用 root 用户登录,运行以下命令:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

安装完成后,脚本提示如下:

Congratulations, shadowsocks install completed!   
Your Server IP:your_server_ip   
Your Server Port:your_server_port   
Your Password:your_password   
Your Local IP:127.0.0.1   
Your Local Port:1080   
Your Encryption Method:aes-256-cfb   

Welcome to visit:http://teddysun.com/342.html   
Enjoy it!

卸载方法:

使用 root 用户登录,运行以下命令:

./shadowsocks.sh uninstall

单用户配置文件 Sample

配置文件路径: vi /etc/shadowsocks.json

{  
    "server":"0.0.0.0",  
    "server_port":8989,   
    "local_address":"127.0.0.1",  
    "local_port":1080,  
    "password":"yourpassword",  
    "timeout":300,  
    "method":"aes-256-cfb",  
    "fast_open": false  
}

多用户多端口配置文件 Sample

配置文件路径:

vi /etc/shadowsocks.json
{  
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

使用命令

(2015 年 08 月 28 日修正):

启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status
写入自启echo "ssserver -c /etc/shadowsocks.json -d restart" >> /etc/rc.local
查看日志less /var/log/shadowsocks.log

说明: 从 Shadowsocks 2.6 开始,你可以直接在后台运行 Shadowsocks,无需 Supervisor 。 这样省掉了 Supervisor 进程占用的内存。

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop
ssserver -c /etc/shadowsocks.json -d restart

查看连接的人数

Ubuntu:apt-get install lsof -y
CentOs:yum install lsof -y

假设服务器端口 1080, 查看连接数 sudo lsof -i -n -P | egrep -c ':1080.+ESTABLISHED'

查看连接列表

sudo lsof -i -n -P | egrep ':1080.+ESTABLISHED'

监控

利用脚本查看连接列表,并添加定时任务 新建目录 mkdir test 里添加以下脚本

#!/bin/bash
#
# File: port-ip-monitor.sh
#
# Created: Wednesday, August 27 2014 by Hua Liang[Stupid ET] <et@everet.org>
#

filename="port-ip-monitor.log"
regex="8888"  # monitor 你的端口

date +"[%Y-%m-%d %H:%M:%S]" >> $filename
netstat -anp | egrep $regex | grep -E "tcp.*ESTABLISHED" | awk '{print $4, $5}' | cut -d: -f2 | sort -u >> $filename

编辑 crontab -e 里增加 * (cd /test/ && bash port-ip-monitor.sh) 启动服务 service crond start 然后我们在/test/里就看到 port-ip-monitor.log 了 查看日志 less /test/port-ip-monitor.log

参考链接: https://shadowsocks.be/1.html http://everet.org/shadowsocks.html

客户端

第一步:下载客户端登陆

安卓、windows 的客户端均已上传至本站资源共享站,苹果可在应用商店搜索shadowsocks下载安装即可。

安卓客户端:下载

windows 客户端:下载

第二步:客户端配置参数

以 windows 配置为例,首先打开软件(若在 c 盘下需以管理员身份运行),之后填写相关参数,完成。

之后在任务栏右键,选择启动系统代理

大功告成!

主要参考文献:

WordPress鼠标指针样式自定义

继续折腾自己的博客!

今天要做的事自定义鼠标样式!需要做的是增加css样式!

第一步:选择鼠标样式,最好是两个状态,正常和链接,即普通的箭头和小手

第二步:将样式的cur文件上传至服务器

第三步:进入后台→主题→自定义→额外css

第四步:在输入框输入如下代码

/** 鼠标样式 开始**/ 
/** 普通指针样式**/ 
body {
cursor: url(https://blog.songtianlun.cn/wp-content/themes/hestia/mouseclink/normal.cur), default;
}

/** 链接指针样式**/ 
a:hover{cursor:url(https://blog.songtianlun.cn/wp-content/themes/hestia/mouseclink/link.cur), pointer;}

/** 鼠标样式 结束**/

注:根据自己的实际情况修改其中的链接部分,我使用的鼠标样式可以从中获取

第五步:发布,就可以看到效果啦!

本文参考文章:wordpress指针样式自定义——美化你的blog

更多鼠标样式下载:鼠标样式

WordPress鼠标点击出现爱心

同上文,眼馋各大博主博客令人眼前一亮的设计,想要给自己博客也打扮打扮,今天就来弄弄鼠标点击出现爱心的效果吧!

采用了代码方式实现,很简单:

第一步:在主题根目录创建js文件,写入如下代码:

(function(window,document,undefined){
var hearts = [];
window.requestAnimationFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (callback){
setTimeout(callback,1000/60);
}
})();
init();
function init(){
css(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}");
attachEvent();
gameloop();
}
function gameloop(){
for(var i=0;i<hearts.length;i++){
if(hearts[i].alpha <=0){
document.body.removeChild(hearts[i].el);
hearts.splice(i,1);
continue;
}
hearts[i].y--;
hearts[i].scale += 0.004;
hearts[i].alpha -= 0.013;
hearts[i].el.style.cssText = "left:"+hearts[i].x+"px;top:"+hearts[i].y+"px;opacity:"+hearts[i].alpha+";transform:scale("+hearts[i].scale+","+hearts[i].scale+") rotate(45deg);background:"+hearts[i].color;
}
requestAnimationFrame(gameloop);
}
function attachEvent(){
var old = typeof window.onclick==="function" && window.onclick;
window.onclick = function(event){
old && old();
createHeart(event);
}
}
function createHeart(event){
var d = document.createElement("div");
d.className = "heart";
hearts.push({
el : d,
x : event.clientX - 5,
y : event.clientY - 5,
scale : 1,
alpha : 1,
color : randomColor()
});
document.body.appendChild(d);
}
function css(css){
var style = document.createElement("style");
style.type="text/css";
try{
style.appendChild(document.createTextNode(css));
}catch(ex){
style.styleSheet.cssText = css;
}
document.getElementsByTagName('head')[0].appendChild(style);
}
function randomColor(){
return "rgb("+(~~(Math.random()*255))+","+(~~(Math.random()*255))+","+(~~(Math.random()*255))+")";
}
})(window,document);

第二步:修改主题目录下footer.php文件,引入代码

<script type="text/javascript" src="https://***/wp-content/themes/hestia/mouseclink/clink.js"></script>

第三步:清缓存,刷新!

本文参考了下列博文内容:

鼠标点击出现爱心js特效代码分享

WordPress 添加下雪特效

最近非常热衷于逛博客,各大博主博客都非常出彩,弄得我心里面痒痒的也想弄,就先从一个下雪效果开始吧!

在网上找了很多资料,最后找到一个非常靠谱的,步骤非常简单!

第一步:将snow上传至主题根目录并解压

第二步:修改其中js文件指定雪花的地址

第三步:编辑主题中的footer.php文件,添加以下代码引用效果

<script type="text/javascript" src="<?php bloginfo('template_url');?>/snow/snow.js"></script>

第四步:清清缓存!

效果可以看本页!

sonw文件在这里下载:点击下载

在本页资源分享站中也可找到:https://data.songtianlun.cn

差点忘记一个非常重要的事情,

参考文章: wordpress 添加下雪特效

WordPress自动推送新文章收录百度

百度站长工具提供了很多种页面收录方式,在百度资源搜索平台提供了多种提交方式,比如自动提交,手动提交,以及sitemap。

百度资源搜索平台:https://ziyuan.baidu.com/

在这里介绍两种方式,一种是使用代码的方式,一种是使用插件,不知道是否能成功,如果大家能在百度搜索到这篇文章,自然代表着成功啦!

先说第一种,代码!

在主题function.php文件中插入如下代码:

//文章发布自动推送
if(!function_exists('Baidu_Submit')){ 
  function Baidu_Submit($post_ID) { 
    $WEB_TOKEN = 'token值'; //这里请换成你的网站的百度主动推送的token值 
    $WEB_DOMAIN = get_option('home'); //已成功推送的文章不再推送 
    if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return; 
    $url = get_permalink($post_ID); 
    $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN; 
    $request = new WP_Http; $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') ); 
    $result = json_decode($result['body'],true); //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1 
    if (array_key_exists('success',$result)) { add_post_meta($post_ID, 'Baidusubmit', 1, true); 
                                             } } add_action('publish_post', 'Baidu_Submit', 0); 
}

即可在文章发布后自动推送百度,在百度资源可以看到推送结果。

第二种,插件!

在wordpress插件搜索BaiduXZH Submit,安装即可!

声明

第一种方式来源页:免插件实现WordPress主动推送文章到百度

第二种插件官网:爱上极客

希望能成功!

WordPress检测文章手否被百度收录

开通博客后就痴迷于让更多的人看到自己的博客,在百度搜索资源提交链接,又配置了文章自动提交百度的代码,还是想知道文章是否被百度收录,于是找到了下面这篇文章:

WordPress百度是否已收录查询插件WP-Baidu-Record

文章提供了一种方式,不需要安装插件就可以实现文章是否提交百度的检测及显示,一步搞定!

在主题function.php文件中插入如下代码即可:

/*
Plugin Name: Baidu-Accept
Plugin URI: http://www.d4v.com.cn
Description: 判断当前文章是否被百度收录,若没有被收录则可点击提交至百度,加速收录!(此插件在文章页面仅管理员可见) 
Version: 1.0
Author: Jovae
Author URI: http://www.d4v.com.cn
License: GPL
*/
function d4v($url){
    $url='http://www.baidu.com/s?wd='.$url;
    $curl=curl_init();
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    $rs=curl_exec($curl);
    curl_close($curl);
    if(!strpos($rs,'没有找到')){
        return 1;
    }else{
        return 0;
    }
}
add_filter( 'the_content',  'baidu_submit' );
function baidu_submit( $content ) {
    if( is_single() && current_user_can( 'manage_options') )
        if(d4v(get_permalink()) == 1)
            $content="<p align=right>百度已收录(仅管理员可见)</p>".$content;
        else
            $content="<p align=right><b><a style=color:red target=_blank href=http://zhanzhang.baidu.com/sitesubmit/index?sitename=".get_permalink().">百度未收录!点击此处提交</a></b>(仅管理员可见)</p>".$content;
        return $content;
    }

之后就可以查看文章是否被收录了!

文章核心内容来源:http://www.1mayi.com/9655.html

私人网盘nextcloud配置问题解决

安装流程

配置流程非常简单,主要是参考了下面这篇博文配置,在宝塔面板下安装nextcloud,非常简单。

博文跳转:https://www.vpsss.net/5780.html

大概总结以下步骤:

第一步:官网下载安装包:https://nextcloud.com/

路径:getnestcloud → Server packages → Download

第二步:将安装包上传至网页服务器根目录并解压

第三步:直接访问,配置账号、数据库等

第四步:解决问题!

我主要是碰到了下面这个问题,配置完成之后显示内部错误。

错误提示

解决办法,安装php7.2!

简单粗暴,但是很有用,网上有一些博主碰到更多问题,在这里稍微总结几个:

宝塔面板部署NextCloud逐一解决后台安全及设置警解决CentOS中安装Nextcloud出现“内部服务器错误”

好了,站点开通,域名如下:

演示链接:drive.songtianlun.cn

问题集锦


在nextcloud使用过程中遇到的一些问题及解决方案记录在这里

问题一、一些文件没有通过完整性检查. 了解如何解决该问题请查看我们的文档. (无效的文件列表… / 重新扫描…)

点击无效的文件列表,INVALID_HASH 这里表示错误的文件,根据提示的路径查看,多半是你自己上传的和程序无关的文件,移动到其他地方就好。EXTRA_FILE 这里表示多余的文件,需要删除。EXCEPTION 其他错误信息。

解决信息来源:Nextcloud搭建私有云解决安全及设置警告

问题二、NextCloud一直处于维护状态解决方法

Ubuntu 在next cloud的目录下,对着occ脚本运行

维护模式的启用和关闭
sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php occ maintenance:mode --off
PS:以上命令,需要进入nextcloud的安装目录内,找到occ命令后,执行,如果是centos环境那么要改成 apache php xxxxx即可

也可直接修改文件

解决信息来源:NextCloud一直处于维护状态解决方法

nextcloud更新后进入维护模式怎么退出,最佳回答

问题三:.PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\”PATH\”) 测试时仅返回空结果.

一行代码解决,在以下位置(根据php版本修改目录)添加以下代码

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

保存,并重载php配置解决

参考文章:宝塔面板部署NextCloud逐一解决后台安全及设置警告

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

这个问题是指php的缓存模块没有安装,nextcloud支持APCu、Memcached、Redis等模块,选择其中一个安装。

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

参考文献同问题三!

问题五:docker安装与宿主机通信问题

核心:需找到docker与宿主机通信网卡的ip

172.17.0.1是本次找到的ip

DirectoryLister搭建个人资源分享站点及私人云盘搭建小记

喜大普奔!本站开通了资源共享站点及私人云盘!

简直是好一通折腾,故事说来话长,本文主要谈谈私人共享站点搭建过程中遇到的问题及体会

引言

一直想要搭建一个属于自己的资源共享小站,把一些不好寻找的资源放在站点上供我的朋友们下载,随着博客、主页的陆续开通,想着时机已到,于是开始着手准备了解各种资源。

没做的时候以为类似的资料会很少,但是从一篇博文中了解到其实有很多种开源的目录列表程序

文章跳转:5款简单实用的免费目录列表程序(Directory Lister)演示及下载

经过

尝试了h5ai之后,发现了自己云虚拟主机的限制,于是采用更加自由的director lister进行搭建,搭建过程非常简单:

第一步:下载程序:官网(http://www.directorylister.com/)

第二步:将压缩包解压至web服务器根目录下

第三步:使用域名进行访问

若使用二级目录,需要对程序进行一些调整,调整方法大概就是对resources/themes/bootstrap/目录下的index.php中的css/js引用进行修改,修改路径为域名解析到二级目录,详情见优化中的博文!

第四步:将需要共享的文件放置在resource同级目录下,就可以看到分享的文件啦!

优化

在实际使用过程中发现一个问题,

那就是一个字:

慢!

查了一下原因,是因为原生的页面中使用了google的字体,而谷歌字体在国内虽然能用,但是苟延残喘,也就是因此大大降低了页面加载速度,同样的,在网上找到一篇博文很完美的解决了这个问题!

博文跳转:通过 Directory Lister 简单实现服务器目录列表展示

上面的文章中介绍了原因,同时提供了一个修改过的版本,在博文中可以下载,同时在本站资源共享站也提供下载(资源站:https://songtianlun.cn/dateshare)

结束

至此,实用Directory Lister搭建的个人资源共享小站大功告成,欢迎大家来玩!

演示链接:https://songtianlun.cn/dateshare

宋天伦

2019.1.8