MENU

しらssl一次悲惨的升级

しらssl流量自从上线以来一直比自己预计的要多,个人也是对它很看重,在0.5.0之前,版本升级一直是个问题,为了解决次问题查阅一些资料,询问了一些dalao,找到了一套方案,然而升级过程很不顺利,产生了这次悲惨的过程.

配置项的储存问题

v0.4.7时,配置文件里有上游api|recaptcha信息|数据库|版本号|shell信息|各种路径|盐等一些乱七八糟的信息,算上框架的配置项之后是一个很大的配置文件,咨询dalao时发现dalao们大多数配置都是存在数据库内,配置文件基本上只有数据库连接信息,他们建议我使用环境变量存储这些配置,但是目前来看我的配置文件显然不适合存到环境变量内.

最后我选择将配置文件分割为3份[主配置文件|生产配置文件|开发配置文件],主配置文件内放版本号和常年不动的配置项,其余两个则存放测试和生产环境配置不同的配置项和相对变动较为频繁的配置项,环境变量只设定目前的环境是生产还是开发,然后根据此变量加载对应配置文件.

$_ENV获取不到值(悲惨的开始)

写完v0.5.0的代码之后高高兴兴的到服务器上,先给fpm加了环境变量,然后git clone然后打开页面嗝屁了,直接在线调试<? var_dump($_ENV);?>发现数组是空的,搜了一下发现php.ini加个参数即可,加完大概快10点了,看了下页面显示正常,去loc更新帖,然后直接去看番准备睡觉了,看的桃剑,这番我感觉除了奶子其它什么都没有,而且奶子也一般,那个'天女队'的发音总感觉是想刻意叫成'天乳队'的,看完一集发现loc有人反馈说自动刷新等了38次状态一直没变,然后直接在控制器里的构造函数加了终止,第二天到公司开始排查,一开始以为ssh链接不了的问题,写了个测试方法执行了几个命令均正常返回,然后直接copy生成的命令去人工执行发现cli脚本抛出异常,获取不到环境变量,最后改了下配置文件默认的加载方式,这个问题解决了.

获取不到linux的环境变量

昨日的部署很不顺利,git pull和push都出现了冲突的提示,甚至冲突的文件直接将冲突的标签保存到了文件本身,部署后各种语法错误,无奈服务端人工去除了错误文件里的冲突标签,考虑到只给php-fpm加环境变量的话cli没办法获取到,于是在开发环境将环境变量加到的linux的系统变量文件里,然后发现$_ENV没有获取到添加的系统变量,然后google和baidu各种搜索也没找到解决的方法,去问了几个dalao也都不知道怎么回事,又一次陷入僵局.

模拟ENV

已经过去了几个小时,事情仍然没有进展,突然想到了之前在github看别人的源码时看到过.env这种文件,发现laravel也有用到.env文件,于是找了下发现php自身不会加载这种文件也没有相关的函数,是人为加载的,不报希望的去tp手册搜了下.env发现了这一句"在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配置参数定义格式采用ini方式",于是在配置文件里用了\think\Env::get()来获取.env里的变量,根据此变量来加载对应文件,然后在.gitignore加入.env,版本号升级到了Beta0.5.1,到这里无缝升级基本上就算完成了.

Line的webhook无法添加(结尾)

弄完之后去line开发者控制台给机器人添加webhook,域名验证的时候提示验证失败,しらssl用的ssl并非自身签发的alphassl而是使用的comodo的ssl(从namecheap使用edu优惠获得的comodo的ssl,而且之前用的是namecheap的虚拟主机,用了自带的一键部署,重新签也很浪费,所以就继续使用了之前的ssl),于是去找了下line的证书白名单列表,发现comodo也确实在里面,但是不知为什么就是不能添加,又一次陷入了僵局,查阅了一些资料,在github找到了一个差不多的问题,但是我英语渣,没看懂,最后也不抱希望的去几个群里问了下,过了一会一个群友截图,图中是一个对しらssl的检测报告,报告中标记说证书链不全,于是想起配置证书的时候没有加ca的证书,于是便将ca的证书加到crt里,再次验证,发现证书检测通过了然后出现了500错误,于是找了几天前抓包抓到的line的服务器传递来的参数用postman模拟了下,发现可以正常返回,于是便从接收webhook的入口加入了file_put_contents(),发现在验证webhook时line的服务器会向webhook入口发送2个消息,其中第一个消息是一个普通的消息,而第二个消息是贴图消息,于是检查代码,和line服务器发来的参数,发现line的贴图消息和文本消息结构不同,而我写的入口只处理了文本消息,当收到贴图消息时,由于结构不同,没有文本消息的字段,便返回了500错误,然后修复了一下发布了Beta0.5.2版本,到服务器git pull了一次,在去line的开发者面板点击验证,发现验证通过,然后向line机器人发送消息,机器人也有正常返回,这时line机器人也修好了.

其它杂事

Beta0.5.0->Beta0.5.1升级时考虑到在0.5.0时修改和删除了一部分文件,git又不熟,于是先终止新申请,等1个小时让已经进行申请的用户申请完毕,然后删除了网站整个目录重新git clone生产环境的配置文件事先改好一起提交到git,这样克隆完直接就能用,克隆完成之后,打开网站,确定无错误,到这里升级就完成了.

