CentOS 7 必须优先清理冲突服务,再执行安装
DirectAdmin 自带了一套完整的服务栈:Apache、PHP、MySQL(MariaDB)、Exim 等。如果系统里已经安装了 httpd、nginx、mysqld、sendmail 这类组件,安装时它们会直接冲突。开始安装前必须彻底卸载这些软件包:
yum remove httpd nginx php mysql mariadb sendmail postfix dovecot
卸载完成后不要急着继续,建议检查一下是否存在残留进程:ps aux | grep -E "(httpd|nginx|mysqld|exim)",如果发现仍在运行的进程,直接使用 kill -9 强制终止。此外,如果之前使用过宝塔、AMH 这类面板,它们的配置目录(如 /www、/usr/local/bt 等)必须彻底删除,否则安装脚本可能会在无明确报错的情况下静默失败。
执行安装脚本前,必须关闭 SELinux 和防火墙
SELinux 默认开启时,DirectAdmin 的文件权限、端口绑定、日志写入等操作都会被拦截。典型的表现包括:service directadmin start 显示 active (exited),但进程实际上并未启动;netstat -tlnp | grep :2222 看不到监听端口;/var/log/directadmin/error.log 中反复出现 Permission denied 错误。正确的处理方法是:编辑 /etc/sysconfig/selinux,将 SELINUX=enforcing 改为 SELINUX=disabled,然后执行 reboot。注意,使用 setenforce 0 临时关闭是无效的——重启后 SELinux 会重新启用,安装脚本依然会报错。同时还需要停用 firewalld:systemctl stop firewalld && systemctl disable firewalld。
按照官方推荐方式运行 setup.sh,不要跳过任何步骤
截至 2026 年,DirectAdmin 官方只推荐两种启动方式。手动下载脚本容易出错,最省心的做法是使用自动安装(携带 License Key):bash <(curl -s https://raw.githubusercontent.com/...)。如果坚持手动安装,则必须遵循标准流程:wget https://directadmin.com/setup.sh → chmod +x setup.sh → ./setup.sh。安装过程中会提示输入 Client ID、License ID、服务器 IP 和主机名。这四个信息必须与授权信息完全一致,大小写、空格、域名格式都不能出错。一旦输入错误,只能重装系统。
安装完成后第一件事不是登录,而是确认服务状态
安装过程结束并不代表面板可以正常使用。很多人会迫不及待地在浏览器中输入 https://your-ip:2222,结果发现页面打不开或者出现白屏。请先冷静下来,检查服务是否真正启动:netstat -tlnp | grep :2222,如果没有输出,说明 DirectAdmin 根本没有启动;运行 systemctl status directadmin,查看是否显示 active (running),如果不是,请查看 /var/log/directadmin/error.log 获取详细信息。登录后如果遇到白屏或 500 错误,很可能是因为 PHP 模块未安装完整。此时不必急着重装,可以尝试使用 /usr/local/directadmin/custombuild/build update 更新组件,通常能解决问题。另外,首次登录的密码会显示在安装过程的最后几行输出中,格式类似于 Admin user: admin + Password: xxxxxxxx。如果当时没有记下来,可以查看 /usr/local/directadmin/scripts/setup.txt 文件。
DirectAdmin 的安装本质上是一次定制化的编译部署,而非普通的软件安装。它对系统环境洁净度、权限模型、网络策略都极为敏感,任何“差不多就行”的做法都会导致后续排查成本远高于重装。最高效的方案是:使用全新最小化 CentOS 7 系统,按顺序清理冲突服务→关闭 SELinux→关闭防火墙→使用 License Key 一键安装。
