今天在用“v-2-r-a-y”.sh一键脚本(
- bash <(curl -sL https://s.hijk.art/“v-2-r-a-y”.sh)
复制代码
)的时候一直提示我没有解析域名到VPS!我本地ping和在VPS上ping域名都是正常的!于是我查看了一键脚本的代码发现有一句:
- if [[ -f ~/“v-2-r-a-y”.pem && -f ~/“v-2-r-a-y”.key ]]; then
- colorEcho ${BLUE} " 检测到自有证书,将使用其部署"
- CERT_FILE="/etc/“v-2-r-a-y”/${DOMAIN}.pem"
- KEY_FILE="/etc/“v-2-r-a-y”/${DOMAIN}.key"
- else
- resolve=`curl -sL https://hijk.art/hostip.php?d=${DOMAIN}`
- res=`echo -n ${resolve} | grep ${IP}`
- if [[ -z "${res}" ]]; then
- colorEcho ${BLUE} "${DOMAIN} 解析结果:${resolve}"
- colorEcho ${RED} " 域名未解析到当前服务器IP(${IP})!"
- exit 1
- fi
复制代码
然后我上https://hijk.art发现站长说要关站了!估计这个hostip.php也要停止服务了!但是我觉得这个脚本还是挺好用的!那……我们来修复一下!我本身是一个小白!我们先来谷歌一下这段代码的用途!首先是
- resolve=`curl -sL https://hijk.art/hostip.php?d=${DOMAIN}`
复制代码
也就是将我们输入的网址传送给hostip.php这个PHP文件,文件解析域名后反馈一个IP回来(没有解析成功我也不知道反馈啥)赋值给resolve,然后
- res=`echo -n ${resolve} | grep ${IP}`
- if [[ -z "${res}" ]]; then
复制代码
这个语句,我查了一下shell的说明-z是检查长度是否为零!这句没看懂!希望有大哥解答一下!还有
- `echo -n ${resolve} | grep ${IP}
复制代码
这句中的|又是啥用途的?反正意思大概明白了就是要hostip.php反馈我们输入域名的IP!个人觉得这个第三方检查……本机ping域名不就可以了么?于是我又谷歌了一段代码
- `ping ${DOMAIN} -c 1 | sed ‘1{s/[^(]*(//;s/).*//;q}’`
复制代码
我们把这段替换进去
- resolve=`ping ${DOMAIN} -c 1 | sed ‘1{s/[^(]*(//;s/).*//;q}’`
- res=`echo -n ${resolve} | grep ${IP}`
- if [[ -z "${res}" ]]; then
- colorEcho ${BLUE} "${DOMAIN} 解析结果:${resolve}"
- colorEcho ${RED} " 域名未解析到当前服务器IP(${IP})!"
- exit 1
复制代码
这样的话就不依赖外部PHP文件解析了! 然后继续放进VPS里跑!然后提示“acme.sh is using ZeroSSL as default CA now”云云~这里没截图!继续谷歌,解决办法就是在申请证书之前再加一条命令acme.sh –register-account -m 邮箱地址 于是我又改了一下代码
- ~/.acme.sh/acme.sh –upgrade –auto-upgrade
- if [[ "$BT" = "false" ]]; then
- ~/.acme.sh/acme.sh –register-account -m [email protected]$DOMAIN
- ~/.acme.sh/acme.sh –issue -d $DOMAIN –keylength ec-256 –pre-hook "systemctl stop nginx" –post-hook "systemctl restart nginx" –standalone
- else
- ~/.acme.sh/acme.sh –register-account -m [email protected]$DOMAIN
- ~/.acme.sh/acme.sh –issue -d $DOMAIN –keylength ec-256 –pre-hook "nginx -s stop || { echo -n ”; }" –post-hook "nginx -c /www/server/nginx/conf/nginx.conf || { echo -n ”; }" –standalone
- fi
复制代码
至此脚本就可以顺利运行安装了! 希望有大哥解答一下上面小弟的疑问和检错!谢谢! |