### 关于Basic Authorization
在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。

在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。

虽然对用户名和口令的Base64算法编码结果很难用肉眼识别解码,但它仍可以极为轻松地被计算机所解码,就像其容易编码一样。编码这一步骤的目的并不是安全与隐私,而是为将用户名和口令中的不兼容的字符转换为均与HTTP协议兼容的字符集。

首先我们需要用来存储用户名和密码的文件,通过htpasswd命令来生成,这是apache提供的一个工具,如果你没有装可以用在线生产的方式来生成。
在线生成网址:tool.luoschina

htpasswd -c -d /etc/nginx/pass_file  username
//输入以上命令,回车输入密码,再次回车,输入确认密码

然后修改nginx 的配置文件,加入如下代码即可。

location ~ /admin {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/pass_file;
    //存储用户名和密码的文件。
    root /home/www/admin;
    //host 地址,不然认证通过之后,找不到对应的文件
}

重载nginx配置文件,访问你设置的网址及路径,如果弹出授权框即为成功。


很多服务商没有分配ipv6地址,如果我们想用怎办呢,当然也是有办法的。
我这里使用的阿里云,当然也是没有分配IPv6地址的,我们可以使用 Hurricane Electric Free IPv6 Tunnel Broker 来让阿里云服务器支持 IPv6。

阅读全文


最近在学习laravel框架,可是laravel一上来就给我个下马威,都是默认的配置为什么会出错呢,百度依旧不管用,github上面找了一下,欣慰的看到不是我一个人掉进坑中,这里就发出来解决方案希望不要有更多的人踩坑。

阅读全文


Flyme 6是魅族昨天发布的全新手机rom,适配于魅族全部产品线,这次升级flyme 6也是更新了很多对应的机型。
flyme 6 这次适配了PRO 6s / PRO 6 / PRO 5 / MX4 Pro / MX6 / MX5 / MX4 / 魅蓝 Max / 魅蓝 metal(公开版)/ 魅蓝 note(公开版) / 魅蓝 note2 / 魅蓝 note2 电信版 / 魅蓝 note3 / 魅蓝 3 / 魅蓝 3s / 魅蓝 E / 魅蓝 2 / 魅蓝 2 电信版 / U10 / U20等众多机型。
昨天晚上魅族已经推送了内测版rom,但是首批只招募6360人推送内测版rom,并且限制了imei串号,让人拿到rom包也没办法升级。没有收到推送的人员也就只能等待12.30日的公测推送了,作为一个耐不住寂寞的死宅当然不能这样妥协,我这边已经使用自己的方法升级到了flyme6,自然是不敢藏私。

请输入图片描述

升级准备

rom限制了imei串号,我们当然也是可以绕过这个限制的。
但是我们首先要找到rom包并下载才可以升级对么,我这里提供了几个容易找的包,如果没有你的机型请自己寻找吧

魅族 PRO 5 :https://share.weiyun.com/b102e475c6707053db0b79e3fde2b89d
魅族 NOTE :http://download.meizu.com/Firmware/Flyme6/m1_note/6.6.11.30/cn_daily/20161130/2659erxd/update.zip
http://pan.baidu.com/share/link?shareid=2693609090&uk=2208716819

然后我们需要几个必须的软件:
电脑端:
java环境,这里就安装jre就可以了,官网:https://www.java.com/zh_CN/
我们还需要一个文本编辑器,推荐使用notepad++,官网:https://notepad-plus-plus.org/
rom工具包 (如果你在手机上签名也可以不需要,你能忍受那个速度的话)

手机端:
FlashFire_v0.53
kingroot_v4.8
SuperSU_Me_Pro_v8.9
SuperSU_v2.76

获取ROOT权限(已经获取的也看看)

因为魅族强制校验rom包签名,所以我们这里就不能直接用魅族自带的rec来升级了,解决办法就是使用FlashFire进行升级,但是FlashFire作为软件,当然是需要root权限才能替换系统层面的东西,但是自带的权限管理太弱了,FlashFire也只认SuperSU,怎么办呢,我们可以使用KingRoot来作为跳板让SuperSU接管root权限。
这里就先安装我们上面提供的软件,全部安装上去哦,注意:SuperSU Me Pro要在KingRoot前面安装,别问我为什么,我因为这个被坑了接近两小时。

