DirectAdmin CustomBuild 在服务器上更新 Apache PHP MySQL

如果你管理装有 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 进入该目录。目录内的关键组成部分如下:

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 中的值

小技巧:编译一个 PHP 版本视硬件性能大约需要 10–30 分钟。大型构建务必在 screentmux 中运行,避免 SSH 连接断开导致构建中途夭折。

读懂 options.conf:真正重要的设置项

options.conf 是 CustomBuild 的大脑——每次构建都从这里读取参数。你可以直接用文本编辑器修改,也可以使用 ./build set 命令,后者更安全,因为脚本会帮你校验选项名称。最重要的选项分组如下:

选项示例值含义
webserverapache, nginx, nginx_apache, litespeed, openlitespeed选择主 Web 服务器
php1_release8.3主 PHP 版本(第 1 槽位)
php2_releasephp4_release8.2 / 8.1 / no附加 PHP 槽位 2–4,不使用时填 no
php1_modephp-fpm, mod_php, fastcgi, suphp, lsphp各 PHP 槽位的运行模式
mysql_instmariadb 或 mysql选择数据库引擎阵营
mariadb / mysql10.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_releasephp4_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 选项提供两种数据库引擎:MariaDBMySQL。在日常使用层面,两者的 SQL 语法一致,都能顺畅运行 WordPress、Joomla 等主流应用。一般的选择思路是:

# 示例:使用 MariaDB 10.11
./build set mysql_inst mariadb
./build set mariadb 10.11
./build mysql

本文最重要的警告:数据库升级是一条单行道。降低版本或跨引擎迁移(如 MySQL → MariaDB)都可能导致数据不兼容。在改动这些选项之前,务必先用 mysqldump 导出所有数据库并妥善保存备份。

每次构建前的注意事项

CustomBuild 威力强大——一条命令会影响整台服务器上的所有网站,因此构建纪律必不可少:

  1. 每次都先备份——至少要导出所有数据库并复制重要配置文件。VPS 上还应加一层整机备份或快照。(AsiaGB 虚拟主机自带每月两次自动备份,分别在每月 1 日和 15 日执行;但在自管 VPS 上,你必须自行规划备份方案。)
  2. 预留短暂停机窗口——构建最后阶段会重启 Apache、PHP-FPM 等服务,网站会中断几秒钟。请安排在访问低峰时段进行。
  3. 手动改的配置会被覆盖——./build rewrite_confs 会根据模板重新生成全部配置,直接修改 httpd.conf 等文件的内容会被抹掉。正确做法是按 DirectAdmin 规定的结构把文件放进 custombuild/custom/ 目录,这样每次构建都会使用你的版本而不是标准模板。
  4. 核实 PHP 兼容性——升级主 PHP 版本前,先确认这台服务器上所有网站的主题和插件都支持新版本。拿不准时,先把新版本装为 php2,再逐个域名迁移。
  5. 把输出信息读完——构建失败时,错误信息会说明原因,不要盲目重复执行同一条命令。

通过网页界面使用 CustomBuild:CustomBuild 插件

如果你更喜欢点击而不是敲命令,DirectAdmin 在管理员(Admin)级别内置了 CustomBuild 插件。用 admin 账号登录 DirectAdmin,打开 Extra Features → CustomBuild 即可。它的功能覆盖了大部分日常工作:

插件里每个按钮的背后调用的都是与 SSH 下相同的 ./build 脚本,因此前文关于命令和 options.conf 的知识依然重要——尤其是在阅读日志排查构建失败原因的时候。

安全使用 CustomBuild 的最佳实践

常见问题 (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_releasephp4_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 套餐