参考文章:

http://www.myxzy.com/post-464.html

https://www.cnblogs.com/crazytata/p/9686490.html

php的源码下载:

https://github.com/myxzy/dnspod-api-php/

一.安装nginx

1.安装yum源

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2.安装nginx

yum install -y nginx

3.启动nginx并设置开机自动运行

  1.  systemctl start nginx #启动,restart-重启,stop-停止
  2.  systemctl enable nginx #开机启动

4.查看版本及运行状态

  1.  nginx -v #查看版本
     
  2.  ps -ef | grep nginx #查看运行状态
     

二.安装php7

1.安装yum源

  1.  rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
     
  2.  rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
     

2.查看php7 yum组件,示例安装php7.0

  1.  yum search php70w 
     

3.选择自己需要的组件安装,php70w.x86_64 和 php70w-fpm.x86_64 为核心程序必装

yum install php70w.x86_64 php70w-fpm.x86_64

4.启动php并设为开机启动

  1.  systemctl start php-fpm #启动,restart-重启,stop-停止
     
  2.  systemctl enable php-fpm #开机启动
     

5.查看版本及运行状态

  1.  php-fpm -v #查看版本
     
  2.  ps -ef | grep php-fpm #查看运行状态

进行完以上步骤之后,读者自行在nginx中配置web目录,已经可以正常运行了,但是此时nginx和php是以root身份运行,以最高权限运行web文件会给系统带来安全隐患,以下为权限配置示例


三.修改nginx配置

  vi /etc/nginx/conf.d/default.conf

  1. 找到第一个location中的这一行

    index  index.html index.htm;

    修改为:

    index  index.php index.html index.htm; #添加index.php,index.php必须为第一个

2.

    把FastCGI server这行下面的location的注释去掉,并修改成下面这样子

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php$ {

         root            /usr/share/nginx/html;  #网站根目录

    fastcgi_pass   127.0.0.1:9000;

     fastcgi_index  index.php;

         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

     include        fastcgi_params;

     }

service nginx restart   #重启nginx

service php-fpm start   #开启php-fpm

  3.

在网站根目录新建index.php文件

vim /usr/share/nginx/html/index.php

  4.

输入内容:

<?php

phpinfo();

?>

  5.

在浏览器中输入虚拟机ip,已经可以看到phpinfo的信息了 
在windows上修改hosts文件,添加一行

192.168.6.114   www.test1.com   #配置虚拟机ip对应域名

  6.

现在就可以在windows上用www.test1.com访问虚拟机配置的服务器了

----------------------------------------------------------------------------------------------------------------------------

接下来,现在dnspod.php到/usr/share/nginx/html/,同时mv dnspod.php index.php

http://www.myxzy.com/post-464.html

一、创建Token添加域名

首先域名要在DNSPOD解析,然后在DNSPOD后台开启的API Token。

详细开通API Token教程:https://support.dnspod.cn/Kb/showarticle/tsid/227/

二、PHP制作DNSPOD API动态解析接口

以下是我制作好的php解析接口

接口地址:

HTTP请求方式:

  • POST/GET

请求参数:

  • token    (必选)  DNSPod Token,格式 "ID,Token",如“12345,3a13a4331549*******127c185368303”
  • domain (必选)  域名(如:myxzy.com)
  • record  (必选)  记录名(如:www)
  • ip         (可选,默认值为请求来源IPv4)  DDNS的IP地址(或者CNAME、MX记录值)
  • line      (可选,默认值为默认)  线路设置,详细参数请看注1
  • type     (可选,默认值为A记录)  支持AAAA、CNAME、MX记录
  • format    (可选,默认值为xml)  xml和json,返回的数据格式

注1:

line参数说明:如&line=cmcc,那么线路就是移动线路,请按照下面的对照表来。

default  =>  默认
ctc  =>  电信
cucc  =>  联通
cernet  =>  教育网
cmcc  =>  移动
ctt  =>  铁通
home  =>  国内
abord  =>  国外
search  =>  搜索引擎
baidu  =>  百度
google  =>  谷歌
youdao  =>  有道
bing  =>  必应
soso  =>  搜搜
sogou  =>  搜狗
qihu  =>  奇虎

