一、Typecho
我的博客地址:https://www.aomanhao.top
使用老薛主机+动态Typecho博客框架+handsome主题的搭配,文章内容可以异地网页更新,可以听后台背景音乐,很好的满足我的痛点需求,博客部署在云端服务器访问响应较快,体验还是蛮不错的。
二、503问题概述
以游客身份访问网站没有问题,但是登录typecho后台显示503,就是无法以管理员身份登陆后台进行操作。
typecho后台登陆网址,我的是https://www.aomanhao.top/admin
报错显示如下:
三、503问题分析
503涉及到主机服务器、博客主题、Typecho框架。
咨询了主机服务器的客服,没有异常,提示到第三方资源消耗太大,这个是博客访问延迟较高的原因。
咨询到博客主题作者,这个问题属于Typecho框架的登陆失败,是Typecho后台登陆有问题。
从网络上搜到针对Typecho框架的优化措施,见第五章。
四、问题解决
第五章的优化措施均未成功解决503问题
将Typecho框架升级到最新版的V1.2.1后,决定屏蔽主题和插件,然后使用默认主题和默认插件,Typecho后台设置可以正常使用。
主机博客主题界面如下,屏蔽其他主题 ,保留Typecho默认主题。
主机博客插件界面如下,屏蔽其他插件 ,保留Typecho官方插件。
博客的原主题见下图,一切运行正常,可以登陆后台了。
在服务器后台装上handsome的主题和插件,在Tyepcho后台启用handsome多的主题和插件,一切正常,私以为是别的插件没有做好新版本Typecho的适配或者文件损坏了。
五、优化尝试措施
措施1-Typecho升级
1、下载最新版Typecho版本
从Typecho官网下载最新版Typecho版本,进行版本升级,
Typecho版本路径(github)如下:
Typecho路径
2、备份你的内容数据。
途径一:网站备份
登录你的网站,点击 控制台 -> 备份,执行“开始备份”,这很重要,万一升级失败,损坏了数据,可及时恢复,确保网站安全。
途径二:服务器备份
登陆你使用的服务器/主机,进行数据备份,主要是mysql数据库以及博客系统、主题等个人配置文件
3、删除服务器上的旧文件。
请在服务器上删除如下目录和文件
/admin/
/var/
/index.php
/install.php
注意,请千万不要删除/usr/目录。
注意,请千万不要删除/usr/目录。
注意,请千万不要删除/usr/目录。
因为这个目录包含了你的主题,插件和上传的文件,它无需被升级。
4、上传新文件。
请把你下载的压缩文件解压后,将admin文件夹、var文件夹和index.php文件、install.php文件上传以上已经删除的文件和目录,这实际上是执行了一次覆盖操作。
5、执行升级程序。
直接访问你的 admin 页面,用一个具有管理员权限的用户登录后台,系统会提示检测到新版本需要升级,点击“完成升级”按钮即可完成升级。
如果在升级完成后,进入首页出现 500 或其他错误,请进入 admin 页面禁用所有的插件,并启用默认模板。如果正常,请逐步排查插件或模板存在的问题。
措施2-伪静态设置
1、如何启用伪静态?
老薛主机所有云主机都支持伪静态,不需要特别的设置。只需要在自己的网站后台启用伪静态,之后将网站程序提供的伪静态规则复制到对应网站根目录下的 .htaccess 文件中,或者将含有伪静态规则的 .htaccess 文件上传到对应的网站根目录下就可以了。
如果对应网站程序文件的根目录下没有 .htaccess 文件,程序商也没有提供伪静态规则,我们建议联系程序开发商提供(或使用搜索引擎搜索)对应程序在 Apache 环境下使用的伪静态规则。
2、如何编辑或创建 .htaccess 文件?
在 Linux 系统中,点开头的文件通常属于系统文件,这些文件是隐藏文件。显然 .htaccess 就是一个隐藏文件,在 cPanel 面板的文件管理器中,需要选择显示隐藏文件才能查看和编辑这个文件。如果设置了显示隐藏文件之后,仍然看不到这个文件,就需要自己创建一个
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
需要在自己的网站后台启用伪静态,启用地址重写功能后,就开启了伪静态
措施3-强制转向https
网络上的解决方案,编辑 Typecho 站点根目录下的文件 config.inc.php,文件开始添加一行代码,强制转向https。
define('__TYPECHO_SECURE__',true);