»
S
I
D
E
B
A
R
«
动态域名方案之:phppod
May 27th, 2009 by 一米六二

phppod是我开发的一套unix/linux/mac下的动态域名方案。这是一个dnspod.com的API的客端.用户只需要配置/etc /podclientd.conf这个配置文件,即可随时更新dnspod上的ip信息.[这个项目一没有高性能,二也不功能强大...,就是方便实用吧.]
项目托管在http://code.google.com/p/phppod/.
这是一个花生壳的替代方案。花生壳的特点是各种客户端等都很齐全,不少路由器也内置了花生壳的方案。但缺点也很明显,不能使有花生壳来绑定顶级域名,个数也有限制。而dnspod.com的服务却可以让你添加n个顶级域名,每个顶级域名下可添加数个子域名。另外,dnspod.com的服务可以依据线路选择解析到不同的IP上。
DNSPOD已经管理着数十万个站点的dns,是一个可靠的目前[至少到目前为止].
使用方法:
1.先通过dnspod.com的网站注册,将您的域名的dns解析转移给dnspod.com;
2.在您的机器上安装phppod.
如果是ubuntu/debian系列,请从项目主页下载deb包:
dpkg -i phppod-*.deb
如果是其他linux/unix版本,请从项目主页下载src包,按照README的说明来安装。:
<pre>
$cd phppod-1.0.0
$cd pkg
$sudo  make install
</pre>
来安装.
3.配置:
请修改/etc/podclientd.conf文件.
4.运行:
/usr/bin/podclient -c /etc/podclientd.conf >/var/log/podclient.log &
php /usr/bin/podclient -c /etc/podclientd.conf
欢迎各位和我一样在家里搭服务器,IP天天变的同志们使用并反馈.

附记:如果无法运行,请将错误输出发给我。谢谢。我的 gtalk:xurenlu#gmail.com  [请将#换成@]


