设置 socks5/http 代理,可用于git和shell终端
2017-06-19 tech proxy 3 mins 7 图 1280 字
普通系统代理
普通的系统代理,一般代理软件都会设置好了。如果设置不成功,可以按照如下方式手动设置。
Windows 如下:
Mac 如下:
普通的系统代理,一般代理软件都会设置好了。如果设置不成功,可以按照如下方式手动设置。
Windows 如下:
Mac 如下:
这一块在各个发行版之间、同一个发行版内部,都有不同的方式。这一篇以 Debian 8 作为例子,其它版本请谨慎阅读。
修改内核启动参数
vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="text" # 原先为 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_TERMINAL=console # 原先被注释掉了
然后运行
update-grub
不启动窗口管理器
vi /etc/X11/default-display-manager
#/usr/sbin/gdm3
/bin/true
加载默认配置
systemctl set-default multi-user.target
完成。
Onethink是基于Thinkphp 3.2开发的一款内容管理框架。 今天在安装过程中出现mysql_connect检测失败,无法安装的问题。
从根源上说,这个是 PHP7 关于 MySQL 连接实现的改变引起的一个问题。
Onethink 总共检测了3个函数 mysql_connect(),file_put_contents(),mb_strlen(),如果在低于PHP7的环境下可能没什么问题, 在PHP7中,mysql_connect()函数已经被废弃,所以无论如何都检测不过的,PHP官方也是推荐使用Mysqli或者PDO(PHP数据对象)方式连接数据库,增加应用的安全性。
因此我们可以修改环境检测的代码,只要修改一处就可以了。
在Application/Install/Common/function.php中找到方法check_func()把检测 mysql_connect 改成 mysqli_connect 即可
/**
* 函数检测
* @return array 检测数据
*/
function check_func(){
$items = array(
array('mysqli_connect', '支持', 'success'),
array('file_get_contents', '支持', 'success'),
array('mb_strlen', '支持', 'success'),
);
foreach ($items as &$val) {
if(!function_exists($val[0])){
$val[1] = '不支持';
$val[2] = 'error';
$val[3] = '开启';
session('error', true);
}
}
return $items;
}
检测后,安装选择mysqli的方式连接数据库。
可以使用以下这个python脚本生成认证文件:htpasswd.py
执行命令:
chmod 777 htpasswd.py
./htpasswd.py -c -b filename username password
或安装htpasswd:
apt-get install apache2-utils
htpasswd -c filename username
server {
listen 80;
***
***
auth_basic "Password";
auth_basic_user_file /var/local/nginx/conf/xxx;
***
***
}
}
在官方文档上可以看到这么描述 Unions 的:
查询语句构造器也提供了一个快捷的方法来「合并」两个查找。例如,你可以先创建一个初始查找,然后使用 union 方法将它与第二个查找进行合并:
$first = DB::table('users') ->whereNull('first_name'); $users = DB::table('users') ->whereNull('last_name') ->union($first) ->get();
也可使用 unionAll 方法,它和 union 有着相同的方法签名。
今天在实现这样一个需求,将两个类似的表打乱然后显示出来。参考了一份非常、非常、非常难看的原生 SQL 语句,唏嘘~~
原本呢,直接使用 Eloquent 进行 Union ,使用 Get 获取也是可以的,然而因为我需要进行 paginate 分页,直接使用 Eloquent 就报错了,所以还是需要使用原生 SQL 。
不得不说,我对 SQL 语句非常不擅长。于是原生 SQL 可以通过 Laravel Eloquent ORM 自带的 toSql 方法获得。
以下是示例:
private function resumeRelateSqlGetPaginate(Job $job, $resumeStatus)
{
$sql = '(select * from "resume_as" where "job_uuid" = \'' . $job->uuid . '\' union all select * from "resume_bs" where "job_uuid" = \'' . $job->uuid . '\') as t';
$builder = DB::table(DB::raw($sql));
if ($resumeStatus == '99') {
$sqlMid = '"status" in (22,32,42,43,52) ';
$builder = $builder->whereRaw($sqlMid);
} elseif ($resumeStatus == '0') {
$sqlMid = '';
} else {
$sqlMid = '"status" = ' . $resumeStatus;
$builder = $builder->whereRaw($sqlMid);
}
return $builder->paginate($this->resumePaginate);
}