range

If there were you, the world would be just right

安装python3:

安装相关包

yum install zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc

下载python3的源码包

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz

解压python3源码包

xz -d Python-3.6.4.tar.xz
tar -xf Python-3.6.4.tar

编译安装

cd Python-3.6.4
./configure prefix=/usr/local/python3
make && make install

添加软链接

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

安装Web.py(接收器)

pip3 install --upgrade pip

pip3 install web.py

设置gogs-web钩子
143918.png

编写脚本代码接收信号并更新git

#!/usr/bin/python3
#coding=utf-8
import web
import json
import os

urls = (
     '/', 'web_exec'
)
app = web.application(urls, globals())
# 获取当前日志路径 
log_path = os.getcwd()

class web_exec:
    def POST(self):
        # inp为str
        inp = web.input().payload
        # data为dict
        data = json.loads(inp)

        # 当前推送获取的分支
        ref = data['ref']

        # 只更新master 分支内容
        if( ref!='refs/heads/master' ):
            return

        msg = '------------------------------------ start ------------------------------------'
        self.write_log_to_file(msg)

        sys_msg = "当前推送获取的分支:"+ref
        self.write_log_to_file(sys_msg)

        # 当前更新版本
        after_version = data['after']
        sys_msg = "当前更新版本:"+after_version
        self.write_log_to_file(sys_msg)

        # 当前版本推送人
        username = data['pusher']['username']
        sys_msg = "当前版本推送人:"+username
        self.write_log_to_file(sys_msg)        

        # 当前项目
        name = data['repository']['name']
        sys_msg = "当前执行更新项目:"+name
        self.write_log_to_file(sys_msg)

        # 进入对应的目录
        path = '/data/web/' + name + '/'
        sys_msg = "执行进入目录:"+path
        self.write_log_to_file(sys_msg)

        os.chdir(path)

        # 取回更新后
        sys = '/usr/bin/git fetch --all'
        sys_msg = "执行git fetch:"+sys
        self.write_log_to_file(sys_msg)

        os.system(sys)

        # 执行更新版本
        sys = '/usr/bin/git reset --hard ' + after_version;
        sys_msg = "最终执行更新脚本命令:"+sys
        self.write_log_to_file(sys_msg)

        msg = '------------------------------------ end ------------------------------------'
        self.write_log_to_file(msg)

        return os.system(sys)

    # 记录日志信息
    def write_log_to_file(self,msg):
        print('开始写入数据 ====> ' + str(msg))
        with open(log_path + 'git_update.log', 'a', encoding='UTF-8') as f:
            f.write(json.dumps(msg, ensure_ascii=False) + '\n')
            f.close()

if __name__ == "__main__":
    app.run()

运行脚本

python3 web_gz.py

推送git内容
push38.png

查看脚本打印
11.png

进入项目目录,查看是否有拉取到内容
73016.png

end!!


Yaconf - 鸟叔开发的一个高性能的配置管理扩展

在PHP启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着PHP的生命周期存亡. 避免了每次请求的时候解析配置文件
https://www.laruence.com/2015/06/12/3051.html

扩展下载地址

https://github.com/laruence/yaconf

解压

unzip yaconf-master.zip

进入目录

cd yaconf-master

生成相应的configure文件

/usr/local/php/bin/phpize

运行配置

./configure --with-php-config=/usr/local/php/bin/php-config

进行编译安装

make && make install

安装完成进行php.ini文件配置

vim /usr/local/php/etc/php.ini

extension=yaconf.so
yaconf.directory= /data/ini # 需要导入的配置文件地址, .ini 作为文件后缀名
yaconf.check_delay=100 #心跳检查时间,若为0则不检查,但如果有修改,需重启PHP

重启php进程管理

service php-fpm restart

查看扩展是否安装成功

php -m | grep yaconf

yaconf.png
使用:

在对应的目录 /data/ini 下创建配置文件,如:

vim redis.ini

host=127.0.0.1
port=3673
time=5
a.b=2
a.c=3

编写php脚本读取内容

vim test.php

<?php
    $res = \Yaconf::get('redis');
    print_r($res);

执行脚本

php test.php

test.png

end!


1、使用命令下载

curl -sS https://getcomposer.org/installer | php

2、下载之后设置环境变量

mv composer.phar /usr/local/bin/composer

3、修改权限

chmod -R 777 /usr/local/bin/composer

4、修改镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/


1、源包更新

[root@localhost ~]# yum update

2、安装需要的软件包

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

3、安装Docker,命令:yum install docker

yum install docker -y

4、启动Docker

systemctl start docker  #启动docker
systemctl enable docker #开机启动docker
systemctl status docker #查看docker状态

5、查看版本

docker version 

6、更新镜像

vim  /etc/docker/daemon.json
{"registry-mirrors":["https://registry.docker-cn.com"]}

docker简单使用

1、查看镜像
docker images 

2、启动镜像
docker run -tid 镜像ID /bin/bash

3、删除镜像
docker rmi -f `docker image -qa`

3、启动完镜像后会生成容器,查看容器
docker ps 
docker ps -a

4、进入容器内部
docker exec -tid 容器ID /bin/bash

5、进入时修改名
docker exec -tid --name 容器名 容器ID /bin/bash

6、停止容器
docker stop 容器名

6、删除容器
docker rm -f 容器ID
docker rm -f `docker ps -qa`

7、映射端口
docker exec -tid -p 8080:80 容器ID /bin/bash

8、查看容器的映射端口
docker port 容器名

修改网络配置

vi /etc/network/interfaces

auto lo
iface lo inet loopback

auto ens33(ens33为以太网卡,根据实际名称填写)
iface ens33 inet static
address 192.168.0.8(IP地址,要和物理机在同一网段,且不要和局域网内其他设备IP冲突,查看方法见下)
gateway 192.168.0.1(默认网关,和物理机一样)
netmask 255.255.255.0(子网掩码,和物理机一样)

配置永久DNS

vi /etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)

nameserver 192.168.0.1

刷新

resolvconf -u

重启网络

service network restart

重启机器

end!!