示例:

curl -X POST http://u.myxzy.com/dnspod -d 'token=id,token&domain=myxzy.com&record=www&ip=1.1.1.1&line=ctc&record_type=A&format=json'
这里注意下,你提交的二级域名,必须已经在dnspod创建过了!!!比如这里的www,已经在dnspod上有A记录了!

返回参考:

{
"code": "1",
"message": "Record created success, ip updated",
"time": "2019-03-08 09:28:34",
"info": "dnspod-api-php V1.4 By Star.Yu"
}

字段说明:

code:状态id编号,1是成功,0是失败,其他的数字请参考DNSPOD的API ID对应的报错

message:本php接口输出的信息

time:访问时间

info:本php接口的版本信息等

安全说明:

1、本接口未记录所有的解析token和解析记录,但是服务器的访问日志会有链接记录(按照政策要求需保存6个月的日志)。虽然有日志但是本接口不提供任何查询。

2、建议使用独立的DNSPOD账号来使用本接口,重要的域名请自建PHP服务器用来解析。由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议如果使用了本接口请勤换token

PS:因为有了token可以管理账号下的所有域名。

dnspod-api-php Github地址:https://github.com/myxzy/dnspod-api-php/

ROS脚本:

#DDNS Token
:local token "id,token" #DDNS域名
:local record "www"
:local domain "myxzy.com" :global ipold;
:local ipnew [/ip address get [/ip address find interface=ADSL-PPPoE] address]
:set ipnew [:pick $ipnew 0 ([len $ipnew] -3)] :if ($ipnew != $ipold) do={
/tool fetch url=("http://u.myxzy.com/dnspod\?token=$token&ip=$ipnew&domain=$domain&record=$record") mode=http keep-result=no
:set ipold $ipnew
log info "DDNS: Sending UPDATE!"
}

以上脚本需要修改ADSL-PPPoE(宽带拨号的名称),token,record和domain

注:ROS可以设置定时1分钟执行一次脚本,脚本中带有ip是否相同判断,相同就不执行;然后是我做的API接口后台中也有ip是否相同的判断,所以不会引起DNSPOD锁域名的情况。

更新说明:

by 2019-4-7

1.7版本

1、支持cname和mx记录添加和修改

2、A和AAAA记录会判断IP值是否正确

by 2019-4-3

1.6版本

1、优化部分Bug

2、不添加参数自动跳转到demo页面

by 2019-3-18

1.5版本

1、支持POST和GET提交

by 2019-3-8

1.4版本

1、重写返回数据格式,因为我要对接项目,所以返回格式可以是xml或json

2、重写更新ipv4和修改ipv6

3、ip地址可以根据来源自动更新。

4、自动添加解析记录,不存在就自动添加解析记录

by 2018-12-19

1.3版本

1、去除服务器获取域名DNS解析地址去判断是否相同(不影响和DNSPOD后台记录是否相同的判断)

2、因为突然发现可以通过访问日志查看解析的API ID和Token,有不安全的可能的,所以提供代码,建议自建PHP服务器保证域名解析安全

3、如果不怕安全问题,这边还会继续提供解析服务,不过会修改本API的服务器地址,老版本接口保证持续1个月

by 2018-10-18

1.1版本

1、增加ipv6支持,在连接后面加上&type=AAAA为IPv6(不加默认是A解析)

2、把更新DNS记录接口修改为修改DNS接口(更新DNS接口不支持IPv6)

3、IPv6不增加从服务器获取IPv6进行判断

1.0版本

1、增加按照线路更新ip地址

2、对服务器获取域名IP判断DNS记录添加开关 &chk=1

3、优化本接口报错信息提示

0.1beta版本

1、基本实现DNS域名动态解析

2、可以判断IP是否相同,防止DNSPOD相同修改记录超过5次被锁域名1小时

你可以把源码里,让接口的首页访问的直接显示当前客户端IP,

