centos安装docker及docker-compose

在vbox中建立系统与项目线上相同的环境

参照官网文档(资料1)安装步骤, step2不一样.

step1

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

step2

tip: 官方的yum源地址安装下载时非常慢

sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

step3

sudo yum-config-manager --enable docker-ce-edge

step4

sudo yum install docker-ce

step5

yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION STRING>
sudo systemctl start docker
sudo docker run hello-world

docker-compose

Tip: 加速版安装参考[资料3], 官方版参考[资料4]

curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

相关资料

资料1-Get Docker CE for CentOS
资料2-CentOS 安装 Docker CE
资料3-安装 Docker Compose
资料4-Install Compose

阿里云https(SSL)证书过期后更新

项目的证书过期了(一年), 本以为按之前替换下文件就OK了. 但是出现 无法解析IP地址, URL内容出错问题.

URL内容出错?

使用的文件验证方式, 需要先项目中存放对应的文件 那么阿里云后台才可以获取到证书文件. 免费的是一个证书只能对应一个子域名. 后台证书设置绑定域名 www.xxxx.com 但是阿里云却会把域名变成指向 xxxx.com 也就是忽略www了. 那么Nginx-vhost中没有配置xxxx.com域名. 所以导致URL内容访问错误问题.(去年配置的时候, www.xxxx.com 对应绑定的就www.xxxx.com, 估计是阿里云中的策略发生改变了.)

处理方式1: www.xxxx.com xxxx.com vhost配置同一个项目 处理方式2: 使用DNS验证方式.


解析IP地址?

域名没有在后台做解析.



继续阅读

上线测试和上线生产流程(开发到测试到生产部署)

开发到部署流程繁琐 如何可以自动化部署, 项目可以自由版本回滚切换.

讨论记录 2018年10月09日15:34:13

开发到线上部署流程

M:

  1. 开发提交项目代码, 及部署文档, 发给测试人员.
  2. 测试人员根据部署文档, 在线上测试机器部署及测试.
  3. 如果测试没有问题, 将直接在生产中部署.
  4. 如果测试有问题, 退回给开发 开发修复并 svn tags 然后 测试人员使用 svn witch 切换到对应的 tags 再测试.
  5. 直到测试没有问题. 部署线上生产.

D: FTP

D: ftp 上传代码,代码上传到了一台叫发布机的服务器去了,好像是命名叫发布机吧,具体也忘了,但是 刷新网页半天没显示,后面才知道并不是实时的。 好像是会自动检测代码,如果有问题的话是不会最终到线上版

X: 开发功能-创建分支-完成提交合并-创建新的发布版本-登录测试机-拉取代码-测试-有bug改bug没bug就合并发布版本到master-提交-同步数据库字段-登录生产机-拉取代码-清除数据库表缓存-如有问题创建修复补丁-完成后提交合并

D: 三个概念,持续集成,数据库迁移,数据填充。我觉得哇,laravel中的数据库迁移篇里的工具真的好用。

数据库结构同步

M:

方式1 通过文件来每次项目提交已项目版本号为名字 project_1.0.1.sql
方式2 通过navicat里的数据结构对比

X: 改数据结构-先到erwin结构里面修改-到数据库navicat改-在navicat历史记录里面将sql复制到md文件-每次上线都会先看md文件是否有sql需要执行-复制sql到正式库执行-完成

D: 都可以一行命令同步

G: 大佬级别啊~你们… 能不能让我听懂的

关于开发数据同步

M: 其实数据结构还好说, 有些程序需要的数据同步才麻烦(这种数据我称为开发数据) 比如分类的数据 这种数据线线上可以添加. 会导致id不一致pid这些值.

D: 数据同步那是另外一回事, 测试阶段,数据填充工具很方便

相关内容

大家公司中上线测试和上线生产流程是怎么走的?
Jenkins+Ansible+Gitlab自动化部署三剑客
Laravel 实践之路: 数据库迁移与数据填充

相关部署平台

walle 瓦力
Test and Deploy with Confidence

composer私有库搭建

安装

cd ~/web
composer create-project composer/satis --stability=dev --keep-vcs
mv satis packages.dev.com
cd packages.dev.com

satis的配置是通过satis.json进行的,我们在当前目录新建一个satis.json

{
    "name": "My Repository",
    "homepage": "http://packages.dev.com",
    "repositories": [
        {"type": "vcs", "url": "https://github.com/helloMJW/aliyun-sms.git"}
    ],
    "require": {
        "hellomjw/aliyun-sms": "*"
    }
}

tip:如果私建git库没有https, 上面json配置就要增加下面配置值

{
"config": {
        "secure-http": false
    }
}

生成

php bin/satis build satis.json public/

简单的使用php内置的服务器启动一个简单的WEB服务器

php -S 0.0.0.0:8088 -t public/

搭建过程日志

sudo php bin/satis build satis.json public/ 执行后出现下面错误

You must set up the project dependencies using Composer before you can use Satis

原因: 由于之前忽略 PHP部分扩展未安装导致, 根据之前的未安装的扩展安装上 问题就可以解决.


相关资料

github-satis
Private Packagist

使用 satis 搭建一个私有的 Composer 包仓库
如何搭建Composer私有仓库
服务器上的 Git

内网穿透FRP

配置Nginx转发端口共用一个80端口

server {
    listen 80;
    server_name *.frp.example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header    Host            $host:80;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header   X-Powered-By;
    }
}

相关资料

GTIHUB-frp
有哪些简单实用的端口映射(内网穿透)软件工具?
让 frp 和 nginx 一起使用 80 端口

CentOS-7目录

CentOS Linux release 7.5.1804 (Core) 目录

目录名 描述
bin ~
dev ~
home ~
lib64 ~
mnt ~
proc ~
run ~
srv 放置内容: “service” 的缩写,是一些网络服务启动后,这些服务所需要取用的数据目录。常见的服务例如 WWW,FTP 等
var ~
boot ~
etc ~
lib ~
media ~
opt ~
root ~
sbin ~
sys ~
usr ~

新安装CentOS设置静态IP和禁用启用网卡(wifi)

ifdown [interface] 禁用网卡 ifup [interface] 启用网卡

通过 ifconfig 列出网卡

enp0s25: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
...... 省略部分
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
...... 省略部分
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
...... 省略部分

无线网卡禁用 ifdown wlp3s0 错误
应该是无线连接的名字 /etc/sysconfig/network-scripts/ifcfg-tp888, ifcfg-tp888 这个文件是连接网络的时候自动生成.

静态IP配置

重点部分

BOOTPROTO=static
IPADDR=192.168.31.3
NETMASK=255.255.255.0
GATEWAY=192.168.31.1
DNS1=192.168.31.1

整个文件内容(ifcfg-tp888)

HWADDR=00:27:10:4C:7B:64
ESSID=tp888
MODE=Managed
KEY_MGMT=WPA-PSK
SECURITYMODE=open
MAC_ADDRESS_RANDOMIZATION=default
TYPE=Wireless
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp

BOOTPROTO=static
IPADDR=192.168.31.3
NETMASK=255.255.255.0
GATEWAY=192.168.31.1
DNS1=192.168.31.1

DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=tp888
UUID=e9176e47-5a9d-4461-84ee-a2c786abd726
ONBOOT=yes