Skip to content

直接拉取源码部署

luolongfei edited this page May 15, 2022 · 1 revision

所有操作均在Centos7系统下进行,其它Linux发行版大同小异

1、获取源码

创建文件夹

mkdir -p /data/wwwroot/freenom && cd /data/wwwroot/freenom

clone 本仓库源码

git clone https://github.com/luolongfei/freenom.git ./

2、修改配置

复制配置文件模板

cp .env.example .env

编辑配置文件

vim .env
# 注意事项
# .env 文件里每个项目都有详细的说明,这里不再赘述,简言之,你需要把里面所有项都改成你自己的。需要注意的是多账户配置的格式:
# e.g. MULTIPLE_ACCOUNTS='<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>'
# (注意不要省略“<>”符号,否则无法正确匹配)
# 当然,若你只有单个账户,只配置 FREENOM_USERNAME 和 FREENOM_PASSWORD 就够了,单账户和多账户的配置会被合并在一起读取并去重。

# 编辑完成后,按“Esc”回到命令模式,输入“:wq”回车即保存并退出,不会用 vim 编辑器的可以谷歌一下:)

3、添加计划任务

3.1 安装 crontabs 以及 cronie
yum -y install cronie crontabs

验证 crond 是否安装及启动

yum list cronie && systemctl status crond

验证crontab是否安装

yum list crontabs $$ which crontab && crontab -l
3.2 打开任务表单,并编辑
crontab -e
# 任务内容如下
# 此任务的含义是在每天早上 9点 执行 /data/wwwroot/freenom/ 路径下的 run 文件,最佳实践是将这个时间修改为一个非整点的时间,防止与很多人在同一时间进行续期操作导致 freenom 无法稳定提供服务
# 注意:某些情况下,crontab 可能找不到你的 php 路径,下面的命令执行后会在 freenom_crontab.log 文件输出错误信息,你应该指定 php 路径:把下面的 php 替换为 /usr/local/php/bin/php (根据实际情况,执行 whereis php 即可看到 php 执行文件的真实路径)
00 09 * * * cd /data/wwwroot/freenom/ && php run > freenom_crontab.log 2>&1
3.3 重启crond守护进程(每次编辑任务表单后都需此步,以使任务生效)
systemctl restart crond

若要检查计划任务是否正常,你可以将上面的任务执行时间设置在几分钟后,然后等到任务执行完成, 检查/data/wwwroot/freenom/目录下的freenom_crontab.log 文件内容,是否有报错信息。常见的错误信息如下:

  • /bin/sh: php: command not found
  • /bin/sh: /usr/local/php: Is a directory

(点击即可展开或收起)

解决方案

执行

whereis php
# 上面的命令可确定 php 执行文件的位置,一般输出为“php: /usr/local/php /usr/local/php/bin/php”,选长的那个即:/usr/local/php/bin/php

现在我们知道 php 执行文件的路径是/usr/local/php/bin/php(根据你自己系统的实际情况,可能不同),然后修改表单任务里的命令,把

00 09 * * * cd /data/wwwroot/freenom/ && php run > freenom_crontab.log 2>&1

改为

00 09 * * * cd /data/wwwroot/freenom/ && /usr/local/php/bin/php run > freenom_crontab.log 2>&1

更多参考:点这里

当然,如果你的计划任务能正确找到php路径,没有错误,那你什么也不用做。

至此,所有的配置都已经完成,下面我们验证一下整个流程是否走通。

3.4 验证

你可以先将.env中的NOTICE_FREQ的值改为1(即每次执行都推送通知),然后执行

cd /data/wwwroot/freenom/ && php run

不出意外的话,你将收到一封关于域名情况的邮件。

有关 直接拉取源码部署 的内容结束。