机械经验漫谈 - 机械斑鸠 - 2026年2月
type: channel
link: https://www.jxbjsoft.cn/index.php/2026/02/
description: 机械斑鸠 开发笔记
items: XAMPP + Github Webhooks Workflow实现方案
items: 欢迎使用 Typecho

XAMPP + Github Webhooks Workflow实现方案
type: item
date: 2026-02-21T09:25:00+00:00
description: 前置准备 软件/网站名称 链接 XAMPP Download XAMPP Git Git - Install for Windows Github GitHub 快速上手 本地 搜索Apache的httpd.conf文件内DocumentRoot、<Directory 并改为： DocumentRoot "D:/path/to/your/project" Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted 在GitHub上新建private存储库 初始化本地存储库 git init 配置Github信息 git config --global user.name "username" git config --global user.email "your@email.com" 生成SSH密钥 ssh-keygen -t rsa -b 4096 "your@email.com" cat ~/.ssh/id_rsa.pub 复制ssh-rsa开头的公钥并导入到Github 编码 注意配置好.gitignore，比如.history/、.git/、config.php等自动生成文件、敏感文件、用户上传的文件最好配置忽略。 数据库链接文件可区分本地和远程，php示例如下，配置完后，手动复制到服务器： <?php date_default_timezone_set('Asia/Shanghai'); // ============ 环境检测 ============ $current_host = $_SERVER['HTTP_HOST'] ?? ''; $is_local = ( strpos($current_host, 'localhost') !== false || $current_host === '127.0.0.1' || $current_host === '::1' ); // ============ 数据库配置 ============ if ($is_local) { // 本地开发环境（XAMPP） $servername = "localhost"; $username = "root"; $password = ""; $dbname = ""; $db_port = 3316; // 本地端口，如需改动可在此修改 } else { // 线上服务器环境 $servername = ""; $username = ""; $password = ""; $dbname = ""; $db_port = 3306; } // 创建 PDO 连接 try { $dsn = "mysql:host=$servername;port=$db_port;dbname=$dbname;charset=utf8mb4"; $pdo = new PDO($dsn, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $pdo->exec("SET time_zone = '+08:00'"); $pdo->exec("SET NAMES utf8mb4"); } catch (PDOException $e) { header('Content-Type: application/json'); if ($is_local) { die(json_encode(['error' => 'PDO 连接失败: ' . $e->getMessage()])); } else { error_log("PDO 连接失败: " . $e->getMessage()); die(json_encode(['error' => '数据库连接失败，请稍后重试或联系管理员'])); } } // 创建 MySQLi 连接 $conn = new mysqli($servername, $username, $password, $dbname, $db_port); $conn->set_charset("utf8mb4"); $conn->query("SET time_zone = '+08:00'"); if ($conn->connect_error) { header('Content-Type: application/json'); if ($is_l…

欢迎使用 Typecho
type: item
date: 2026-02-21T06:23:00+00:00
description: 如果您看到这篇文章,表示您的 blog 已经安装成功.