Shadowsocks CentOS 服务器优化

服务器明明不限制带宽,访问网站页面却出奇的慢?看了 VPS 的监控也只能达到几百kb的带宽,实在忍受不了这样的龟速,开启这次针对Shadowsoks的服务器优化之路。

系统说明

本次只针对 CentOS 7 系统,其他发行方的系统或者7以外版本的系统均没有实际操作,不能保证按照这次操作流程可以成功操作。本次涉及操作系统内核升级,请操作前备份重要数据以防止升级失败造成的数据丢失问题。

Read More

Centos 7 shadowsocks 安装与配置

作为技术人员,经常需要去访问一些国外的网站,然而因为一些XX的原因,禁止这些网站的访问,如谷歌搜索。因此,我们有必要自己搭建个梯子,自由享受网络。

如何选择 VPS 提供商

选择 VPS 尽量选择一个国外的 VPS 提供商(国内缩水太厉害)节点最好选在香港、日本、韩国等离大陆较近的地方,推荐以下提供商:

Read More

git-shell禁止 Git 用户登陆,仅允许访问

在搭建 Git 服务器时,我们需要新创建 Git 用户,来运行 Git 服务。但是添加的用户可以通过 SSH 进行远程登陆。这必然存在一定的安全问题,黑客可以通过 Git 用户提权获取超级管理员权限。那么我们怎么防止 Git 用户登陆,又不影响 Git 用户对代码库的pull/push操作呢,最简单的方式就是直接修改 Git 用户的默认 shell 为 /usr/bin/git-shell。

  1. 查看系统是否存在 git-shell,一般在安装完 Git之后都已经存在

    1
    whereis git-shell

Read More

RESTful API 设计规范

随着 WEB 技术的发展,各种设备(手机、平板、PC、其他专用设备)及近几年各种前端框架( React、Angular、Vuejs) 等的层出不穷,使得 WEB 开发占据着举足轻重的地位,同时也给前后端数据交互带来新的挑战。在开发过程中,前后端的数据交互也变得越来越密切, 我们迫切需要一个统一的 API 接口规范设计,方便不同的前端设备与后端进行通信。这导致 API 构架的流行,甚至出现 “API First” 的设计思想。RESTful API 是目前比较成熟的一套互联网应用程序的 API 设计理论。今天,我将介绍 RESTful API 的设计细节,探讨如何设计一套合理、好用的 API。主要参考了Github 的 API 设计规范,我按照自己的理解总结了一下。

Read More

jQuery 实现复选框的全选与反选

忽略了 HTML 部分代码,直接上 javascript 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$('#check-all').change(function () {
if(this.checked) {
$('#box').find('input[type="checkbox"]').each(function () {
$(this).prop('checked', true);
});
} else {
$('#box').find('input[type="checkbox"]').each(function () {
$(this).prop("checked", false);
});
}
});

$('#box').find('input[type="checkbox"]').each(function () {
$(this).change(function () {
if (this.checked){
if ($('#box').find('input:checkbox').length == $('#box').find('input:checkbox:checked').length) {
$('#check-all').prop('checked', true);
}
} else {
if ($('#box').find('input:checkbox').length != $('#box').find('input:checkbox:checked').length) {
$('#check-all').prop('checked', false);
}
}
});
});

二维数组递归调用生成 HTML select列表

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$data = [
['id' => 1, 'parent_id' => 0, 'dpath' => 1, 'name' => '服装'],
['id' => 2, 'parent_id' => 1, 'dpath' => 2, 'name' => '男士服装'],
['id' => 3, 'parent_id' => 2, 'dpath' => 3, 'name' => '外套'],
['id' => 4, 'parent_id' => 2, 'dpath' => 3, 'name' => '裤子'],
['id' => 5, 'parent_id' => 0, 'dpath' => 1, 'name' => '家用电器'],
['id' => 6, 'parent_id' => 5, 'dpath' => 2, 'name' => '冰箱'],
['id' => 7, 'parent_id' => 6, 'dpath' => 3, 'name' => '海尔冰箱'],
['id' => 8, 'parent_id' => 5, 'dpath' => 2, 'name' => '空调'],
['id' => 9, 'parent_id' => 8, 'dpath' => 3, 'name' => '格力空调']
];

Read More

sh: 1: node: Permission denied

我的博客是采用 hexo 搭建的,想着每次都要手动发布文章太过繁琐。作为程序员,懒是程序员的通病,凡事能程序解决的问题,就不要想手动解决。于是想到采用 Git 的 hooks 进行自动发布,说干就干,买了台服务器这就动手搞起。此处省略了 Git 服务搭建,想了解的请自行百度,这里直奔主题,开始安装 hexo-cli。这是在我的 Vultr VPS 上安装 hexo-cli 时候,发生的 “sh: 1: node: Permission denied” 错误信息。

Read More

Laravel 增加自定义全局函数

有时候我们需要给 Laravel 添加一些自定义全局函数。当然,我们可以直接修改 Laravel 的 Helpers.php 文件来实现(这是极其不推荐的)。接下来我们讨论以下两种实现方式:

无论是以下哪种方式,都必须创建包含自定义函数的 PHP 文件

  • 方式一:修改 Laravel 根目录下 bootstrap/autoload.php 文件

  • 方式二:修改 composer.json 的 autoload 配置,并更新 composer 的 autoload_files.php 文件

Read More