Typecho博客部署记录Podman
Typecho 博客部署记录(Podman)
1. Podman Compose 配置文件
services:
typecho-php:
image: docker.1ms.run/joyqi/typecho:nightly-php8.2-fpm-alpine
container_name: typecho
hostname: typecho
volumes:
- /data/typecho/typechodata:/var/www/html:Z
environment:
- TZ=Asia/Shanghai
mem_limit: 256m
networks:
- podman-network
networks:
podman-network:
external: true
name: znet2. 下载并解压 Typecho
# 下载最新版 Typecho
wget https://ghfast.top/https://github.com/typecho/typecho/releases/latest/download/typecho.zip
# 解压到数据目录
unzip typecho.zip -d /data/typecho/typechodata
# 重启容器
podman restart typecho3. 权限修复
安装后访问网页可能提示权限问题,需要进行以下修复:
# 进入容器
podman exec -it typecho_php_1 /bin/bash
# 进入网站根目录
cd /var/www/html
# 设置正确的所有权(修复数据库权限)
chown -R www-data:www-data usr/
# 进入 usr 目录
cd /var/www/html/usr
# 修复 uploads 目录权限
chown -R www-data:www-data uploads4. SQLite 数据库配置
如果使用系统自带的 SQLite,安装过程中会生成 config.inc.php 配置文件(数据库名称会根据系统随机生成,如示例中的 69c5048d87e63.db)。
配置文件内容示例:
<?php
// site root path
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
// plugin directory (relative path)
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
// theme directory (relative path)
define('__TYPECHO_THEME_DIR__', '/usr/themes');
// admin directory (relative path)
define('__TYPECHO_ADMIN_DIR__', '/admin/');
// register autoload
require_once __TYPECHO_ROOT_DIR__ . '/var/Typecho/Common.php';
// init
\Typecho\Common::init();
// config db
$db = new \Typecho\Db('SQLite', 'typecho_');
$db->addServer(array (
'file' => '/var/www/html/usr/69c5048d87e63.db',
), \Typecho\Db::READ | \Typecho\Db::WRITE);
\Typecho\Db::set($db);5. 说明
- 容器没有开放端口,可用nginx,caddy代理,容器内映射9000端口
- 容器使用
nightly-php8.2-fpm-alpine版本 - 数据持久化目录:
/data/typecho/typechodata - 容器网络使用已存在的外部网络
znet - SQLite 数据库文件存放在
/var/www/html/usr/目录下