分类 web 下的文章

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>js出现次数最多的是</title>
    <link rel="stylesheet" href="">
    <script>
        var str='asdhdsaaaadasds';
        var json={};

        for (var i = 0; i < str.length; i++) {
                if(!json[str.charAt(i)]){
                        json[str.charAt(i)] = 1;
                }else{
                        json[str.charAt(i)]++;
                }
        };
        var iMax = 0;
        var iIndex = '';
        for(var i in json){
                if(json[i]>iMax){
                        iMax = json[i];
                        iIndex = i;
                }
        }
        alert('出现次数最多的是:'+iIndex+'出现'+iMax+'次');
    </script>
</head>
<body>
    asdhdsaaaadasds
</body>
</html>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>demo</title>
    <link rel="stylesheet" href="">
    <style type="text/css">
        <!--
        .thumbnail{ position:relative; z-index:0; }
        .thumbnail:hover{ background-color:transparent; z-index:50; }
        .thumbnail span{ position:absolute; background-color:#FFFFE0; left:-1000px;border:1px dashed gray; visibility:hidden; color:#000; text-decoration:none; padding:5px; }
        .thumbnail span img{ border-width:0; padding:2px; }
        .thumbnail:hover span{ visibility:visible; top:10px; left:50px; }
        p{ margin-top:200px; }
    -->
</style>
</head>
<body>
    <a class="thumbnail" href="#">
        <img src="" width="50" height="50"><br>
        <span><img src="" width="250" height="250"></span>
    </a>
</body>
</html>


在JavaScript中,一共有两种类型的值,原始值和对象值.每个对象都有一个内部属性[[prototype]],我们通常称之为原型.原型的值可以是一个对象,也可以是null.如果它的值是一个对象,则这个对象也一定有自己的原型.这样就形成了一条线性的链,我们称之为原型链.







https://lnmp.org/
https://oneinstack.com/
http://vestacp.com/
https://www.plesk.com/
https://amh.sh/
https://www.bt.cn/
https://linuxeye.com/481.html

使用的是GitHub上的oneinstack官网,下面是脚本使用介绍
这里简单介绍教程,基于GitHub的README.md,环境是Centos
yum -y install wget screen python unzip git // for CentOS,其他的是官网看教程
从GitHub中下载最新源码,下面三选一,我用git,省去解压过程

1.wget下载:
wget https://codeload.github.com/oneinstack/oneinstack/zip/master //改为master.zip
1.1.解压zip 包
unzip master.zip //解压后改oneinstack,原源码脚本是基于oneinstack文件夹的

2.1.wget 下载与上面的解析地址不同
wget https://github.com/oneinstack/oneinstack/archive/master.zip //不用改后缀
2.1.解压zip 包
unzip master.zip //解压后改oneinstack,原源码脚本是基于oneinstack文件夹的

3.git clone 拉下来:
git clone https://github.com/oneinstack/oneinstack.git //直接git吧


cd oneinstack //在options.conf改变安装目录和数据存储日记等
screen -S oneinstack //防止网络异常,重新连ssh可以screen -r oneinstack继续查看进程screen 状态为Attached 连不上,可以执行screen -D -r oneinstack
./install.sh // 不要直接运行sh install.sh 或者 bash install.sh
./addons.sh //添加附加组件Let’s Encrypt
./vhost.sh //添加虚拟主机
./backup_setup.sh //Set backup options
./backup.sh //crontab -l &&crontab -e
0 1 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 & //Esc Shift+Q,wq(保存)
service nginx restart
更新版本
./upgrade.sh
./uninstall.sh

证书过期

更改/data/wwwroot下的网站文件夹名字
备份/usr/local/nginx/conf/vhost下的配置
ssh: ./vhost.sh 选择3. 直到正常

1.正确修改 cgi.fix_pathinfo 与 Nginx 的配置
2.Typecho 中 cgi.fix_pathinfo 与 Nginx 的配置
访问二级菜单出现Access denied.
不改变 php.inicgi.fix_pathinfo=0 改成了 cgi.fix_pathinfo=1,可能存在安全问题

location ~ [^/]\.php(/|$) {
  #fastcgi_pass remote_php_ip:9000;
  fastcgi_split_path_info ^(.+?.php)(/.*)$;
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
}

添加 fastcgi_split_path_info ^(.+?.php)(/.*)$; 后即可由 Nginx 设置 PATH_INFO 值,
至此,终于解决了不改 PHP.ini 的方法。

service php-fpm restart
service nginx restart

设置网站目录权限

chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;

fail2ban阻止SSH暴力破解
Nginx Lua Redis防止CC攻击

禁止F5刷新

nginx.conf

  limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
  limit_conn_zone $binary_remote_addr zone=addr:10m;

yuming.conf

location / {
    add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
    add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
    add_header X-XSS-Protection "1; mode=block"; # XSS 保护

    #http://www.abc3210.com/2013/web_04/82.shtml
    limit_req zone=allips burst=5;
    limit_conn addr 5;     #连接数限制
    #带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k
    limit_rate 500k;   
    }

rc.local 本身默认没有执行权限

chmod +x /etc/rc.d/rc.local

写一个systemd service,具体怎么写查手册: https://www.freedesktop.org/software/systemd/man/systemd.service.html

iptables

对于Linux服务器防火墙规则iptables修改后无法保存的问题一直没有提到,直接按下面方法做即可:
修改完/etc/sysconfig/iptables文件后直接用service iptables restart命令重启即可保存防火墙规则。

/etc/sysconfig

service iptables save
service iptables restart

lnmp 使用

https://oneinstack.com/install/

搬网站

 ~/oneinstack/backup.sh 备份

压缩

tar zcvf web.tgz ./   //即可将当前文件夹打包为web.tgz

解压

tar zxvf test.tgz

一键脚本

Docker部署PHP环境(PHP,MySQL,Nginx,Redis)



先热身一下:微博URL短网址生成算法原理及(java版、php版实现实例)
wordpress版本请看 http://zhangge.net/5086.html

第一篇:

打开var/Widget/Abstract/Comments.php文件,寻找

if ($this->url && $autoLink) {    
            echo '<a href="' , $this->url , '"' , ($noFollow ? ' rel="external nofollow"' : NULL) , '>' , $this->author , '</a>';    
        } else {    
            echo $this->author;    
        }

修改为

if ($this->url && $autoLink) {    
            if(strpos($this->url, $this->options->siteUrl)!==false) {    
                echo '<a href="', $this->url, '">', $this->author, '</a>';    
            } else {    
                echo '<a href="', $this->options->siteUrl, 'go.html?url=', urlencode($this->url), '"', ' rel="nofollow"', '>', $this->author, '</a>';    
            }    
        } else {    
            echo $this->author;    
        }

跳转页采用的是html静态页+javescript方式跳转,你也可以改用php方式,我的跳转go.html代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">    
<html xmlns="http://www.w3.org/1999/xhtml">    
<head profile="http://gmpg.org/xfn/11">    
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />    
 <title>Microhu's Blog - 正常跳转</title>    
 <style type="text/css">    
    #show{width:500px;margin:100px auto 0;font-size:18px;color:blue;}    
    #show span{color:red;font-weight:blod;}    
 </style>    
</head>    
<body>    
<div id="show"></div>    
 <script type="text/javascript">    
 <!--    
    function getUrl(){    
        var theUrl=location.href.split('?url=');    
        if(theUrl.length==1)    
            return 'http://www.microhu.com';    
        return decodeURIComponent(theUrl[1]);    
    }    
    var showme=document.getElementById('show');    
    showme.innerHTML='正在为你跳转到:<span>'+getUrl()+'</span>';    
    location=getUrl();    
 //-->    
 </script>    
</body>    
</html>

方法来自:@羊窝 (已关?)

第二篇:

简单方法,不用插件实现外链转内链
typecho可以自定义404页面,通过404.php即可不用插件实现外链转内链
首先,在模板目录下建立一个空的php文件:url.php,写入以下内容:

<?php 
return array(
//此处以下为内链“链接地址”=>“外链地址”,依次添加自定义的转向。
    'key'    => 'your url here',
    'weibo'    => 'http://weibo.com',
    'typecho'    => 'http://typecho.org',
    'google'    => 'http://google.come',
);
?>

也就是建立一个返回数组的php文件,通过array[key]来实现读取url,以达到目的。
创建404.php页面,如果有,则直接打开编辑,在最上方加入如下代码:

$tempStr = str_replace("/index.php","",$_SERVER['REQUEST_URI']);
    $action = substr($tempStr,1,2 );
    if( $action == "go" ){
        $urlArr = include_once 'tpl_url.php';
        $query = trim(substr($tempStr,4),"/");
        foreach($urlArr as $key=>$value){$arr[]=$key;}
        if(in_array($query,$arr)){
            header("Location: ".$urlArr[$query]);
        }
    }

上传,在后台“控制台”-》“网站外观”-》“编辑当前外观” 中,找到url.php,在里面修改添加自己要生成的外链转向。
如上,http://m69w.com/go/typecho 即可转向到 http://typecho.org; http://m69w.com/go/google 即转向到 http://google.com
添加自己的转向吧。


第三篇:

插件实现:
GoLinks.0.3.0
LinksRedirect(v1.0.1).zip
ShortLinks - 外链转内链,支持正文和评论者链接

第四篇

确切的说没有四的,插件+张戈博客那个JS版本
typecho.conf中添加rewrite ^/go/(.*)$ /go.html?url=$1 last;,如下

if (!-e $request_filename){
    rewrite ^/go/(.*)$ /go.html?url=$1 last;
    rewrite (.*) /index.php;
    }

在ShortLinks插件中Plugin.php的108,114行改为对应就行了,简直简单粗暴
ShortLinks插件是带301重定向的,在Action.php中,视情况删留