总结

  1. 这次认识到了git分支重要性,以前有的没的都直接往master里塞,前些日子分出来了dev分支,但是感觉还是没有毛用,现在dev分支放开发代码,master只放生产环境的代码,每次开发完将dev分支的代码合并到master然后去生产环境git pull,直到完成了第一次无缝升级才发现,git分支真是个好东西.

  2. 我好菜啊#(装大款)

添加新评论

已有 45 条评论
  1. 森七
    字太多,不带图不想看,就看见了最下面的总结@(滑稽)
    1. shirakun
      #(抠鼻)配图这个问题是很纠结的问题,以前很喜欢看配图的说明,但是后来感觉带图的说明看起来麻烦.
  2. owen
    大佬威武@(哈哈)
  3. 小樱
    baka,你是不是认识我
    1. shirakun
      你是谁,你从哪来,能不能唱好@(滑稽)
  4. 狂放
    大佬的ssl我用着呢
  5. 金晶
    同样,字太多了,看总结了~大佬能给个 PY 码不
  6. mxue
    @(滑稽)妮可,妮可,
  7. 情醉中国风
    我看了5段文字#(皱眉)本来我都菜的不会打字了
  8. sos
    现在不翻墙打不开了,联通,提示连接被拒绝
  9. sos
    话说,现在还有播放器吗,很久以前会自动播放的,听起来美滋滋
    1. shirakun
      那个是文章里的音乐播放器,往后翻一下就能听到了
      1. sos
        找了半天还是没找到。。。
  10. WeiCN
    @(滑稽) 特来感谢大佬提供的野卡
  11. 空心
    请问现在还能申请SSL吗?这几天都是等到晚上十二点就开始申请,结果每次都是剩余0个名额,特来问下站长是咋回事。
    1. shirakun
      可以,另外,重置时间是东京时间,我机器的时区是UTC+9的
  12. Kagari
    好像申请证书遇到点问题。。域名邮箱始终收不到验证邮件和证书。
    1. shirakun
      2018-03-21 08:36 目前证书可以正常申请 测试使用的邮箱同样为域名邮箱,域名邮箱使用google企业套件
    2. purber
      遇到一样的问题,说订单请求已发送可以关闭页面,邮箱没看到验证邮件和证书。。@(黑线)
  13. 魔皇
    请问现在还能申请 SSL 吗?为什么我看到今日剩余有8个单申请不了?怎么回事?
    1. shirakun
      错误反馈附带截图或截图链接还有域名 以上信息发送到邮箱
  14. xinper
    刚刚使用py码申请的时候出现:订单状态错误,订单salt:94deb7f3e0d821cf81079f783764caf8、当前状态:无法登录。再次提交py码已经失效。 另外,貌似每日12个免费额度不更新了 -. -
    1. shirakun
      刚刚检查了每日额度的cron,日志反馈为正常更新 刚刚检查salt后补发新的py码到你的邮箱 免费额度疑似被恶意签发,正在调查.
  15. bug
    楼主你好,刚刚申请提示 "已完成签发请求,现在您可以关闭这个页面了" ,可是我却没有收到任何邮件,麻烦帮看看,谢谢!
    1. shirakun
      请提供salt或者域名等标识
  16. Mata
    大佬 获取验证邮箱列表 一直是空的啊 域名没有开隐私保护 域名是aaek.com
    1. shirakun
      请提供salt,域名,邮箱等信息以便查询申请记录
  17. kwamenf
    屏蔽了QQ邮箱么? 刚才签发失败了
    1. shirakun
      是的,因为大多数mx记录指向腾讯邮箱的域名无法收到签发邮件或验证邮件, 现在已经禁止任何使用QQ邮箱,QQ域名邮箱,QQ企业邮箱的域名
      1. kwamenf
        好的,谢谢
  18. bard
    https://ssl.ni-co.moe/ 博主这个站点不能申请ssl了吗?打开403了
    1. shirakun
      你正在使用alibabacloud访问,因为滥用增多,所以我把一些容易产生滥用的asn封禁了
  19. xxe
    博主你好,我就两个手机号都用完了,而且提示“此邮箱的mx记录被禁止,请更换验证邮箱或更换邮箱的mx记录!”,能在后台把我手机号删掉吗?我想换个企业邮箱重新申请。
    1. shirakun
      将你使用的域名或手机号通过邮件发给我
    2. shirakun
      请使用邮件联系
  20. 张尧博客
    大佬帮忙看一下,提示已完成签发请求, 现在您可以关闭这个页面了 。 也是没收到任何邮件 ,域名*.zhangyao.org@(哈哈)万分感谢
  21. Alone88
    申请时提示“此邮箱的 mx 记录被禁止, 请更换验证邮箱或更换邮箱的 mx 记录!”,然后我换成网易的,就没有收到邮箱了?
    1. shirakun
      请使用邮件联系
  22. 张尧博客
    大佬,换成了gmail邮箱,依然收不到邮件
  23. shilx
    _(:з」∠)_ 为什么信息输完验证手机以后,最后点击申请毫无反应
    1. shirakun
      将域名和手机号码发送到我的邮箱,之后使用邮件联系
  24. 龙笑天
    @(乖) SSL没了...
    1. shirakun
      我嫌烦,丢给别人了
      1. 龙笑天
        为啥这个几年前的回复邮件,我今天才收到...@(乖)
        1. shirakun
          可能是有bug,触发了以前的事件