公司开发需求,服务器是部署在本地局域网的,公司网络是电信动态拨号宽带,因此就有个问题,IP会经常变动,公司的域名在阿里云上面,如果IP变动,因此需要经常登录到云解析上面去更改解析IP,这样很浪费时间。其实,阿里云提供了一套ddns云解析方案,根据阿里云提供的sdk就可以完成检测本地ip变化时,就自动更变解析IP。公司目前使用php作为开发环境,因为选择了php版本的云解析sdk。

准备:
1、docker
2、docker-php镜像
3、云解析程序代码 下载地址

第一步 安装docker

安装docker可以使用快捷方式安装,使用阿里云一键安装命令安装
其实也不用安装docker,只需要本地linux系统安装了php软件即可,yum -y install php也行,但是为了保持环境的纯净性,我本人喜欢使用docker安装软件。

ununtu安装命令

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

centos7安装命令

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

第二步 拉取php镜像

直接一条命令搞定

docker pull php:5.6-alpine 

这次我选了alpine版本的php5.6,alpine是linux的一个衍生分支,比较精简,推荐使用。

第三步 修改云解析代码配置文件

下载代码,修改如下两个文件:
1、修改/Aliyun/AliyunClient.class.php$accessKeyId$accessKeySecret参数
这个是阿里云的id和key,这个id和key可以拥有阿里云帐号的所有操作权限。

如图:

pic

accessKeyId和accessKeySecret可以登录阿里云网站,在右上角个人ID出下拉菜单AccessKeys处可以获取

2、修改/config.phpdnsConfigsrdsConfigs

如图:

pic

解析记录ID,可以进入域名解析页面,按F12进入调试页面,获取记录的recordid的,如果没有解析a记录,可以新建一条。

rds记录值为rds数据的前缀。

修改完完之后保存即可。

第四步 运行测试

把代码上传至服务器中,保存在/data目录下,
运行docker创建容器代码

dns解析更新

docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -dns

rds数据库白名单

docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -rds

运行后会出现记录更新成功的提示,表示更新成功。

第五步 写入定时计划

crontab -e
# 每五分钟更新阿里云解析和数据库白名单
*/5 * * * * docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -dns
*/5 * * * * docker run --rm  -v /data/aliyun-ddns:/var/www/html -w /var/www/html php:5.6-alpine php index -rds

至此,所有操作结束!

ps:代码原作者 http://flc.ren

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