1. 安装 php Typecho 依赖于 PHP,因此需要确保 PHP 和一些常见扩展已经安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 更新 apt update # 安装 apt install php php-fpm php-mysql php-gd php-xml php-mbstring php-json -y # 解释 php:安装最新版本的 PHP 解释器 php-fpm:安装 PHP-FPM(用于 Nginx 处理 PHP 请求) php-mysql:安装 MySQL 扩展,用于与 MySQL 数据库交互 php-gd:安装 GD 扩展,用于图像处理 php-xml:安装 XML 扩展,用于解析 XML php-mbstring:安装多字节字符串扩展,支持 UTF-8 等字符集 php-json:安装 JSON 扩展,用于处理 JSON 数据 # 检查版本 php -v # 示例输出 PHP 8.2.24 (cli) (built: Sep 27 2024 04:16:10) (NTS)
2. 安装 nginx 1 2 3 4 5 6 7 8 9 apt update apt install nginx -y systemctl start nginx systemctl enable nginx systemctl status nginx # 注:如果启动失败,查看日志定位原因 journalctl -xeu nginx.service
3. 安装 typecho 1 2 3 4 5 6 7 8 mkdir -p /opt/typecho cd /opt/typecho # 下载 curl -LO https://github.com/typecho/typecho/releases/latest/download/typecho.zip # 解压 x typecho.zip
4. nginx 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 # 删除原有配置 rm /etc/nginx/sites-available/default rm /etc/nginx/sites-enabled/default # 添加配置文件 touch /etc/nginx/sites-available/typecho.conf ln -s /etc/nginx/sites-available/typecho.conf /etc/nginx/sites-enabled/typecho.conf # 编辑配置文件 vim /etc/nginx/sites-available/typecho.conf server { listen 80; server_name localhost; # 填入你的域名 root /opt/typecho/typecho; # 安装的 Typecho 程序的路径 index index.php index.html; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 根据你 PHP 版本修改 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # nginx 配置生效 nginx -t && nginx -s reload
5. 访问 typecho 页面 点击下一步后,报错如图,是权限问题
1 2 # 修改 typecho 目录的权限,将所属用户、用户组都改为 www-data,这是 nginx 使用的用户 chown -R www-data:www-data /opt/typecho/typecho
更改权限后,进入到第二步,看到需要数据库
6. 安装 mysql 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 mkdir -p /opt/typecho/mysql cd /opt/typecho/mysql vim docker-compose.yml # 启动 mysql docker compose -f /opt/typecho/mysql/docker-compose.yml up -d # 安装 mysql 连接工具 apt install default-mysql-client -y # 连接测试(root) mysql -uroot -proot --protocol=tcp # 修改 root 用户密码 alter user 'root' identified by 'zF#hnu9&tHDOIDVh'; flush privileges; # 再次连接测试(root) mysql -uroot -p'zF#hnu9&tHDOIDVh' --protocol=tcp # 创建数据库 create schema `typecho_db`; # 创建、授权用户(typecho) create user 'typecho'@'%' identified by 'x1od%E3K%uU0WFjs'; grant all privileges on typecho_db.* to 'typecho'@'%'; # 连接测试(typecho) mysql -utypecho -p'x1od%E3K%uU0WFjs' --protocol=tcp use typecho_db;
附:docker-compose.yml 内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 version: '3' services: mysql-typecho: container_name: mysql-typecho image: mysql:8.0 restart: always ports: - 3306 :3306 environment: MYSQL_ROOT_PASSWORD: root volumes: - ${PWD}/data:/var/lib/mysql - /etc/localtime:/etc/localtime:ro
7. 继续 typecho 配置
8. 完成 成功 ✅