range

If there were you, the world would be just right

安装ftp操作:

# 安装
sudo apt-get -y install pure-ftpd

# 配置
sudo ln -s /etc/pure-ftpd/pureftpd.passwd /etc/pureftpd.passwd
sudo ln -s /etc/pure-ftpd/pureftpd.pdb /etc/pureftpd.pdb
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB
cd /etc/pure-ftpd/conf
echo "*,25681" > Bind
echo "UTF-8" > FSCharset
echo "10" > MinUID
echo "yes" > NoAnonymous
echo "no" > PAMAuthentication
echo "/etc/pure-ftpd/pureftpd.pdb" > PureDB
echo "no" > UnixAuthentication

# 添加 系统wwwftp 用户
/usr/sbin/useradd -d /dev/null -s /bin/false wwwftp

# 创建共享目录
mkdir -p /data/web
chown -R wwwftp:www-data /data/web

# 添加ftp用户及对该用户开放的目录
pure-pw useradd zero -u wwwftp -g www-data -d /data/web
pure-pw mkdb

# 重新启动
/etc/init.d/pure-ftpd restart

在项目管理中常用到git,命令号模式不太友好,故安装SourceTree可视化工具。
1、安装git
2、环境windows生成 ssh key

 ssh-keygen -t rsa -C "email@email.com"

3、安装sourcetree - 跳过注册的方法

  1. 进入目录
    %LocalAppData%AtlassianSourceTree\
  2. 创建一个json文件,文件名为accounts.json。内容如下:
[
  {
    "$id": "1",
    "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",
    "Authenticate": true,
    "HostInstance": {
      "$id": "2",
      "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",
      "Host": {
        "$id": "3",
        "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",
        "Id": "atlassian account"
      },
      "BaseUrl": "https://id.atlassian.com/"
    },
    "Credentials": {
      "$id": "4",
      "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",
      "Username": "",
      "Email": null
    },
    "IsDefault": false
  }
]

4、sourcetree配置ppkey
1.png

2.jpg


class Controller {

    public function __call($method, $args)
    {
        $this->checkAccess($args);
        return call_user_func_array([$this, $method], $args);
    }

    protected function actionFoo($params,$bb) {
        print_r($params);
        print_r($bb);
    }

    protected function checkAccess(&$args)
    {
        $args[0]['game_id'] = 1;
        return $args;
    }
}

(new Controller())->actionFoo(['a'=>111,'b'=>222],['game_id']);