ububntu 搭建sss服务无法开机自启动

作者:matrix 发布时间:2016 年 12 月 29 日 分类:零零星星

搭建方法:http://www.jianshu.com/p/b5c4fbadbfae

apt-get update
apt-get install python-pip
pip install shadowsocks

添加:/etc/shadowsocks.json

{
"server":"my_server_ip",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

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

我用ubuntu按照上面链接的方法来搭建的服务,安装运行到是ok,但是reboot重启ubuntu的时候就发现出现问题。

编辑/etc/rc.local

添加开机自启动的命令失败:

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

Ubuntu下/etc/rc.local  文件修改之后没有成功。
实际上系统是执行了/etc/rc.local里面的命令,只是没有设置好ssserver命令的环境变量,系统当然无法执行。
我们需要做的就是给运行/etc/rc.local 的脚本里面添加环境变量就可以。

修改/etc/init.d/rc.local文件

vi /etc/init.d/rc.local
然后按i键执行vi编辑器的插入口令
将原本的PATH=/sbin:/usr/sbin:/bin:/usr/bin 修改为 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
按esc键输入:wq!保存退出
重启Ubuntu
reboot
然后系统就会成功执行 ssserver -c /etc/shadowsocks.json -d start 命令启动服务
重启:ssserver -c /etc/shadowsocks.json -d restart

加速

vps是kvm虚拟技术,可提升扶墙效率

https://github.com/ToyoDAdoubi/doubi

  • 安装锐速hack版
    https://github.com/91yun/serverspeeder

  • 安装Google BBR

$ bash -c "$(curl -sSL https://github.com/teddysun/across/raw/master/bbr.sh)" #安装bbr
$ bash -c "$(curl -sSL https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh)" #bbr plus

$ lsmod | grep bbr #检测
  • 腾讯TCPA(仅限centOS)
 bash <(curl -L -s http://down.08mb.com/tcp_opz/tcpa/tcpa.sh) #安装

参考:
http://www.jianshu.com/p/f88424fd4ab3

http://blog.csdn.net/zhe_d/article/details/50312967
http://www.jianshu.com/p/b5c4fbadbfae
http://www.jianshu.com/p/94445ee49df0

小众化工具 brook
https://github.com/txthinking/brook

Let’s Encrypt 项目提供免费的SSl证书

作者:matrix 发布时间:2015 年 9 月 15 日 分类:兼容并蓄 零零星星

官网:https://letsencrypt.org
github: https://github.com/letsencrypt/letsencrypt
letsencrypt

这将表示如果一个网站只是需要最基本的HTTPS加密,那么将无需任何花费购买SSL证书。

Mozilla、思科、Akamai、IdenTrust、EFF 和密歇根大学研究人员宣布了 Let’s Encrypt CA项目,计划为网站提供免费 ssl 证书,加速将 Web 从 HTTP 过渡到 https

上个月才看到了这个消息,大咖阵容提供的公益项目。之前说好的9月份发布,怎么又推迟到了Q4 2015。
网站使用https协议非常不错 。至少比普通网站多了一个绿色的标识,好看还安全~不容易被『挤挨服达不溜』监听到通讯内容。
BUT网站使用https协议必须要有SSL证书,大多都是收费的。不过目前也有免费的,沃通、CloudFlare。。。。。

沃通这些没用过,看到有这么好的公益项目那当然是首推!!值得等待。

Postscript:百度在前几个月都默默启用了全站SSL

阅读剩余部分 »

WordPress缓存类WP_Object_Cache

作者:matrix 发布时间:2015 年 7 月 31 日 分类:Wordpress 零零星星

WordPress缓存WP_Object_Cache将数据缓存在内存中,每次请求,都会重新生成缓存。如果服务器支持内存缓存,如memcache 将会提高效率(相同页面处的多次查询数据)。减少数据库的请求次数。流量不大的用处也就不是很明显。
总的来说,没啥用。留作零碎记录

相关函数: 阅读剩余部分 »

Web-Capture在线网页截图抓取整张页面

作者:matrix 发布时间:2015 年 6 月 27 日 分类:零零星星

Web-Capture在线网页截图抓取整张页面

有些在线截图无法获取到整张页面,只有半截。Web-Capture可以抓取完整的网页截图

http://web-capture.net/

使用:

Enter the URL of the page you want to capture 输入你想抓取的网页地址

Choose the file format you want 选择抓取保存的文件格式。图片一般就是jpeg的就行

JPEG image、PDF file、TIFF image、BMP image、PNG image、Postscript file (PS)、SVG file

点击Capture Web Page进行截图。截图完成后会调转到一个页面,可以view查看,下载图片或者zip文档

Web-Capture在线网页截图抓取整张页面2
类似的网站还有page2images.com,它的好像不能截取整张图片,但是能选择移动端的UA。
参考:

Web-Capture 線上「網頁快照」服務,輸入網址完整擷取頁面轉圖片

http://www.ldsun.com/1053.html

PHP递归函数内的静态变量

作者:matrix 发布时间:2015 年 6 月 20 日 分类:兼容并蓄 零零星星

//静态变量的例子

/**
 * 将数组转换为字符
 *
 * 用于缓存
 *
 * @param $data
 * @return string
 */
function philnaArray2String($data, $returns = '')
{
    static $t = 1;
    $tabType = " ";
    $tab = str_repeat($tabType, $t);
    $data = (array)$data;
    foreach ($data as $key => $value) {
        if (is_array($value)) {
            $t++;
            $returns .= "$tab'" . $key . "' => array(\n" . philnaArray2String($value) . "$tab),\n";
        } else {
            if (!is_bool($value)) {
                $value = "'" . addslashes($value) . "'";
            }
            $returns .= "$tab'" . $key . "' => $value,\n";
        }
    }
    $returns = substr_replace($returns, '', -2, -1);
    return $returns;
}

说明:
上面php代码中的$t被static修饰,即为静态变量
静态变量在函数执行完毕后不会释放,会继续累加下去
赶脚非常合适在递归函数中用

参考:http://blog.csdn.net/shaerdong/article/details/8545874

win和linux的php异或运算结果不同

作者:matrix 发布时间:2015 年 6 月 17 日 分类:兼容并蓄 零零星星

一个获取key的函数(模拟js的php代码)在本地测试成功,而在服务器上失败。
逐行die()之后发现问题在于$b ^=4294967295;之前获取的$b都没问题,可到了这里就结果完全不一样。

win

<?php
$a = -38622 72608;
$b = 471468;
$c = $a ^ $b;
echo $c;
//Q1:
//本地这是5.2.14的php,Win,显示432886796;
//服务器上5.2.14的php,linux,显示-3862080500;
//Q2:如果将^ 换成xor
//本地显示-3862272608
//服务器显示-3862272608
?>

真是狗日的xor仙人板板。为什么换成xor结果和^又不同。
难道xor不是异或。。。 😕

Q1:幸好我不是第一个发现。算是有答案:
php中一个整数能表示的范围是2147483647~-2147483647
在linux环境下,php整数溢出的时候,其结果是不可靠
php提供了GMP库进行精确计算大数据
如果你的php开启了GMP:gmp_xor()进行xor运算

Q2:无解
将^ 换成xor运算win和linux的结果都一样。但是为毛线它又和^的结果不同。。。
应该也是整数溢出吧。。。懒得想了

参考:
php异或运算的不可靠性
http://php.net/manual/zh/ref.gmp.php
http://bbs.csdn.net/topics/390566090

将BCS的bucket文件保存到本地[PHP]

作者:matrix 发布时间:2015 年 6 月 3 日 分类:兼容并蓄 零零星星

收到百度BCS 6月30日停服提醒邮件,说是要停止服务,请自重。让咱BCS迁移到BOS...

BCS的bucket是以前创建bae时设置的,保存了一些图片文件

怎样把云存储的文件备份到本地是一个问题啊。毕竟一个一个下载太麻烦,文件有些多。。。

BCS控制台:http://developer.baidu.com/console#app/project

打开BCS控制台可以查看你的bucket名称以及API Key 和Secret Key。如果里面的文件有点多,且你想保存下来

下载 :http://pan.baidu.com/s/1mgMhp92

使用说明:

请确保解压后有个空的TTSEE文件夹,它用来存放下载的文件

只能保存一个bucket里面的文件,bucket有多层文件夹应该(我没试过)能正常使用的。

//$bcsobj->list_object_by_dir($bucket,'/',$list_model = 2);

解压后配置好bcs/conf-inc.php参数:项目对应的AK 公钥和SK私钥(百度开发者中心里复制)

调用:127.0.0.1/download.php?bucket=bucket名称

php中用到了file_put_contents函数:

$file = file_get_contents('http://bcs.duapp.com/newbuck'.$objest);//读取远程文件
file_put_contents('TTSEE'.$objest,$file);//保存到同级TTSEE目录

参考:

http://www.cnblogs.com/m199/p/3450675.html

http://www.jb51.net/article/57127.htm

PS:
150710后续更新
把bcs文件下载到本地电脑后再上传到主机空间。
之后用sql语法批量替换旧url。

UPDATE wp_posts 
SET post_content = ( Replace (post_content, 'bcs.duapp.com/newbuck/', 'www.hhtjim.com/wp-content/uploads/2015/bcsfile/') )
WHERE Instr(post_content, 'jpeg') > 0 
 OR Instr(post_content, 'jpg') > 0 
 OR Instr(post_content, 'gif') > 0 
 OR Instr(post_content, 'png') > 0

参考:

在 WordPress 設定 HTTPS,強制使用 SSL 安全加密協定教學

y.qq.com-php获取QQ音乐外链源码

作者:matrix 发布时间:2015 年 5 月 18 日 分类:零零星星

QQ音乐
MP3接口

http://tsmusic24.tc.qq.com/{音乐ID}.mp3
http:/ /stream.qqmusic.tc.qq.com/{音乐ID}.mp3
http:/ /stream{1-30都可以}.qqmusic.qq.com/{音乐ID}.mp3
http://tsmusic128.tc.qq.com/{音乐ID+30000000}.mp3 (请计算出结果)
QQ音乐高品质ogg
http://tsmusic128.tc.qq.com/{音乐ID+40000000}.ogg (请计算出结果)

M4A接口

http://tsmusic24.tc.qq.com/{音乐ID}.m4a
http://thirdparty.gtimg.com/{音乐ID}.m4a?fromtag=38
http://thirdparty.gtimg.com/C100{音乐MID}.m4a?fromtag=38
http://cc.stream.qqmusic.qq.com/C200{音乐MID}.m4a?vkey={VKEY的值}&guid=1830679348

过程

示例获取单曲页面的MP3或M4A文件链接
http://y.QQ.com/#type=song&mid=002G0sJY2wThyx
其中的002G0sJY2wThyx就是歌曲的mid
打开上面的URl浏览器会加载iframe框架http://s.plcloud.music.qq.com/fcgi-bin/fcg_yqq_song_detail_info.fcg?songmid=002G0sJY2wThyx
Ctrl +U查看源码

var g_SongData = { id: 7168586, songmid: '002G0sJY2wThyx', songname: '喜欢你', singer:'G.E.M. 邓紫棋', singerid:13948,singermid:'001fNHEf1SFEFN',albumname:'喜欢你', albumid:654246,albummid:'000cFPKx3ZGzks', status:31, fnote:0};/*status:非0(true)表示正常歌曲,0(false)表示下架歌曲或者歌曲不存在*/

说明:其中的7168586就是对应歌曲的id,而002G0sJY2wThyx是歌曲的mid,每首歌曲的信息都不同,这需要使用正则匹配数据

php代码:

<?php
$u = $_GET['u'];
$type = $_GET['t']?$_GET['t']:'mp3';
$con = 'http://s.plcloud.music.qq.com/fcgi-bin/fcg_yqq_song_detail_info.fcg?songmid='.$u;
preg_match('|var g_SongData = ({.*});|',file_get_contents($con),$data);
$obj = json_decode(format_ErrorJson(iconv('GBK', 'UTF-8', $data[1])));
$id = $obj->id;
//$mid = $obj->songmid;
$url = 'http://tsmusic24.tc.qq.com/'.$id.'.'.$type;
header('Location: '.$url);
function format_ErrorJson($data)
{
    $con = str_replace('\'','"',$data);//替换单引号为双引号
    $con = preg_replace('/(\w+):[ {]?((?<YinHao>"?).*?\k<YinHao>[,}]?)/is', '"$1": $2',$con );//若键名没有双引号则添加
    return $con;
}

说明:
上面代码只是用了MP3和M4A的第一种接口
代码保存为php文件,调用/xxx.php?u=音乐ID&t=格式
例如001yJypt4E8GW0歌曲的m4a地址
/xxx.php?u=001yJypt4E8GW0&t=m4a
阅读剩余部分 »