if(is_array($request)&&count($request)<1){
Header("Location: http://u.myxzy.com/dnspod/demo.php");
exit;
}

源码见:https://www.cnblogs.com/itfat/p/10928517.htm


l

ddns+ros(routeros)+centos7.6+nginx+php+dnspod的更多相关文章

  1. 部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot)

    部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot) 1.基础环境********************************************** ...

  2. CentOS7部署Nginx

    CentOS7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过yu ...

  3. linux(centos7) 安装nginx

    linux(centos7) 安装nginx 1.14(stable) 版本 Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内, ...

  4. 【Nginx安装】CentOS7安装Nginx及配置

    [Nginx安装]CentOS7安装Nginx及配置 2018年03月05日 11:07:21 阅读数:7073 Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttp ...

  5. Centos7卸载nginx及php、php-fpm方法

    Centos7卸载nginx及php.php-fpm方法 2016年12月01日 18:17:22 阅读数:20824 本文环境:Centos7.yum方式安装的nginx和php.php-fpm 之 ...

  6. VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法

    VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法 在linux上安装nginx 请参考:Linux Centos7 安装 nginx 在虚拟机centos7上安装nginx之 ...

  7. centos7.5+nginx+php急速配置

    centos7.5+nginx+php急速配置 centosnginxphp 更新系统以及添加源 yum update yum -y install epel-release 安装php以及配置 yu ...

  8. Linux(CentOS7)下Nginx安装

    记录一下 Linux(CentOS7) 下 Nginx 安装过程 一.准备工作 版本说明: Linux版本:CentOS 7 64位 Nginx版本:nginx-1.20.0 1. 下载安装文件 采用 ...

  9. CentOS7 安装Nginx

    由于需要,这段时间学一点“nginx”.关于nginx就不介绍了,http://wiki.nginx.org/Main有非常详细的介绍.安装等. 安装软件我习惯到官网下载源码,http://nginx ...

随机推荐

  1. Android Studio Analyze APK 一直显示 Parsing Manifest探因及解决

    一.背景 大家都知道,Android Studio开发工具自带了Analyze Apk,可以很方便的分析Apk文件.具体位于菜单build >> Analyze APK...路径下,点击后 ...

  2. 读取数据,并以txt格式保存

    /// <summary> /// 读取数据,并以txt格式保存 /// </summary> /// <param name="data">数 ...

  3. SQL 增、删、改、查语句

    1.SQL SELECT 语句 SELECT语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). SQL SELECT语法 SELECT 列名称 FROM 表名称 以及 SELECT * ...

  4. 操作系统与进程.md

    目录 1. 操作系统 1.1 作用 1.2 操作系统的发展 2. 进程的理论 2.1 相关名词 2.2 进程的创建 2.3 进程的状态: 1. 操作系统 ​ 管理.控制.协调计算机硬件与软件资源的计算 ...

  5. 关于Git的用法

    关于Git Git 是一个分布式版本控制软件,与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其 ...

  6. android studio学习----添加项目依赖包总结

    Gradle Library Projects Gradle 项目可以依赖于其它组件.这些组件可以是外部二进制包,或者是其它的 Gradle 项目. 在本例中, app/build.gradle 中有 ...

  7. python中的 dict() 函数

    Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. dict() 函数函数语法: dict(key/value) 参数说明: key/v ...

  8. Redis_数据类型

    Redis支持的键值数据类型如下: 字符串类型 散列类型 列表类型 集合类型 有序集合类型  一.字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.一个字 ...

  9. 国内不fq安装K8S三: 使用helm安装kubernet-dashboard

    目录 3 使用helm安装kubernet-dashboard 3.1 Helm的安装 3.2 使用Helm部署Nginx Ingress 3.3 使用Helm部署dashboard 3.4 使用He ...

  10. 海思3519 qt ffmpeg 软解码播放avi

    在海思3519上基于qt采用ffmpeg对avi进行解码显示,其中ffmpeg的配置,qt的配置在前文中已经说明,在此不再赘述. 解码 解码在单独的线程中进行,具体的代码如下: void VideoP ...