<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>部署 on PlumePHP</title><link>https://plumephp.com/tags/%E9%83%A8%E7%BD%B2/</link><description>Recent content in 部署 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 12 Sep 2025 10:09:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E9%83%A8%E7%BD%B2/index.xml" rel="self" type="application/rss+xml"/><item><title>Go build tags 入门：为不同环境编译不同文件</title><link>https://plumephp.com/go-build-tags-environments-2025/</link><pubDate>Fri, 12 Sep 2025 10:09:00 +0800</pubDate><guid>https://plumephp.com/go-build-tags-environments-2025/</guid><description>&lt;p&gt;Go 的 build tags 可以让某些文件只在指定构建条件下参与编译。它常用于平台差异、可选功能、集成测试和少量环境差异。初学者可能会把它当成配置系统使用，这是要谨慎的。build tags 是编译期选择，不是运行时配置。&lt;/p&gt;</description></item><item><title>Go 内存限制入门：GOMEMLIMIT、GOGC 和容器里的服务</title><link>https://plumephp.com/go-memory-limit-gogc-2025/</link><pubDate>Thu, 21 Aug 2025 10:36:00 +0800</pubDate><guid>https://plumephp.com/go-memory-limit-gogc-2025/</guid><description>&lt;p&gt;Go 有自动垃圾回收，但这不表示内存可以不管。容器里部署服务时，如果内存持续上涨，最终可能被 OOM kill。初学者常见误解是：只要没有内存泄漏，Go 会自动处理。现实是，GC 有策略，程序有峰值，容器有上限，你需要知道基本参数。&lt;/p&gt;</description></item><item><title>Go 工作目录入门：为什么本地能读到文件，部署后却找不到</title><link>https://plumephp.com/go-working-directory-paths-2025/</link><pubDate>Thu, 07 Aug 2025 17:03:00 +0800</pubDate><guid>https://plumephp.com/go-working-directory-paths-2025/</guid><description>&lt;p&gt;“本地能跑，部署后找不到文件”是 Go 初学者常见问题。代码里写了 &lt;code&gt;templates/index.html&lt;/code&gt;，本地从项目根目录运行没事；部署成 systemd 服务后，工作目录变了，程序就报 &lt;code&gt;open templates/index.html: no such file or directory&lt;/code&gt;。问题不在 Go 编译，而在当前工作目录。&lt;/p&gt;</description></item><item><title>Go 数据库迁移入门：SQL 文件、版本表和上线顺序</title><link>https://plumephp.com/go-database-migrations-basics-2025/</link><pubDate>Tue, 08 Jul 2025 08:58:00 +0800</pubDate><guid>https://plumephp.com/go-database-migrations-basics-2025/</guid><description>&lt;p&gt;数据库表结构不会一开始就设计完。你会新增字段、加索引、拆表、修约束。初学项目常见做法是手工连数据库执行 SQL，短期快，长期危险：谁执行过、执行到哪一步、线上和本地是否一致，都说不清。数据库迁移的目标就是让结构变更有版本、有记录、可重复。&lt;/p&gt;</description></item><item><title>Go os/exec 入门：调用外部命令时如何处理超时和输出</title><link>https://plumephp.com/go-os-exec-command-2025/</link><pubDate>Wed, 11 Jun 2025 13:48:00 +0800</pubDate><guid>https://plumephp.com/go-os-exec-command-2025/</guid><description>&lt;p&gt;Go 程序有时需要调用外部命令：图片转换、压缩文件、调用已有脚本、执行系统工具。标准库的 &lt;code&gt;os/exec&lt;/code&gt; 可以做到，但边界要清楚。最重要的是：不要把用户输入拼成 shell 命令；要设置超时；要处理 stdout 和 stderr。&lt;/p&gt;</description></item><item><title>Go HTTP 服务优雅关闭入门：停止接新请求，等旧请求收尾</title><link>https://plumephp.com/go-http-server-shutdown-drain-2025/</link><pubDate>Fri, 18 Apr 2025 08:42:00 +0800</pubDate><guid>https://plumephp.com/go-http-server-shutdown-drain-2025/</guid><description>&lt;p&gt;HTTP 服务发布或重启时，如果直接杀进程，正在处理的请求可能被中断，用户看到连接错误，后台写入也可能只完成一半。Go 的 &lt;code&gt;http.Server.Shutdown&lt;/code&gt; 可以帮助服务优雅关闭：停止接收新连接，等待已有请求完成，直到超时。&lt;/p&gt;</description></item></channel></rss>