作者: Leo

  • wordpress 导入数据 guid空值 批量修改wordpress的guid图文教程

    大家可能知道,WordPress 数据库中的 wp-posts 表中有一个 guid 键值,它记录了文章的最原始 URL 信息。所以我们从数据库导入wordpress数据合并的时候出现了guid空值。为了能够让 guid 中记录的链接与站内文章的真实链接相对应,我们需要批量更新guid的值。可以使用下面的SQL语句:

    update wp_posts
    set guid = concat(‘http://v.jiloc.com/?p=’,ID)
    where guid=” and post_status = ‘publish’ and post_type = ‘post’

    SQL语句可以直接在phpmyadmin或者mysql命令行的直接运行。
    guid为空,为了不影响原先的guid值(原先的guid是可以正常使用的)
    post_type 可以分为:post,page等
    post_status 可以分为:publish,draft等

  • last: /var/log/wtmp: No such file or directory 错误解决方法图文教程

    今天在使用last 命令时出现了如下错误:

    root@instance-642k0w3w:~# last
    last: /var/log/wtmp: No such file or directory
    Perhaps this file was removed by the operator to prevent logging last info.

    显示没有这个文件,可能是之前清楚日志的时候连文件一起删除了。现在给出解决方案,在shell命令行里直接输入:

    touch /var/log/wtmp ;?chown root:utmp /var/log/wtmp ;?chmod 0664 /var/log/wtmp

    再次执行 last 命令,就正常了。

  • wordpress 网站搬家后需重新设置WP_Super_Cache 图文教程

    LOC影视最近迁移到新的新的vps,原先一直在使用 wp_super_cache 插件,但是迁移新服务器以后去到插件配置页面出现“错误: 您的缓存目录”权限问题。

    在安装WP_Super_Cache插件时,它会自动在 %wp-content% 目录下新建2个文件,分别是 advanced-cache.php 和 wp-cache-config.php,其中 advanced-cache.php文件中会保存服务器的目录信息,并用于WP_Super_Cache的正常运行。该目录信息是你所使用服务器上的文件目录信息,而不是相对于网站的访问路径,不同的服务器空间,该目录信息并不一样,即使你并没有改变域名和WordPress按照路径等,所以需要重新设置。

    前台页面会出现:

    <!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->

    现在我们进行修改。

    打开 wp-content目录的 advanced-cache.php 文件,大概第32行,将其中的相应部分替换成正确的路径:

    $cache_path = '/laoji.org/wp-content/cache';

    修改完成后可以重新按照查看WP_Super_Cache是否正常工作即可~

  • linux下nginx设置静态页面压缩反向代理 缓存和过期时间教程

    linux下nginx设置静态页面压缩反向代理 缓存和过期时间教程

    使用nginx服务器的朋友可能都知道需要设置html静态页面缓存与页面压缩与过期时间的设置了,下面我来给各位同学介绍一下配置方法,包括对ico,gif,bmp,jpg,jpeg,swf,js,css,mp3文件进行本地缓存.
    可以通过nginx对服务器上的静态资源进行过期时间设置和对资源进行压缩传输来减少服务器的带宽开销。
    以下是nginx对静态资源过期时间的设置方法:

    location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3) {
        root /var/www/v.jiloc.com;
        expires 3d;
    }

    上面的配置可以对ico,gif,bmp,jpg,jpeg,swf,js,css,mp3文件进行本地缓存,不用每次访问都重新从服务器获取。
    压缩的配置如下:

    gzip on;
    gzip_min_length 1000;
    gzip_buffers 4 8k;
    gzip_types text/plain application/x-javascript text/css;

    对文本、js和css文件进行压缩,一般情况下,压缩后的大小是原始大小的25%,甚至更小。
    缓存动态页面,缓存过期时间

    这里用虚拟机配置了下,nginx 配置文件内容,主要是这一句:

    proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;

    这一句定义一个区域,名字是 Z ,在内存中的空间为10MB ,硬盘中的最大空间为 30G;

    inactive=1m 是,1分钟之后缓存失效 ,从新从源服务器请求
    这里纠正一下,inactive=1m 如果缓存1分钟没人访问,nginx 会删除掉这些缓存

    vim /usr/local/nginx/conf/nginx.conf

    #user  nobody;
    worker_processes  1;
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    #pid       logs/nginx.pid;
    events {
    worker_connections  1024;
    }
    http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                '$status $body_bytes_sent "$http_referer" '
    #                '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile       on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;
    server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
    root   /www/;
    #expires max;
    #proxy_store on;
    #proxy_store_access user:rw group:rw all:rw;
    #proxy_temp_path /www/;
    proxy_cache Z;
    proxy_cache_valid 200 1m;
    #expires max;
    include proxy.conf;
    if ( !-e $request_filename) {
        proxy_pass  http://192.168.1.199:45815;
    }
    }
    #这里设置当 访问 /ajax/目录下的内容时候,直接从源服务器读取,主要用于ajax 的访问请求,要求实时的
    location /ajax/ {
    include proxy.conf;
    if ( !-e $request_filename) {
        proxy_pass  http://192.168.1.199:45815;
    }
    }
    #location ~.*.(jpg|png|jpeg|gif)
    #{
    #    expires max;
    #}
    #error_page  404             /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    #    root          html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include       fastcgi_params;
    #}
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
    }
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #       root   html;
    #       index  index.html index.htm;
    #    }
    #}
    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;
    #    ssl                on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    #    ssl_session_timeout  5m;
    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers   on;
    #    location / {
    #       root   html;
    #       index  index.html index.htm;
    #    }
    #}
    }

    vim /usr/local/nginx/conf/proxy.conf

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Accept-Encoding 'gzip';
    client_max_body_size 100m;
    client_body_buffer_size 256k;proxy_connect_timeout 60;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    proxy_buffer_size 512k;
    proxy_buffers 8 512k;
    proxy_busy_buffers_size 512k;
    proxy_temp_file_write_size 512k;
  • wordpress删除重复文章的图文教程

    最近写了一个wordpress 的采集脚本,定时发布文章,在插入时用的是wordpress自带的查询方法:

    $the_query = new WP_Query( ‘s=’.$title );

    但是这里没有去匹配定时发布的文章,所以导致了一些文章重复,下面是一段删除掉重复标题文章的SQL语句,直接在phpmyadmin等工具里面运行即可,代码如下:

    CREATE TABLE my_tmp AS SELECT MIN(ID) AS col1 FROM wp_posts GROUP BY post_title;
    DELETE FROM wp_posts WHERE ID NOT IN (SELECT col1 FROM my_tmp);
    DROP TABLE my_tmp;
    如果文章较大的话还是用mysql命令行去运行比较好~
  • jQuery实现简约的对联广告效果 代码实例

    利用jquery实现可关闭、可随屏幕滚动的简约对联广告 ??,兼容各个浏览器

    HTML:

    <!--对联广告HTML Start-->
     <div class="duilian duilian_left">
         <div class="duilian_con"><a href="http://laoji.org" target="_blank"><img src="Jidinghe.jpg"></a></div>
         <a href="#" class="duilian_close">关闭</a>
     </div>
     <div class="duilian duilian_right">
         <div class="duilian_con"><a href="http://laoji.org" target="_blank"><img src="Jidinghe.jpg"></a></div>
         <a href="#" class="duilian_close">关闭</a>
     </div>
    <!--对联广告HTML End-->

    css:

     /*下面是对联广告的css代码*/
     .duilian{top:200px;position:absolute; width:150px; overflow:hidden; display:none;}
     .duilian_left{ left:6px;}
     .duilian_right{right:20px;}
     .duilian_con{border:#ddd solid 1px; width:150px; height:210px; overflow:hidden;}
     .duilian_close{ width:100%; height:24px; line-height:24px; text-align:center; display:block; font-size:13px; color:#555555; text-decoration:none;background-color:#eee;}

    Jquery:

     $(document).ready(function(){
         var duilian = $("div.duilian");
         var duilian_close = $("a.duilian_close");     
         var window_w = $(window).width();
         if(window_w>1000){duilian.show();}
         $(window).scroll(function(){
             var scrollTop = $(window).scrollTop();
             duilian.stop().animate({top:scrollTop+200});
         });
         duilian_close.click(function(){
             $(this).parent().hide();
             return false;
         });  
     });
    
    这个例子还用多解释么。。
  • WordPress自带html5播放器-视频播放器调用代码图文教程 支持ios

    ios不支持flash,那么用iPhone和ipad访问这些页面的时候怎么办呢,相信很多童鞋都有这个问题

    html5-video_thumb

    解决方法↓↓

    效果如何,这段代码在页面中定义了一个视频,此视频的预览图为poster的属性值,显示浏览器的默认媒体控制栏,预加载视频的元数据,循环播放

    第一选择视频地址为第一个source标签的src属性值,如果你还要兼容IE的话,可以在最后一个source标签后再加上Flash播放器的标签集,或者使用一点 JavaScript代码。

    看下这个HTML5的播放视频调用代码!很简洁,很少,不像老式的那么多的繁琐代码。

    播放器调用代码:

    <video width=’658′ height=’444′ src=’mp4地址’ autoplay=’autoplay’></video>

    同样的给大家解释下HTML5的标签属性及使用

    Video属性:Video标签含有src、poster、preload、autoplay、loop、controls、width、height等几个属性, 以及一个内部使用的标签。Video标签内除了可以包含标签外,还可以包含当指定的视频都不能 播放时,返回的内容。

    (Ps:上面放出的是最简洁的,可以按照自己需求添加)

    Src属性:Src属性是用来干啥的。跟<img>标签的一样,这个属性用于指定视频的地址。

    Poster属性:用于指定一张图片,在当前视频数据无效时显示(P:预览图)。视频数据无效可能是视频正在加载,也可能是视频地址错误等等。

    Preload标签属性:此属性用于定义视频是否预加载。属性有三个可选择的值:none、metadata、auto。如果不使用此属性,默认为auto。

    Auto:为全部预加载。

    None:不进行预加载。使用此属性值。

    Metadata:部分预加载。使用此属性值。

    autoplay标签属性:用于设置视频是否自动播放,是一个布尔属性。当出现时,表示自动播放,去掉是表示不自动播放。

    需要注意的是HTML中布尔属性的值不是true与false。

    正确的用法是,在标签中使用此属性表示true,此时属性要么没有值,要么其值恒等于他的名字

    (此处,自动播放为<video autoplay />或者<video autoplay=”autoplay” />);而在标签中不使用此属性表示false(此处不进行自动播放为<video />)。

    Loop属性:用于指定视频是否循环播放,同样是一个布尔属性

    Controls属性:用于向浏览器指明页面制作者没有使用脚本生成播放控制器,需要浏览器启用本身的播放控制栏。控制栏须包括播放暂停控制,播放进度控制,音量控制等等。每个浏览器默认的播放控制栏在界面上是不一样的。

    Width属性:设置元素的宽度,这是一个通用属性。

    Height属性:设置元素的高度,和Width一样是通用属性。

    Source标签:用于给视频指定多个可选择的(P:浏览器最终只能选一个文件)地址,且只能在媒体标签没有使用src属性时使用。

    浏览器按source标签的顺序检测标签指定的视频是否能够播放(有可能是视频格式不支持,视频不存在等等),如果不能播放,换下一个。此方法多用于兼容不同的浏览器。Source标签本身不代表任何含义,不能单独出现。此标签包含src、type、media三个属性。

    Type属性:说明src属性指定媒体的类型,帮助浏览器在获取媒体前判断是否支持此类别的媒体格式。

    Media属性:用于说明媒体在何种媒介中使用,不设置时默认值为all,表示支持所有媒介。

  • Centos/Linux服务器防火墙/iptables简单设置脚本

    下面提供一个简单的设置脚本,大家可以自行修改~

    #/bin/bash
    sshport=`netstat -lnp|awk -F”[ ]+|[:]” ‘/sshd/{print$5}’`
    iptables -F #清除自带规则
    iptables -X
    iptables -P INPUT DROP #进入本机数据包默认拒绝
    iptables -P OUTPUT ACCEPT #本起外出数据包允许
    iptables -A INPUT -i lo -j ACCEPT #允许本地环回
    iptables -A INPUT -m state –state INVALID -j LOG –log-prefix “INVALID” –log-ip-options
    #记录无效的数据包并丢弃
    iptables -A INPUT -m state –state INVALID -j DROP
    iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
    #允许已建立连接与出相关的数据包进入
    iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
    #允许目标端口为80的新连接进入
    iptables -A INPUT -m state –state NEW -p tcp –dport $sshdport -j ACCEPT
    #允许目标端口为22的新连接进入
    iptables -A INPUT -p icmp –icmp-type echo-request -m limit –limit 5/s –limit-burst 20 -j ACCEPT
    #允许ping回应,每秒5个,最多20个。
    service iptables save #保存规则

    注意:勿一条条执行,请保存为脚本并运行比如保存为 iptables.sh,避免将自己关外面。

    sh iptables.sh ? ? ? #执行脚本

  • Iptables日记模块LOG使用 记录攻击来源IP

    Iptables匹配相应规则后会触发一个动作,filter和nat表一般常用的有以下目标操作。

    ACCEPT #允许数据包通过
    DROP #丢弃数据包,不对该数据包进一步处理
    REFECT #丢弃数据包,同时发送响应报文
    –reject-with tcp-reset 返回tcp重置
    –reject-with icmp-net-unreachable 返回网络不可达
    –reject-with icmp-host-unreachable? 返回主机不可达
    RETURN #转到其它链处理
    LOG #将数据包信息记录到syslog

    本文就记录下LOG规则的使用,示例:进入的tcp端口为80的数据包记录到日记,错误级别err,描述前缀为INPUT,记录IP/TCP相关信息。

    modprobe ipt_LOG #加载模块
    iptables -A INPUT -p tcp –dport 80 -j LOG –log-level err? –log-prefix “INPUT” –log-ip-options –log-tcp-sequence
    –log-level #错误级别
    –log-prefix “INPUT” #描述前缀
    –log-ip-options #记录IP信息
    –log-tcp-sequence #记录TCP序列号

    然后访问服务器80端口测试,通过dmesg查看记录的信息如下:
    INPUTIN=eth0 OUT= MAC=00:0c:29:73:e0:19:8c:89:a5:65:3a:4a:08:00 SRC=192.168.1.16 DST=192.168.1.2
    LEN=522 TOS=0x00 PREC=0x00 TTL=128 ID=27499 DF PROTO=TCP SPT=5430 DPT=80 SEQ=3847892455 ACK=3435733082 WINDOW=16344 RES=0x00 ACK PSH URGP=0
    还可以修改rsyslog将日志写入到文件。

    vim /etc/rsyslog.conf #添加以下内容
    kern.err?????????? /var/log/iptables.log?#日志文件路径

    /etc/init.d/rsyslog restart #重启rsyslog服务

  • wordpress 不停生成error_log 文件 塞满硬盘 关闭方法 图文教程

    最近帮朋友调试wordpress时,发现空间里不停的生成error_log这样的文件出来,内容大致如下:

    QQ截图20160126154210

    都是插件生成出来的报错内容。

    下面贴出解决方案,打开wp-config.php文件,添加以下内容:

    define( ‘WP_DEBUG’, false );

    // don’t generate log
    define( ‘WP_DEBUG_LOG’, false );

    // don’t display errors
    define( ‘WP_DEBUG_DISPLAY’, false );
    @ini_set( ‘display_errors’, false );

    现在就不会再产生塞满硬盘的文件出来了。

  • 国内免费cdn 免备案 中国联通 网站图片 CSS样式 JAVASCRIPT文件加速 使用方法图文教程

    无意中在网上发现了中国联通出品的免费CDN,可以用来加速视频、图片、css样式、.js文件等。对于我们小站长来说,能够免费缓存一些文件还是不错的。下面写个教程给大家,具体实现加速方法的图文教程:

    403 Forbidden 错误示例:

    比如我要缓存一个我们影视站的,robots.txt,那么我们直接访问的话链接地址就是:http://v.jiloc.com/robots.txt ,

    然后我们使用联通cdn的地址进行测试变成:

    http://120.52.72.19/v.jiloc.com/robots.txt

    那么就会直接出现403 Forbidden。

    可能是因为目录不够深的缘故,那我们再找一个目录长一点,深一点的试试。

    正常缓存示例:

    我们现在缓存一下我们的微信公众号的图片,默认地址为:

    http://v.jiloc.com/wp-content/uploads/weixin.gif

    我们现在使用免费cdn缓存一下,把地址改成:

    http://120.52.72.19/v.jiloc.com/wp-content/uploads/weixin.gif

    QQ截图20160125134605

    这里看到了,可以正常打开,说明工作正常~

    那么这里我们就不再例举了,大家可以举一反三自由发挥。如果想要知道效果的话,大家可以用大一些的文件试试。

    120.52.72.* 整个IP段好像是联通的CDN段,大家低调一些使用吧~

  • linux 下 mysql 忘记root密码 重置root密码

    linux 下 mysql 忘记root密码 重置root密码

    需求场景

    Linux下如果忘记了 MySQL 的 root 密码,需要重新设置

    解决方案

    1. KILL掉系统里的MySQL进程;

    2. 用以下命令启动MySQL,以不检查权限的方式启动;

    mysqld_safe -skip-grant-tables & 

    或是 修改/etc/my.cnf文件,在[mysqld]下添加

    skip-grant-tables

    再启动mysql

    3. 然后用空密码方式使用root用户登录 MySQL;

    mysql -u root

    4. 修改root用户的密码;

    mysql> update mysql.user set password=PASSWORD(’新密码’) where User=’root’
    mysql> flush privileges;
    mysql> quit

    5. 重新启动MySQL,就可以使用新密码登录了。  

WeChat
↑