似乎每次换服务器都会遇到两个小问题
小博客一直用着腾讯云的服务器，上一次托朋友Bug侠帮我搭了个486元3年的车，最近快到期了，于是自己另外找了渠道新开了服务器。这也是有博客以来的惯例，由于老机没有优惠了，新机总是更便宜，所以每隔一年或几年就需要搬家一次，换到新的服务器上。更换面板这次与以往不同的是，我之前服务器使用的前几年流行的宝塔面板，后来因为他的新版没有开源且开始要求手机号实名制了，所以这次换到了1Panel。虽然还是一个国产面板，但起码新版本的开源做得比宝塔要更好。如开头所说，博客换服务器已经很多次了，今天也是正常操作，宝塔那边打开phpmyAdmin把数据库完整导出，网站目录文件打包下载。然后在1Panel这边安装了OpenResty + PHP + MySQL，建立了数据库，直接把数据库导入，再新建一个网站，把文件上传到对应目录就完事儿了，一般情况下可能由于数据库密码变更之类的需要修改一下配置文件，但我为了省事儿，用到的密码都是和之前保持一致的。按理说这就应该很简单了，结果很不幸，居然遇到了问题。面板的瑕疵？首先是配置SSL，申请了证书之后，保存配置遇到报错，根据错误提示看，似乎是说log文件的路径不对。查看 OpenResty 的配置文件发现两个log文件的路径与1Panel实际建立的站点路径不一致，它建立的PHP网站路径是在配置文件路径下再一个 /index 文件夹中。尝试修改OpenResty发现继续报错，这次报错又有了一个新的配置文件路径，但实际上/usr/local/openresty/nginx/conf/conf.d/xxx.conf这个文件路径是不存在的。好吧，我的理解是，其实就是因为它不存在，所以它会报错。那么针对不存在的文件的报错，我们应该去建立对应路径下的文件？其实不是，这个配置文件其实存在只是路径不在这里，而是在/opt/1panel/apps/openresty/openresty/conf/conf.d/xxx.conf我们只需要打开这个文件，对前面报错的log文件路径进行修改，按实际网站的目录路径去改，就发现给我网站设置SSL不再报错了。对于这个配置文件路径的问题，我感觉是1Panel的瑕疵，它定义了PHP环境网站的运行目录，但没有把Openresty对应的配置文件给配置好造成的。更新网站配置解决了这个问题，设置了伪静态规则等内容后，我发现网站还是不能访问，根据主观臆断，网站配置均已与此前服务器同步了，目前Web访问时提示的找不到目录，大概率是网站与数据库没连上，意识到1Panel与宝塔的很大不同是它基于Docker在玩。于是打开Typecho的配置文件，看到数据库那里写的localhost，在其他环境下，这没啥问题。在1Panel中就需要根据数据库的连接信息进行修改，填入后果然博客恢复了正常。为什么要水一篇博客？虽然小博客更新缓慢，内容也很陈旧。但对我个人来说，这里记录了自己17年前写下的东西，要知道哪怕是现实里，我们能保存17年的东西都不算多，于是这个小博客已然算得上是一个珍贵的物件了。所以，每次换博客程序，每次搬家换服务器，都不希望它遇到任何的问题。既然这次遇到了，那为了下次的顺利，我便把它记录下来，让这次的问题成为下次可以参考的经验。
这个月我很忙，有一堆事要做，本来就没空折腾博客的，但是偏偏就是有意外。最开始是13号的样子，接到CloudXNS的邮件报警说宕机了，然后接到之前的主机商恒创主机发来的邮件说我账户问题或者被攻击了超了流量，所以给我封停了。后来我去恒创后台看到有工单，并没给出任何PHP进程信息或者相关日志，我也没办法确定具体原因，回复工单后，客服解封。我本以为此事就此完结了，结果昨天5月16日，我又收到一模一样的提醒，输入网址查看博客，直接就打不开了，联系去年国庆节期间有长达1个月恒创被攻击导致博客无法正常使用，我这次狠下心把博客从这个空间商搬走了，之前在虚拟空间待了四五年，现在直接上VPS，也算是破屋换豪宅啦！[...]
安装宝塔面板3.0.2遇到nginx和php无法启动的问题
前不久剁手独服，又玩了PT，当时看到HDHome开放注册就注册了挂着，结果2天就把所有考核指标达到了。这两天刚想看看独服拿来干嘛，今天又有朋友给我发消息说有不错的VPS，我之前看到自己忍住了，今天看到朋友买，没忍住跟着一起剁手了。拿过来想起宝塔面板3月快出3.X系列的正式版了，那么现在的版本应该也挺稳定的，于是就试着装这个，结果真的很坑爹，一上来就是用面板改了端口就访问不到面板了，因为iptables阻拦，因为它没有在修改的同时设置iptables，我当时是先用终端：service iptables stop关掉防火墙一试就可以了，确定问题在此，那么此时我们需要手动给它添加个规则：iptables -A INPUT -p tcp --dport 8888 -j ACCEPT //注意这里面的8888要改成你自己修改的端口然后再保存，并启动防火墙，应该也没事了：service iptables saveservice iptables restart前面这个已经够坑爹了，但是和后面我遇到的问题比起来，这其实根本不算什么！后面遇到的问题不多，就是nginx和php都起不来，下面说一下具体的问题和我的折腾过程。问题表现：我们在面板首页可以看到，nginx和php都没有启动，点击旁边的按钮会提示你启动成功，但是你刷新看状态未变，在面板的进程管理里也找不到相关进程。而此时我正好在终端查询nginx的版本：然后，遇到错误提示“/usr/bin/nginx: /lib64/libc.so.6: version 'GLIBC_2.14' not found”，根据这个提示判断，应该是glibc的版本问题，我们可以通过命令：strings /lib64/libc.so.6 |grep GLIBC_来查询glibc的版本，一查果然glibc的版本是2.12，需要升级，编译升级这个其实不难，挨个输入命令：wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz //下载glibc-2.14tar -xzvf glibc-2.14.tar.gz //解压mkdir build // 在glibc-2.14目录下建立build文件夹cd build // 进入build目录../configure --prefix=/opt/glibc-2.14 // 配置glibc并设置当前glibc-2.14安装目录make && make install // 编译安装glibc-2.14库（这一步需要一些时间）rm -rf /lib64/libc.so.6 // 先删除先前的libc.so.6软链$ LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6 //解决删除libc.so.6之后导致系统命令不可用ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6 //建立软链接如果上面升级遇到问题，可以用下面的命令来还原：LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so这边我当时参考了两个教程，基本上说到了前后所需注意事项，按照教程操作即可：http://www.laozuo.org/9687.htmlhttp://www.jb51.net/os/RedHat/538539.html升级完成之后，再去面板启动nginx就一切顺利了。不过php依旧点击启动后没反应，去宝塔论坛看到有用户几天前也发帖子在咨询这个问题，但是官方人员只是让用户提供更多信息，没给出直接的解决办法，根据前面一个问题的经验，我们试着去终端启动看报错吧！这里也有很明确的错误提示：“Starting php-fpm /www/server/php/55/sbin/php-fpm: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory”通过网上搜索，我们知道这是表示系统不知道libpng15.so在哪个目录下，总之找不到这货就对了。之所以找不到，一个是因为系统里木有或者版本不对啥的，那么我们只能另外去下载然后放进去。还有一个原因是在默认路径下，找不到该文件，而通常很多so的文件都在/usr/local/lib目录下，所以此时只要在/etc/ld.so.conf里面加上这个路径就行了。cat /etc/ld.so.confecho "/usr/local/lib" >> /etc/ld.so.confldconfig通过以上命令，写入路径后，我们可以再试试启动php，但是此时问题并没有解决，然后我开始怀疑，是我系统中没有，于是自己打命令下载编译：wget https://excellmedia.dl.sourceforge.net/project/libpng/libpng15/1.5.28/libpng-1.5.28.tar.gztar -zxvf libpng-1.5.28.tar.gzcd libpng-1.5.28./configure --prefix=/usr/local/pngmake && make install按照上面的操作之后，我们再执行前一步的操作，添加我们前面配置的另外一个路径：cat /etc/ld.so.confecho "/usr/local/png/lib" >> /etc/ld.so.confldconfig执行完毕，再来启动php，我们可以发现它的错误提示变了，此时是另外一个库了此时，我心中一万匹草泥马呼啸而过，我十分怀疑宝塔这个面板在纯净版的centos中基本没办法正常搭建起环境，因为它都是直接装编译好的，也没有环境配置方面的工作，相比以前是极速了，但是用起来蛋疼了不少。后面我也不写了，目测应该是有一堆库都找不到，需要手动下载编译安装，虽然最后能解决，不过这肯定不是最好的办法。================前面是宝塔3.X垃圾版，下面是安利AD================最后的最后，得安利一下今天入的这个香港的小鸡，来自HostShare，价格低廉配置却不低，唯一的缺点是带宽小，不过用来折腾着玩，比外面那些每月5刀的妖艳贱货还是只强不弱的。另外，HostShare是loc那边传说中的组长旗下，已有多年的信用，可靠性也很棒！双核2G内存, 20G SSD硬盘, 1M出口峰值,10M入口, 独立IP一个，仅需28元/月小鸡位于香港九龍新蒲崗CLOUDIE机房. 电信直连以及多线路BGP接入, 测试ip: 45.125.12.1 /45.125.13.1购买链接：http://t.cn/zOvIkvb需要先注册然后登陆了才能看到可以购买的套餐和价格，购买前需先充值，充值支持支付宝。