18 Responses  
  • 知知了了 CHINA Windows XP Internet Explorer 7.0 writes:
    May 31st, 2009 at 1:43 pm

    不错,等空间到期了,试试这个。

  • 路人 CHINA Windows XP Internet Explorer 6.0 writes:
    June 2nd, 2009 at 7:52 am

    你好! 牛人…..
    有时间分享下你学PHP的经历!!
    指点指点新手如何学PHP!!
    期待你的好文!…

  • thirteen CHINA Windows XP Internet Explorer 6.0 writes:
    June 3rd, 2009 at 3:31 pm

    车祸,花钱没帐了.然后发现小钱包网站我访问不了了.

  • lolomarx CHINA Windows XP Internet Explorer 6.0 writes:
    June 20th, 2009 at 5:59 pm

    我很想用,跑不起来哦,
    我下载了deb包后,dpkg -i phppod-*.deb,接着修改了/etc/podclientd.conf文件,改成我自己的域名,再运行你说的第四步,显示”/usr/bin/env: php: No such file or directory”,我想是因为我的php不是安装在这个目录引起的,能否改成自动检查php目录,或者通过配置文件配置呢? 谢谢。

  • admin Ubuntu Linux Mozilla Firefox 3.0.11 writes:
    June 21st, 2009 at 1:56 pm

    那你修改这一行吧。或者直接把这一行删除掉。

  • 80后创业 CHINA Windows Server 2003 Internet Explorer 6.0 writes:
    June 21st, 2009 at 5:09 pm

    如果再亲和点,我就改成这样了

  • lolomarx CHINA Windows XP Internet Explorer 6.0 writes:
    June 28th, 2009 at 9:46 am

    补充一下,还需要安装这个库才能用,sudo aptitude install php5-curl,另外 请教一下phppod占用了终端在显示,怎样切换一个新的终端来工作呢?谢谢

    • admin CHINA Windows XP Google Chrome 2.0.172.33 writes:
      June 28th, 2009 at 7:19 pm

      这个….
      如果是ubuntu下用的gnome-terminal,可以新建标签
      如果是win下,再打开一个就行了。
      或是Ctrl+Z也可以将当前工作挂起到后台运行的。

  • lolomarx CHINA Windows XP Internet Explorer 6.0 writes:
    July 5th, 2009 at 11:52 am

    我在修改配置文件配置邮件服务器域名时出错,我改了record type = 3 ,但是显示128行出错,foreach()参数非法,各条记录不能分开设置各自的参数吗?

  • lolomarx CHINA Windows XP Internet Explorer 6.0 writes:
    July 5th, 2009 at 12:01 pm

    提示 出错 信息 代码为“9” ,是不是mx的记录值应该是”mail.xxxx.com.” ,设置文件不支持这样子写,看api里面是要有一个“.”的。谢谢

    • admin Ubuntu Linux Mozilla 1.9.1.1pre writes:
      July 5th, 2009 at 12:46 pm

      啊,我写的时候完全没有考虑mx的记录。sorry。
      另外,用ADSL搞mx还是很危险的啊,比如一封发到webmaster@yoursite.com的信却发到了webmaster@***.com,又刚巧是比较重要的信息….

  • lolomarx CHINA Windows XP Internet Explorer 6.0 writes:
    July 18th, 2009 at 4:59 am

    我的邮件服务器只负责向外面发邮件,不负责收邮件的,不怕的,呵呵,对了,你的版本升级到1.0.2,没有看到changelog;-) ,

  • xiaoxie CHINA Windows XP Internet Explorer 6.0 writes:
    August 13th, 2009 at 1:48 am

    出现错误提示:Fatal error: Call to undefined function pcntl_signal() in /usr/bin/podclient on line 69
    应该怎么配置?

  • admin AUSTRALIA PHP writes:
    August 13th, 2009 at 1:59 am

    @xiaoxie:
    如果是1.0.2版:
    你把podclient.php中69到72行
    pcntl_signal相关的代码注释掉。

  • xiaoxie CHINA Windows XP Internet Explorer 6.0 writes:
    August 13th, 2009 at 9:10 am

    还是搞不定:pid file [/tmp/pid.podclient] not found.

    Fatal error: Call to undefined function posix_getpid() in /usr/bin/podclient on line 122
    是不是,php4和php5有很多函数都不通用,我用的是php5

  • admin AUSTRALIA PHP writes:
    August 13th, 2009 at 9:21 am

    那你把这一段都删除掉:
    /**
    * 如果老的进程存在,先杀掉.
    * */
    if(file_exists($options["pid"])){
    $old_pid=intval(trim(file_get_contents($options["pid"])));
    if($old_pid>0){
    if(!posix_kill($old_pid,SIGTERM)){
    my_error_log(”kill pid error:”.$old_pid);
    }
    }
    else
    {
    my_error_log(”old_pid reading error”,”INFO”);
    }
    }
    else{
    my_error_log(”pid file [".$options["pid"].”] not found.”,”INFO”);
    }
    $pid=posix_getpid();
    if(!file_put_contents($options["pid"],$pid)){
    my_error_log(”pid file [".$options["pid"].”] write failed.”,”INFO”);
    }

  • xiaoxie CHINA Windows XP Internet Explorer 6.0 writes:
    August 18th, 2009 at 12:14 am

    终于能用了,但是还是有问题。好像进程并非一直在运行,只好把它挂到ppp.linkup里面了。
    Warning: posix_kill() expects parameter 2 to be long, string given in /usr/bin/podclient on line 112
    kill pid error:44226
    update information successful
    update information successful

    • admin AUSTRALIA Linux Google Chrome 4.0.202.0 writes:
      August 18th, 2009 at 1:27 am

      不需要一直运行。我后来的做法是,加个crontab。


Leave a Reply

»  Substance: WordPress   »  Style: Ahren Ahimsa
30277 页面访问次数, 643 今天
11656 访问数, 258 今天
FireStats icon 由FireStats提供支持