
如果你管理装有 DirectAdmin 的 VPS 或独立服务器已有一段时间,大概会好奇:怎样才能把 PHP 升级到新版本、更新 MariaDB,或者升级 Apache,而不必逐个从源码手动编译?在 DirectAdmin 的世界里,答案就是一个叫 CustomBuild 的工具——它是整台服务器软件管理的核心。本文将带你全面了解 CustomBuild 2.0:从设计理念、目录结构、基础命令,到 options.conf 的关键设置,以及正式执行构建前必须注意的事项。
阅读前须知:CustomBuild 必须以 root 权限执行,因此只有租用 VPS 或独立服务器的用户才能使用。共享虚拟主机的客户无法自行运行这些命令。如果你使用 AsiaGB 的共享虚拟主机并希望更换 PHP 版本,请直接在 DirectAdmin 控制面板中的选择器操作,或提交工单联系技术团队,完全不需要接触 CustomBuild。
CustomBuild 是什么?它在 DirectAdmin 中扮演什么角色
CustomBuild 是每台 DirectAdmin 服务器都自带的软件构建与更新工具集。它负责下载源码、编译、安装并更新 Web 服务器所依赖的核心软件:包括 Web 服务器本身(Apache、Nginx)、多个版本的 PHP、数据库引擎(MySQL 或 MariaDB)、邮件系统(Exim、Dovecot)、phpMyAdmin、ClamAV 以及许多其他组件。目前通用的标准版本是 CustomBuild 2.0。
CustomBuild 最大的优势在于把所有管理工作都集中到一条命令——./build。管理员不必到处寻找软件仓库或逐个包手动编译,只需在 options.conf 文件中声明想要的软件组合,然后执行构建即可。CustomBuild 会自动获取正确的版本、以与 DirectAdmin 无缝集成的参数进行编译,并重写配置文件,把软件与这台服务器上的每个用户账号连接起来。如果你来自 cPanel 阵营,功能最接近的工具是 EasyApache——但 CustomBuild 覆盖范围更广,因为它还负责管理数据库和邮件软件,而不仅仅是 Apache 和 PHP。
一句话总结:CustomBuild 就是 DirectAdmin 服务器全部软件栈的集中安装与更新中心——在 options.conf 中配置一次,之后一切都通过 ./build 驱动。
目录结构:/usr/local/directadmin/custombuild
CustomBuild 的全部文件位于 /usr/local/directadmin/custombuild,所有操作都要先 cd 进入该目录。目录内的关键组成部分如下:
build——主脚本,所有操作都以./build <命令>形式调用。options.conf——中央配置文件,声明这台服务器使用哪个 Web 服务器、哪些 PHP 版本和运行模式、哪个数据库引擎。custom/——存放你自己修改过的配置文件的目录,可防止重建时被覆盖(非常重要,下文注意事项部分会详细说明)。- 源码与缓存目录——保存下载的 PHP、Apache 等软件的 tar.gz 压缩包,供编译使用。
- 版本数据文件——DirectAdmin 发布的最新版本清单,通过
./build update刷新。
cd /usr/local/directadmin/custombuild
ls -l
# build options.conf custom/ cache/ ...
管理员必须掌握的基础命令
所有命令都需要以 root 身份在 custombuild 目录中执行。以下是最常用的几条:
cd /usr/local/directadmin/custombuild
./build update # 更新 CustomBuild 脚本 + 最新版本数据
./build versions # 查看哪些组件有新版本可更新
./build php n # 按 options.conf 的设置编译/更新 PHP
./build apache # 更新 Apache
./build mysql # 按所选引擎更新 MySQL/MariaDB
./build rewrite_confs # 重新生成全部 Web 服务器配置文件
./build set <选项> <值> # 安全地修改 options.conf 中的值
./build update——永远先运行这条命令。它从 DirectAdmin 拉取最新版本元数据;不运行的话,./build versions显示的是过时信息。./build versions——打印每个组件"已安装版本 vs 最新可用版本"的对照表,是决定更新内容的依据。./build php n——按 options.conf 中 php*_release 的值重新编译 PHP;末尾的n表示构建过程中不停下来询问确认。./build apache/./build mysql——分别更新 Web 服务器和数据库引擎。./build rewrite_confs——根据模板重新生成这台服务器上所有域名的 Apache/Nginx 配置;在更改 PHP 运行模式后或配置损坏时使用。
小技巧:编译一个 PHP 版本视硬件性能大约需要 10–30 分钟。大型构建务必在 screen 或 tmux 中运行,避免 SSH 连接断开导致构建中途夭折。
读懂 options.conf:真正重要的设置项
options.conf 是 CustomBuild 的大脑——每次构建都从这里读取参数。你可以直接用文本编辑器修改,也可以使用 ./build set 命令,后者更安全,因为脚本会帮你校验选项名称。最重要的选项分组如下:
| 选项 | 示例值 | 含义 |
|---|---|---|
webserver | apache, nginx, nginx_apache, litespeed, openlitespeed | 选择主 Web 服务器 |
php1_release | 8.3 | 主 PHP 版本(第 1 槽位) |
php2_release – php4_release | 8.2 / 8.1 / no | 附加 PHP 槽位 2–4,不使用时填 no |
php1_mode | php-fpm, mod_php, fastcgi, suphp, lsphp | 各 PHP 槽位的运行模式 |
mysql_inst | mariadb 或 mysql | 选择数据库引擎阵营 |
mariadb / mysql | 10.11 / 8.0 | 所选数据库引擎的版本 |
示例:用 ./build set 把主 PHP 槽位切换到 8.3 并重新构建:
cd /usr/local/directadmin/custombuild
./build set php1_release 8.3
./build php n
./build rewrite_confs
同时运行多个 PHP 版本
真实服务器上最常见的场景是一台机器托管多个网站:新项目想用 PHP 8.3,而个别老站还停留在旧版本。CustomBuild 2.0 正是为此设计的,通过 php1_release 至 php4_release 槽位,最多支持 4 个 PHP 版本并行安装。
./build set php1_release 8.3
./build set php2_release 8.1
./build set php1_mode php-fpm
./build set php2_mode php-fpm
./build php n
./build rewrite_confs
构建完成后,每个用户都可以在自己的 DirectAdmin 面板中通过 Domain Setup → PHP Version Selector 为各自的域名选择 PHP 槽位,之后完全不需要 root 介入。这正是 DirectAdmin 虚拟主机的客户能够自己在网页界面切换 PHP 版本的原因——服务器管理员已提前用 CustomBuild 准备好了多个版本。用户端的操作步骤请参阅如何在 DirectAdmin 中更换 PHP 版本。
MariaDB 与 MySQL:应该选哪个?
CustomBuild 通过 mysql_inst 选项提供两种数据库引擎:MariaDB 和 MySQL。在日常使用层面,两者的 SQL 语法一致,都能顺畅运行 WordPress、Joomla 等主流应用。一般的选择思路是:
- MariaDB——DirectAdmin 服务器上的主流选择:完全开源、开发活跃、性能出色,在主机行业拥有庞大的用户社区。
- MySQL——当应用或开发团队明确要求正宗 MySQL(例如需要 MySQL 8 的特有功能)时选用。
# 示例:使用 MariaDB 10.11
./build set mysql_inst mariadb
./build set mariadb 10.11
./build mysql
本文最重要的警告:数据库升级是一条单行道。降低版本或跨引擎迁移(如 MySQL → MariaDB)都可能导致数据不兼容。在改动这些选项之前,务必先用 mysqldump 导出所有数据库并妥善保存备份。
每次构建前的注意事项
CustomBuild 威力强大——一条命令会影响整台服务器上的所有网站,因此构建纪律必不可少:
- 每次都先备份——至少要导出所有数据库并复制重要配置文件。VPS 上还应加一层整机备份或快照。(AsiaGB 虚拟主机自带每月两次自动备份,分别在每月 1 日和 15 日执行;但在自管 VPS 上,你必须自行规划备份方案。)
- 预留短暂停机窗口——构建最后阶段会重启 Apache、PHP-FPM 等服务,网站会中断几秒钟。请安排在访问低峰时段进行。
- 手动改的配置会被覆盖——
./build rewrite_confs会根据模板重新生成全部配置,直接修改httpd.conf等文件的内容会被抹掉。正确做法是按 DirectAdmin 规定的结构把文件放进custombuild/custom/目录,这样每次构建都会使用你的版本而不是标准模板。 - 核实 PHP 兼容性——升级主 PHP 版本前,先确认这台服务器上所有网站的主题和插件都支持新版本。拿不准时,先把新版本装为 php2,再逐个域名迁移。
- 把输出信息读完——构建失败时,错误信息会说明原因,不要盲目重复执行同一条命令。
通过网页界面使用 CustomBuild:CustomBuild 插件
如果你更喜欢点击而不是敲命令,DirectAdmin 在管理员(Admin)级别内置了 CustomBuild 插件。用 admin 账号登录 DirectAdmin,打开 Extra Features → CustomBuild 即可。它的功能覆盖了大部分日常工作:
- 查看完整软件清单及版本状态(等同于
./build versions),并可在浏览器中逐项触发更新。 - 通过表单修改
options.conf的值——选择 PHP 版本、PHP 运行模式和数据库引擎,无需打开编辑器。 - 查看历史构建日志,确认编译是否成功。
插件里每个按钮的背后调用的都是与 SSH 下相同的 ./build 脚本,因此前文关于命令和 options.conf 的知识依然重要——尤其是在阅读日志排查构建失败原因的时候。
安全使用 CustomBuild 的最佳实践
- 每次开始操作前先运行
./build update,保证版本数据是最新的。 - 至少每月检查一次
./build versions;不要让组件长期停留在旧版本,尤其是已到生命周期终点的 PHP。 - 大型构建务必在
screen/tmux中运行,并选择低峰时段。 - 所有配置自定义都放进
custom/目录——绝不直接修改系统生成的文件。 - 一次只改一件事——不要在同一轮里同时升级 PHP、更换数据库引擎又切换 Web 服务器;一旦出问题将无法定位原因。
- 每次构建完成后,立即冒烟测试主要网站的关键页面(首页、登录、结账)。
- 记录变更日志:改了什么、什么时候改的、从哪个版本升到哪个版本——日后排障会轻松许多。
常见问题 (FAQ)
共享虚拟主机能使用 CustomBuild 吗?
不能。CustomBuild 必须以 root 权限在服务器上运行,仅适用于 VPS 或独立服务器用户。在 AsiaGB 的共享虚拟主机上,请通过 DirectAdmin 中的 PHP Version Selector 切换 PHP 版本,或到 billing.in.th 提交工单由技术团队协助。
./build update 和 ./build versions 有什么区别?
./build update 从 DirectAdmin 官方服务器下载最新的 CustomBuild 脚本和版本数据文件;./build versions 则对比每个已安装组件与最新可用版本,帮助你决定更新内容。先运行 update,数据才是最新的。
重新构建 PHP 会导致网站宕机吗?
编译期间网站仍使用现有二进制文件正常运行。只有最后阶段 CustomBuild 切换新二进制并重启 Web 服务器时才有短暂中断,通常只有几秒钟。稳妥起见请在低峰时段构建。
CustomBuild 最多支持同时安装几个 PHP 版本?
最多 4 个并行版本,通过 options.conf 中的 php1_release 至 php4_release 选项配置。之后每个用户都能在 Domain Setup / PHP Version Selector 页面为域名自选版本。
手动修改的 httpd.conf 每次构建后都会丢失,怎么办?
CustomBuild 生成的配置在每次运行 ./build rewrite_confs 或重建 Web 服务器时都会被覆盖。请按 DirectAdmin 规定的结构把修改后的文件放进 custombuild/custom/ 目录(例如 custom/ap2/conf/extra/),CustomBuild 每次构建都会优先使用你的自定义文件而不是标准模板。
应该选 MariaDB 还是 MySQL?
对 WordPress 等常见应用两者都可以。MariaDB 是 DirectAdmin 服务器上的主流选择,完全开源且更新快;应用明确要求 MySQL 时再选 MySQL。切记降级或跨引擎迁移非常困难——改动前务必先导出所有数据库备份。
想完整体验 CustomBuild?你需要 root 权限
租用 AsiaGB Linux VPS,每月仅需 500 泰铢起,拥有完整 root 权限——自由安装 DirectAdmin,随心调整 PHP、Apache 与 MariaDB。SSD 存储、99% 在线率、泰国数据中心、支持团队全天候服务。
查看 VPS 套餐