CentOS 7 上配置 Let’s Encrypt 的 SSL 免费证书

参考官方文档:https://certbot.eff.org/lets-encrypt/centosrhel7-apache

启用EPEL储存库

$ yum -y install yum-utils
$ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

安装 certbot 工具

$ sudo yum install python2-certbot-apache

安装 SSL 证书

$ sudo certbot --apache

续订证书 (证书有效期3个月)

$ sudo certbot renew

自定续订证书 (systemd timer)

创建 certbot 的 systemd service

$ sudo vi /etc/systemd/system/certbot.service
# certbot.service

[Unit]
Description=Certbot renew

[Service]
ExecStart=/usr/bin/certbot renew
ExecStartPost=/bin/systemctl reload httpd.service 

[Install]
WantedBy=multi-user.target

创建 certbot 的 systemd timer

$ sudo vi /etc/systemd/system/certbot.timer
[Unit]
Description=Auro certbot renew
 
[Timer]
OnCalendar=daily  
Persistent=true
 
[Install]
WantedBy=timers.target

启用 certbot 的服务以及它的定时器

$ sudo systemctl enable certbot.service
$ sudo systemctl start certbot.timer

查看定时器列表

$ systemctl list-timers --all

CentOS7 LAMP环境安装

httpd

$ yum install -y httpd

开启防火墙http与https的端口

$ firewall-cmd --permanent --zone=public --add-service=http
$ firewall-cmd --permanent --zone=public --add-service=https

mariadb

$ yum install -y mariadb mariadb-server

初始化 mariadb 的账户配置

$ mysql_secure_installation

使用合适的配置文件

$ ls /usr/share/mysql/my-*
my-huge.cnf  my-innodb-heavy-4G.cnf  my-large.cnf  my-medium.cnf  my-small.cnf
$ mv /etc/my.cnf /usr/share/mysql/my.default.cnf # 备份默认配置
$ cp /usr/share/mysql/my-small.cnf /etc/my.cnf  # 复制新的配置文件

php56

# 安装 yum 支持库
$ rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 查看可安装的 php 列表
$ yum list php*
# 安装 php
$ yum install -y php56w php56w-mysql php56w-gd libjpeg* php56w-ldap php56w-odbc php56w-pear php56w-xml php56w-xmlrpc php56w-mbstring php56w-bcmath

配置默认时区

$ vi /etc/php.ini
# 修改行内容如下
date.timezone = PRC

服务的启动与关闭

$ systemctl start [server name]  // 启动
$ systemctl stop [server name] // 停止
$ systemctl restart [server name] // 重启
$ systemctl enable [server name] // 启用开机启动
$ systemctl disable [server name]// 禁用开机启动

Ubuntu 搭建 Zerotier One MOON 根目录服务器

博主倒腾了一天,总算搞定了,主要是受到各种搭建教程的错误引导,导致关键过程错误。
缺陷:中国手机4G网络无法建立连接,手机增加MOON。
官网的MOON搭建教程:https://www.zerotier.com/manual.shtml
官网的安装教程:https://www.zerotier.com/download.shtml

前提概要
Zerotier One 版本:v1.2.10
10.0.0.2是一个公网IP, 根据实际情况设定
deadbeef00是根服务器的ID, sudo zerotier-cli info获取

根服务器节点

通过 identity.public 生成一个 moon.json 文件

sudo zerotier-idtool initmoon /var/lib/zerotier-one/identity.public >> moon.json

编辑 moon.json 文件,写入根服务器IP "stableEndpoints": [ "10.0.0.2/9993"], 如果开启防火墙请开放9993/udp端口。

{
  "id": "deadbeef00",
  "objtype": "world",
  "roots": [
    {
      "identity": "deadbeef00:0:34031483094...",
      "stableEndpoints": [ "10.0.0.2/9993"]
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

生成 .moon 文件

sudo zerotier-idtool genmoon moon.json

移动 .moon 文件到 moons.d 文件夹中(需要手动创建该文件夹)

sudo mv 000000deadbeef00.moon /var/lib/zerotier-one/moons.d/

重启 zerotier-one

sudo killall -9 zerotier-one

常规节点

将根服务器添加到常规节点

sudo zerotier-cli orbit deadbeef00 deadbeef00

如果自动加载moon文件失败,请手动拷贝000000deadbeef00.moon文件到常规节点的机器上

Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one

重启 zerotier-one

sudo killall -9 zerotier-one

查看节点列表,出现根服务器的MOON节点表示成功

$ sudo zerotier-cli listpeers
200 listpeers
200 listpeers 8841408a2e 159.203.2.154/9993;7723;2322 244 1.1.5 PLANET
200 listpeers 9d219039f3 154.66.197.33/9993;1527750499073;2055 479 1.1.5 PLANET
200 listpeers deadbeef 00 10.0.0.2/33389;2552;7773 189 1.2.10 MOON
200 listpeers e4da7455b2 - -1 1.2.5 LEAF

MAC 安装 Xcode CommandLineTools 命令行工具包

博主看到xcode太占位置,就卸载了,结果发现git报错了,发现需要安装xcode支持。

-> git
 xcrun: error: active developer path
 ("/Applications/Xcode.app/Contents/Developer")
 does not exist, use `xcode-select --switch path/to/Xcode.app`
 to specify the Xcode that you wish to use for command line
 developer tools (or see `man xcode-select`)

解决办法

# 单独安装CommandLineTools,不需要Xcode
xcode-select --install
# 指定CommandLineTools路径
sudo xcode-select --switch /Library/Developer/CommandLineTools

MAC 常用命令以及简单使用方式

figlet 图形字符生成

$ figlet 'string'

tree 以树状图列出目录的内容

# 只显示目录
$ tree -d
# 只显示第一层目录
$ tree -L 1

wget 下载文件

nvm 管理多个Node.js版本

# 显示已安装版本
$ nvm ls
# 安装对应版本的node
$ nvm install v0.0.0
# 应用版本到命令
nvm use v0.0.0

ssh-copy-id 将公钥添加到远程机器的authorized_keys文件

# 添加远程主机key到本机
$ ssh-copy-id user@123.123.123.123