获取root

  1. 首先当然是解锁root权限了,flyme自带有解锁功能,我们打开设置-安全-root权限,打上勾点确认,输入账户就会自动重启,这样就解锁root了。
  2. 重启之后我们打开KingRoot,会提示我们获取root权限,点击获取,如果失败就重试,直至成功,然后关闭软件即可。
  3. 之后我们打开SuperSU Me Pro,会提示时候是否允许root权限,当然点允许,然后会有个进度条,我们等完成,完成后会弹出SuperSU的需要更新su二进制文件,点继续,然后选常规,顺利的话会提示更新成功的。
  4. 这个时候我们试试打开FlashFire,如果不提示你SuperSU没有运行并且弹出是否授权root就算完成了。

修改imei串号并签名

我们前面下载了“update.zip”这个固件包,我们需要简单的修改一下才能解除imei串号限制。
工具前面也提供了,我们打开“rom工具包”解压出来,让到一个你能找到的地方。

  1. 然后打开固件包,进入“META-IN”文件夹下面,会有一个“imei.dat”文件,我们解压出来,用文本编辑器打开,不要用记事本,推荐使用notepad++。
  2. 这时候我们在手机上查看自己的imei串号,如果你不知道,打开设置-关于手机,看到imei了么,长按复制,发送到电脑上(手打当然也可以,但是可能会出错)
  3. 然后我们在“imei.dat”文件内找和自己串号相近的数字,放到中间即可,如果你想偷懒可以直接放到最后,注意留下一个换行保存即可
  4. 将我们修改后的“imei.dat”文件拉到压缩包里面,然后我们找到“rom工具包”解压的地方,双击“土豆ROM工具箱.bat”,输入“1”按回车,同目录下会自动新建一个“需要签名”的文件夹,把我们修改过的“update.zip”放进去,然后按回车,等待完成会弹出一个文件夹,里面是签名好的固件包,我们把“update.zip”发送到手机。

升级固件

获取到了root权限,修改好固件,我们该升级flyme6了,你准备好了吗?

首先打开FlashFire,点击右下角的“+”号,我们选择“Flsah ZIP or OTA ”,然后找到固件包,会弹出一个提示窗,直接点右上角的勾,跳转到新页面直接点“FLASH”。
如果顺利的话会直接重启,稍等片刻会出现一个红字黑底的页面。
如果你的手机很快就完成并重启到原系统,你可以尝重新签名rom包。
如果没有问题会在这个页面停留一段时间,并在底部出现一个红色的进度条,完成之后会自动重启,你的flyme 也就升级完成了。


linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。

supervisor就是使用python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

centos安装supervisor:

yum install python-setuptools
easy_install supervisor

echo_supervisord_conf > /etc/supervisord.conf
//生成配置文件

vim /etc/supervisord.conf
//在supervisord.conf最下面新增配置
------
[program:bandwidth]
command=python26 /usr/local/bin/bandwidth.sh
//需要执行的命令
user =root
//(default  is  current  user , required  if  root)
autostart=true
//start at supervisord start (default: true)
autorestart=true
//whether/when to restart (default: unexpected)
startsecs=3
//number of secs prog must stay running ( def . 1)
stderr_logfile=/tmp/bandwidth_err.log
//redirect proc stderr to stdout (default false) 错误输出重定向
stdout_logfile=/tmp/bandwidth.log
//stdout log path, NONE  for  none; default AUTO, log输出

//更多配置说明请参考:http://supervisord.org/configuration.html
------

supervisord -c /etc/supervisord.conf
//启动supervisor

Debian/Ubuntu 安装supervisor:

apt-get install supervisor
vim /etc/supervisor/conf.d/bandwidth.conf
//新增一个配置文件
------
[program:bandwidth]
command = python26 /usr/local/bin/bandwidth.sh
directory = /usr/local/bin/
user = root
autostart = true
autorestart = true
//配置同上,不过需要注意一定要有directory
------

supervisorctl update
supervisorctl start bandwidth

常用状态命令:

supervisorctl
//直接进入命令行模式
supervisorctl status
//查看运行状态
supervisorctl help
//查看帮助
supervisorctl reload
//重载配置文件
supervisorctl stop [name]
//停止运行[name]
supervisorctl start [name]
//开始运行[name]

//更多命令请参考:http://supervisord.org/