2024年12月

MSYS

下载MSYS编译工具,地址:MSYS2官网
一路安装下去即可。
查看版本信息:

gcc -v

添加mingw到环境变量:

echo 'export PATH=$PATH:/mingw64/bin' >> ~/.bashrc

查看环境变量是否添加成功,注意大小写:

echo $PATH

安装mingw编译器:

pacman -S mingw-w64-x86_64-gcc

zlib

下载地址:zlib官网
当前版本1.3.1
切换到解压缩包的位置,window盘符为/d,而不是D:/

cd /d/QTToolLib/zlib-1.3.1

逐行输入编译命令:

cp win32\makefile.gcc makefile.gcc
mingw-make -f makefile.gcc

可以在zlib-1.3.1文件夹下看到libz.a库。


libjpeg

下载地址:libjpeg官网
我下载的是 jpegsrc9d.zip,
切换到解压缩包的位置:

cd /d/QTToolLib/jpeg-9d

逐行输入编译命令:

./configure
make

在jpeg-9d文件夹下会生成.lib文件夹,里面即是编译好的.a文件。


zstd

下载地址:zstd的github链接
切换到解压缩包位置:

cd /d/QTToolLib/zstd-dev

输入编译命令:

make

在zstd-dev文件夹下的lib文件夹里可以看到libzstd.a库。


tiff

下载地址:tiff官网
我下载的版本是tiff-4.7.0rc2.zip
先编译好上面zlib、libjpeg、zstd,打开jpeg-9d/jconfig.h文件,在最下面定义如下

#define HAVE_UNSIGNED_CHAR
#define HAVE_UNSIGNED_SHORT

切换到tiff-4.7.0文件夹

cd /d/QTToolLib/tiff-4.7.0

输入以下编译命令,记得修改文件路径:

./configure --with-zlib-include-dir=/d/QTToolLib/zlib-1.3.1 --with-zlib-lib-dir=/d/QTToolLib/zlib-1.3.1 --with-jpeg-include-dir=/d/QTToolLib/jpeg-9d --with-jpeg-lib-dir=/d/QTToolLib/jpeg-9d/.libs

生成编译配置文件后输入编译命令:

make

编译完成之后可以在./libtiff/.libs中看到libtiff.a库文件。

当我给博客网站开启https之后,发现登录功能和评论功能用不了了,只能在http下访问才可以,问了一下GPT,好像是因为Typecho的Action默认都是使用http协议,需要为Typecho强制开启https协议加载资源。


开启方法很简单,找到/usr/share/nginx/html/config.inc.php文件,
注:可能每个服务器环境不一样导致无法在上面的路径找到config.inc.php文件,可以使用下面代码寻找:

find / -name "config.inc.php"

一般来说处于html文件夹下,可依据系统返回的文件路径查看。config.inc.php的文件内容如下:

<?php
/**
 * Typecho Blog Platform
 *
 * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
 * @license    GNU General Public License 2.0
 * @version    $Id$
 */

/** 定义根目录 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));

/** 定义插件目录(相对路径) */
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');

/** 定义模板目录(相对路径) */
define('__TYPECHO_THEME_DIR__', '/usr/themes');

/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/xxx/');

/** 设置包含路径 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);

/** 载入API支持 */
require_once 'Typecho/Common.php';

/** 载入Response支持 */
require_once 'Typecho/Response.php';

/** 载入配置支持 */
require_once 'Typecho/Config.php';

/** 载入异常支持 */
require_once 'Typecho/Exception.php';

/** 载入插件支持 */
require_once 'Typecho/Plugin.php';

/** 载入国际化支持 */
require_once 'Typecho/I18n.php';

/** 载入数据库支持 */
require_once 'Typecho/Db.php';

/** 载入路由器支持 */
require_once 'Typecho/Router.php';

/** 程序初始化 */
Typecho_Common::init();

/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => 'localhost',
  'user' => 'xxx',
  'charset' => 'utf8',
  'port' => 'xxx',
  'database' => 'xxx',
  'password'=> 'xxx',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

在末尾添加以下代码:

define('__TYPECHO_SECURE__', true);

保存并退出即可。


代码解释:define('__TYPECHO_SECURE__', true); 是 Typecho 专门用于启用 HTTPS 支持的配置项。它可以告诉 Typecho 强制使用 HTTPS,解决 HTTPS 环境下资源加载或功能异常的问题。Typecho 会将所有与站点相关的链接(如评论提交、资源加载等)强制使用 HTTPS,而不再尝试自动检测协议。这避免了因为协议未正确识别而导致的问题,例如评论功能无法提交。

今天想重新登录Typecho管理后台的时候发现密码输入了几次都不对,太久没登录忘记密码了,所以记录一下如何找回或修改管理后台。
注:我的Typecho是阿里云服务器的默认应用镜像,若是自己搭建的网站可能文件路径等有些不同,但方法大致是一样的。


首先找config.inc.php文件,该文件是 Typecho 应用的配置文件,用于保存网站运行所需的核心设置,特别是与数据库相关的信息。它是 Typecho 正常运行的关键文件。我的config.inc.php文件是位于/usr/share/nginx/html路径下。如果这个位置找不到可以试试以下几个路径:

  • /var/www/html/
  • /data/wwwroot/
  • /www/

如果找不到可以使用下面命令查询:

find / -name "config.inc.php"

找到config.inc.php文件后使用nano或vim打开(我更喜欢用filezille下载到本地查看),可以看到里面有关于数据库的配置信息

    /** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => 'localhost',
  'user' => '用户名',
  'charset' => 'utf8',
  'port' => '3306',
  'database' => '数据库名',
  'password'=> '数据库密码',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

1、在你的服务器中登录数据库

mysql -u 用户名 -p

输入密码后登录成功。

2、选择 Typecho 数据库

USE 数据库名;

3、查询管理员信息,Typecho 的用户表通常是 typecho_users。运行以下命令:

SELECT * FROM typecho_users;

可以看到管理员用户的所有信息,name、password、mail等,不过这里的密码通常是用MD5的加密格式,所以不能直接使用。
屏幕截图 2024-12-11 100145.png

4、可以手动生成MD5加密格式的密码,假设新密码是 newpassword,可以使用MD5在线加解密工具,选择32位[小],可以看到newpassword生成的MD5格式是5e9d11a14ad1c8dd77e98ef9b53fd1ba
屏幕截图 2024-12-11 100951.png

5、更新数据库密码,使用下面SQL命令更新管理员密码

UPDATE typecho_users SET password = '5e9d7d68fffb7c5d8a4a09edbf1a2d8f' WHERE name = '你的管理员用户名';

6、刷新权限,退出MySQL

FLUSH PRIVILEGES;
QUIT;

7、刷新Typecho管理页面,使用新密码重新登录即可。