真的破防了兄弟们,大半夜搞新站,域名解析过去等了两小时,兴致勃勃地输入网址回车,结果给我弹个“无法访问此网站”,我特么当时血压就上来了,盯着那个浏览器错误页看了足足五分钟,脑子里全是我这几个月写的代码和找的所谓“高权重老域名”是不是全打水漂了。
我服了。先别急着骂服务器商,第一个坑往往是最蠢的:你域名解析的IP地址,跟你服务器(比如宝塔)里建站点时绑定的那个IP,它俩是不是一家人? 别笑,我真干过把腾讯云解析的IP填到阿里云服务器配置里的傻事,域名和服务器在那演“牛郎织女”呢。
然后就是端口,你项目要是http,80端口开了没?防火墙放行了没?要是用了https(现在没SSL证书谷歌百度都懒得看你一眼),443端口呢?就这些破事能卡住80%的人,我当初就是忘了在安全组里放行443,结果SSL证书那个小绿锁死活亮不起来,我还以为是证书问题折腾了一下午。
然后,最玄学的来了:伪静态!伪静态!伪静态! 重要的事说三遍。特别是你用ThinkPHP、Laravel这些框架,根目录下那个.htaccess(Apache)或者Nginx的伪静态规则,宝塔里给你自动配了没?没配的话,你所有路由除了首页全给你404,点啥啥没用。 我当时就是,首页能打开,一点内页就404,还以为是程序bug,对着代码debug到天亮,最后发现是宝塔建站时“伪静态”那个下拉菜单忘选了,选上ThinkPHP的规则,世界瞬间清净了,想给自己两拳。
还有啊,项目文件你放对目录了吗?宝塔里站点设置的“网站目录”是不是指向了你PHP项目的public文件夹(如果是单一入口框架的话)?你直接指到项目根目录,大概率也是500内部错误给你看。这玩意儿跟写原创文章的TDK一样,细节不对,蜘蛛来了都摇头。
最后,大杀器:缓存和进程。改完配置,重启了Nginx/Apache吗?重启了PHP服务吗?甚至,重启了服务器吗?有时候就得简单粗暴地来一下。浏览器缓存也清一下,按Ctrl+F5狠狠地刷新,别用无痕模式自己骗自己。
总结一下我的心路历程:域名解析 -> 检查服务器IP绑定 -> 检查端口和防火墙 -> 检查站点目录和伪静态 -> 重启相关服务。走完这一套,99%的问题都能解决。剩下1%,可能是你域名没备案(国内服务器),或者DNS还没全球生效(再等等)。别像我一样,上来就怀疑人生,对着电脑屏幕骂了十分钟脏话,结果发现是自家路由器的问题(对,我连的WiFi自己断网了),那才是真的裂开。
