分类 编程 下的文章

原理

当版本库代码更新时,通过 git 的 webhook(git web 钩子)触发 push 事件。用户提交代码(git push)服务器的宝塔 webhook 插件拉取当前 git 最新代码(git pull)。

步骤

1、CentOS 服务器安装宝塔面板:宝塔面板
linux_pc_free.png

2、安装 git:

yum install git

Tips: Git 生成 SSH 公钥

3、宝塔面板软件商店安装 宝塔WebHook;
20191110195119.png

4、添加 HOOK 命令:

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/web/$1"
#git 网址
gitHttp="http://git.xxxxx.com/web/$1.git"

echo "Web站点路径:$gitPath"

#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        #拉取最新的项目文件
        git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

- 阅读剩余部分 -

071305064859837.png

SSH 存储位置

默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。(CentOS 存储在 /root/.ssh;Windows 存储在 C:\Users\Administrator\.ssh)

查看目录下是否存在 SSH 公钥:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

id_dsa 或 id_rsa 文件应该成对出现,其中一个带有 .pub 扩展名。.pub 文件是你的公钥,另一个则是私钥。

运行 ssh-keygen 生成

ssh-keygen -t rsa -C "your@example.com"

your@example.com 是你的邮箱。

测试连通性

ssh -T git@github.com

配置 name 和 email

git config --global user.name "yourname"
git config --global user.email "your@example.com"

2018-07-05更新

再次修改插件,主要包含一下更新:

  1. 常规更新,使用最新Release版阿里云SDK;
  2. 应博客中留言的朋友们要求,使上传和下载时的文件名保持一致;
  3. 可以自定义http或https的加速域名;
  4. 添加若干区域的支持。

插件使用说明

插件基于aliyun-oss-php-sdk Release 2.3.0开发, 若以后SDK开发包更新导致插件不可用,请到 我的博客 ^ - ^获取新版本插件, 如果我还用typecho还用阿里云就会更新。
请赋予 文件上传目录 以及 插件日志目录 写权限,否则可能导致上传失败。

若开启“在服务器保留备份”功能:
成功保存文件到OSS但没有成功保存到服务器的情况下插件不会报错, 这将导致当前文件在服务器上没有备份,但是会插件日志目录下生成错误日志"error.log",请定期查阅并清理。

运行在云应用引擎上的站点“在服务器保留备份”选项无效。

旧版本Typecho存在无法上传大写扩展名文件的bug,请更新Typecho程序。

下载地址:

本地下载:AliOssForTypecho_v1.1.1.zip

磁盘挂载方法

查看已使用的磁盘情况:

df -HT

查看所有磁盘:

fdisk -l

查看指定磁盘的分区情况:

fdisk -l /dev/xvdb1

对磁盘进行分区:

fdisk /dev/xvdb1

查看刚刚分配的磁盘号:

fdisk -l

格式化磁盘:

mkfs -t ext4 /dev/xvdb1

-t 表示指定格式化磁盘的文件系统类型为ext4,默认不指定为ext2(比较老的linux文件系统类型)centos7默认系统格式是xfs格式,格式化磁盘的时候也可以指定类型为xfs格式;

- 阅读剩余部分 -

实现 "回车!=提交" 的问题,一般可以从 "按钮的type类型" 和 "输入框个数" 两处着手。

默认情况下,单个输入框,无论按钮的 type="submit" 还是 type="button" 类型,回车即提交。

1、当 type="submit" 时,无论有几个 type="text" 输入框,回车均表示提交。(submit)

2、当 type="button" 时,且存在多个输入框,回车不提交。(button)

3、解决单个输入框的回车即提交问题,参考第二点:可以增加一个输入框并隐藏 input="text" style="display:none;";然后 type 类型为 button。

在实际应用中,input 输入框很少只有一个的情况,那么只需记住第二条即可应对。

使用 JS 事件阻止表单提交,不在本文讨论范围,当然也是可以实现的。