首页 程序笔记 在 Rocky Linux 8/AlmaLinux 8 上安装 DirectAdmin

在 Rocky Linux 8/AlmaLinux 8 上安装 DirectAdmin

网络托管已成为所有在线业务不可或缺的一部分。 DirectAdmin 是可供 Linux 用户使用的最佳托管控制面板之一。它捆绑了工具和直观的 Web 界面,使您的服务器和网站能够以用户友好的方式高效运行,确保简化托管帐户的管理。 DirectAdmin 具有简洁的布局,易于导航,深受初学者和经验丰富的用户的喜爱。

以下是 DirectAdmin 的一些关键功能:

  • DNS 和域管理:使用 DirectAdmin,您可以管理您的域、子域和 DNS 设置。
  • 文件和FTP管理:具有文件管理功能,可通过Web界面上传、下载、删除和修改文件。
  • 电子邮件管理:它提供用于创建电子邮件帐户、转发电子邮件和管理垃圾邮件过滤器的工具。
  • 数据库管理:DirectAdmin 拥有用于管理 MySQL 和 PostgreSQL 等数据库管理系统的工具。
  • 安全功能:DirectAdmin 是面向安全的解决方案。它具有针对服务器和添加的域的防火墙管理功能和 SSL 证书管理功能。
  • 以及更多

DirectAdmin 提供 3 级访问控制

  • 管理员级别
  • 经销商级别
  • 用户级别

在本简短指南中,我们将分享在 Rocky Linux 8/AlmaLinux 8 上安装和使用 DirectAdmin 时应遵循的所有过程。所以让我们开始吧。

1 – 设置时区并配置 NTP

首先确保系统已更新和升级。

sudo dnf -y update

设置 DirectAdmin 服务器的主机名。

sudo hostnamectl set-hostname hosting.example.com

接下来设置正确的时区

sudo timedatectl set-timezone Africa/Nairobi

安装 chrony ntp 服务器包。

sudo dnf -y install chrony

使该服务在系统启动时启动。

sudo systemctl enable --now chronyd

确保服务正在运行

$ systemctl status chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2023-12-10 02:40:04 EAT; 3 days ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
 Main PID: 749 (chronyd)
    Tasks: 1 (limit: 203493)
   Memory: 2.1M
   CGroup: /system.slice/chronyd.service
           └─749 /usr/sbin/chronyd

Dec 10 02:40:04 hosting.example.com systemd[1]: Starting NTP client/server...
Dec 10 02:40:04 hosting.example.com chronyd[749]: chronyd version 4.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG)
Dec 10 02:40:04 hosting.example.com chronyd[749]: Frequency 0.000 +/- 1000000.000 ppm read from /var/lib/chrony/drift
Dec 10 02:40:04 hosting.example.com chronyd[749]: Using right/UTC timezone to obtain leap second data
Dec 10 02:40:04 hosting.example.com systemd[1]: Started NTP client/server.
Dec 10 02:40:11 hosting.example.com chronyd[749]: Selected source 160.119.216.202 (2.rocky.pool.ntp.org)
Dec 10 02:40:11 hosting.example.com chronyd[749]: System clock TAI offset set to 37 seconds

手动同步本地系统时间。

$ sudo chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 160.119.216.197               3   6    37     5   +162us[  +67us] +/- 7212us
^- time.cloudflare.com           3   6    37     5    +52ms[  +52ms] +/-  163ms
^- time.cloudflare.com           3   6    37     4    +42ms[  +41ms] +/-  152ms
^* 160.119.216.206               3   6    37     4    -72us[ -168us] +/- 7425us

2 – 使用额外的磁盘存储网站数据(可选)

网站数据的默认目录是/home。建议挂载专用磁盘用于数据存储。

我们已将辅助磁盘附加到 VM 实例 /dev/vdb,如下面的命令输出所示。

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1    4M  0 rom
vda    252:0    0  100G  0 disk
├─vda1 252:1    0   99M  0 part /boot/efi
├─vda2 252:2    0 1000M  0 part /boot
├─vda3 252:3    0    4M  0 part
├─vda4 252:4    0    1M  0 part
└─vda5 252:5    0 98.9G  0 part /
vdb    252:16   0  500G  0 disk

让我们对磁盘进行分区并创建一个文件系统。

sudo parted /dev/vdb mklabel gpt
sudo parted /dev/vdb mkpart primary 0% 100%
sudo mkfs.xfs /dev/vdb1

最终我们将其安装在 /home 下。现在我们可以使用 /mnt

sudo mount /dev/vdb1 /mnt

将 /home 到 /data 目录中的所有内容同步。

sudo rsync -avz /home/* /mnt

检查磁盘分区的UUID。我们将在 /etc/fstab 中使用它。

$ blkid /dev/vdb1
/dev/vdb1: UUID="e9fafa9a-e2db-4bd2-9a0b-069178c0a133" BLOCK_SIZE="512" TYPE="xfs" PARTLABEL="primary" PARTUUID="4dea6fd1-370d-4b49-90c6-1ecb9ad98d78"

打开fstab 文件进行编辑。

$ sudo vim /etc/fstab
UUID=e9fafa9a-e2db-4bd2-9a0b-069178c0a133 /home xfs defaults,uquota,pquota  0 0

测试以确认 fstab 文件中没有打字。

sudo umount  /mnt
sudo mount -a

重新启动系统

sudo reboot

系统重新启动后检查安装选项。

# mount | grep ' /home '
/dev/vdb1 on /home type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,usrquota,prjquota)

3 – 启用磁盘配额

在网络托管业务中,磁盘配额用于限制用户可以使用多少磁盘空间。如果您的 /home 位于 / 下,那么我们必须通过编辑文件 /etc/default/grub 来更改内核启动选项以启用配额选项。

打开文件并添加选项rootflags=uquota,pquota

$ sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto rootflags=uquota,pquota"

生成一个新的 grub.cfg 文件:

$ sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done

生成新的 Grub 配置后重新启动服务器。

sudo reboot

等待系统重新上线,然后检查安装选项以确保不会出现“noquota”。

# mount | grep ' / '
/dev/vda5 on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,usrquota,prjquota)

对于专用 /home 分区:

$ mount | grep ' /home '
/dev/vdb1 on /home type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,usrquota,prjquota)

有关磁盘配额的更多详细信息,请参阅:如何在 XFS 或 Ext4 Linux 系统上启用磁盘配额

4 – 在 Rocky/AlmaLinux 8 上安装 DirectAdmin

切换到root用户。

sudo su -

安装并启动 tmux 以避免在安装 DirectAdmin 期间会话超时。

sudo dnf -y install tmux
tmux

访问 DirectAdmin 定价页面并获取适合您的托管要求的产品。

在执行安装脚本时提供许可证密钥。

bash <(curl -fsSL https://download.directadmin.com/setup.sh) '<Provided license key should go here>'

部署应该从依赖关系解析开始。

....
Transaction Summary
======================================================================================================================================================================================================
Install  168 Packages

Total download size: 37 M
Installed size: 110 M

等待安装完成。所有访问详细信息将在屏幕中提供。

...
Checking quotas...
Running quotacheck
Done quotacheck
Welcome to DirectAdmin version 1.657!

Here is the information given:
Admin User:         admin
Admin Email:        [email 
Update channel:     current
Network Device:     eth0
Server IP:          102.216.155.236
Server IP Netmask:  /29
Server Hostname:    admin.example.com
Name Servers:
        ns1.admin.example.com
        ns2.admin.example.com
ip.list written successfully
./data/admin/next_ticket.number written correctly
tickets.list written successfully
Admin admin is being created by root.
Error with quotas: xfs_quota: cannot set limits: Function not implemented

secure_access_group='access' did not exist (9999). Creating it and adding defaults.
Admin user created

System Security Tips:
  https://docs.directadmin.com/operation-system-level/securing/general.html#basic-system-security

The following information has been set:
Admin username: admin
Admin password: 8G0RgYV4iBrcHapLpeWQOQ
Admin email: [email 


Server Hostname: nadmin.example.com

安装后是执行CustomBuild。它是一个管理 DirectAdmin 相关服务的工具,例如 WWW、电子邮件、SQL、PHP 等。大多数包都是从源代码编译的。

构建过程将需要一些时间。

CustomBuild installation has started, you may check the progress using the following command: tail -f /var/log/directadmin/custombuild.1702629701.18861.YWxsAGQA.log
[setup.sh] You will receive a message in the DirectAdmin panel when background installation finalizes.

如果您想检查 CustomBuild 的进度,请运行下面提供的命令。

tail -f /var/log/directadmin/custombuild.*.log

成功后,系统会通知您重新启动服务器 - “CustomBuild+installation+has+finished

############################################################################################################################################################################################### 100.0%
Lego 4.14.2-SNAPSHOT-cd63b325 Installed.

==> /var/log/directadmin/custombuild.1708774316.34630.YWxsAGQA.log <==
*************************************

Generating grub configuration file ...
File descriptor 99 (/dev/null) leaked on vgs invocation. Parent PID 371910: /usr/sbin/grub2-probe
File descriptor 99 (/dev/null) leaked on vgs invocation. Parent PID 371910: /usr/sbin/grub2-probe
File descriptor 99 (/dev/null) leaked on vgs invocation. Parent PID 372067: /usr/sbin/grub2-probe
File descriptor 99 (/dev/null) leaked on vgs invocation. Parent PID 372067: /usr/sbin/grub2-probe
done
Grub configuration re-generated. Please reboot the box.
2024/02/24 14:44:54  info executing task            task=action=notify&message=CustomBuild+installation+has+finished%2C+to+check+the+full+log+please+check%3A%0A%2Fvar%2Flog%2Fdirectadmin%2Fcustombuild.1708774316.34630.YWxsAGQA.log&subject=CustomBuild+installation+has+finished&value=admin

在某些情况下,构建不会自动启动。可以手动启动 CustomBuild 安装程序

da build all d

检查已安装的 DirectAdmin 版本。

 # /usr/local/directadmin/directadmin version
DirectAdmin v.1.657 aa282043f7809054a5b18e1e839716062ba2e621

5 – 配置 Firewalld 规则(可选)

这是 DirectAdmin 使用的所有端口和服务的表格

Port Service Name Comment
20,21 FTP FTP will use a “random high port number” if the client is in PORT mode, so you may need to add a port range into your /etc/proftpd.conf file to allow FTP connections, e.g., PassivePorts 35000 35999, and then open that same port range as well in your firewall
22 SSH default port for SSH access
25,587 Exim SMTP for Exim to receive email
53 Named TCP and UDP, so your sites resolve
80,443 Apacha/NGINX Apache or Nginx traffic, HTTP and HTTPS
110,143,993,995 Dovecot client Pop and Imap email access
2222 DirectAdmin Accessing panel
2703 Razor Optional: RAZOR check for SpamAssassin
3306 MySQL You don’t need to open this port if you don’t want to allow remote MySQL access, as most MySQL scripts are all accessed locally.

安装 Firewalld 软件包。

sudo dnf -y install firewalld

启动并启用firewalld服务。

sudo systemctl enable --now firewalld

在防火墙中启用 DirectAdmin 和其他服务端口:

sudo firewall-cmd --zone=public --add-port={2222,20,21,22,25,587,80,443,110,143,993,995}/tcp --permanent 

重新加载防火墙以应用新规则:

sudo firewall-cmd --reload

6 – 访问 DirectAdmin 门户网站

如果在安装过程中遗漏了许可证,您可以在安装后设置许可证。

da license-set 'LICENSE-KEY'

安装后,访问 DirectAdmin 登录门户:http://server.ip.address:2222

使用 setup.sh 提供的输出信息中的管理员用户名和密码登录。还可以在以下文件中访问该信息。

cat /usr/local/directadmin/conf/setup.txt

DirectAdmin Web 界面外观:

检查控制面板 > 管理 > 服务监视器 下的服务状态

结论

在本文中,我们已经能够在 Rocky Linux 8/AlmaLinux 8 系统上安装和配置 DirectAdmin。在许可变更后,DirectAdmin 已被证明是 Cpanel 网络托管控制面板的最终替代品。它允许用户管理网站的各个方面,甚至可以进行额外的操作,例如 DNS、文件和电子邮件管理。


4

声明 本站内容部分来源于网络,仅供参考学习交流并不代表本站观念,如无意中侵犯您的权益( 包括/图片/视频/个人隐私等信息 )请来信告知,本站收到信息会尽快处理并回访,联系邮箱:laodilailiao@foxmail.com

站心网

网络托管已成为所有在线业务不可或缺的一部分。 DirectAdmin 是可供 Linux 用户使用的最佳托管控制面板之一..

为您推荐

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?今天我决定写一篇关于如何选择L..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

最新CentOS7安装搭建shadowsocks服务端+客户端使用图文教程

使用的CentOS版本是7.9,其他版本也可以。超级推荐的是搭建shadowsocks服务端,安装配置都很简单,几分钟就搞定,客户端支持PC移动端,下面是安装shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

.NET 9 即将推出的功能Task.WhenEach

.NET 爱好者!我刚刚偶然发现了一个非常酷的新 PR,它被合并到 .NET 运行时存储库中,我想分享一个例子。希望您能为新的 .NET 版本大肆宣传!在即将到来的 .NET 9 版本中,我们预计会有一个名为 .它在这里让您的异步..

针对 Go 语言开发的 SQL 驱动模拟库

数据库交互是几乎所有应用程序不可或缺的一部分,开发者们常常需要对数据库进行各种操作,包括插入、更新、删除和查询等。然而,在开发过程中直接对真实数据库进行操作不仅耗时耗力,还可能带来数据一致性和安全性的..

DockerUI 中文可视化Docker管理工具使用示例

DockerUI 是由国内开发者打造的一款优秀的 Docker 可视化管理工具。该工具拥有简洁直观的UI界面,可以轻松进行Docker主机管理、集群管理,以及Docker任务的编排等操作。DockerUI不仅展示了资源利用率、系统信息和更..

Blazor的N种渲染模式原理和常见问题说明

我们从下面这幅图开始,下图显示了三种渲染模式,分别称之为静态SSR、交互式SSR(即之前的BlazorServer)、交互式CSR(即之前的BlazorWasm)。还有一种渲染模式BlazorHybrid,稍后说。一、先浅层理解一个图例静态SSR:经..

前端CSS常见的三种设计模式

CSS设计模式主要包括OOCSS、SMACSS和BEMCSS等。以下是对这些模式的具体介绍:OOCSS:面向对象的CSS,旨在编写高可复用、低耦合和高扩展的CSS代码。它将抽象(结构)和实现(样式)分离,抽离公共代码,以提高代码的..

WinToUSB | 把Windows塞进U盘里即插即用

不论是在外出差,还是在家临时办公,现在很多设备携带起来都不是那么方便,在这种情况下,有一个轻巧而高效的操作系统环境就显得格外关键。今天,要给大家介绍一款超级实用的便携式系统启动盘,凭借其独特功能和卓越..

.NET Framework被淘汰了吗?

.NET Framework并未完全被淘汰,但它的某些版本确实已经停止支持。微软在2023年11月10日停止了对.NET Framework 4.8之前的版本的支持。这一决策意味着使用这些旧版本的应用程序将不再获得安全更新和其他维护,从而可..

强大的 .NET Mock 框架 单元测试模拟库Moq使用教程

单元测试是确保代码质量和可靠性的重要手段。当我们的代码依赖于外部系统、数据库或第三方服务时,编写有效的单元测试可能会变得复杂且耗时。为了简化这一过程,模拟(Mocking)技术应运而生。在 .NET 生态系统中,M..

CLS 问题:超过 0.1(桌面设备) 是什么意思?

在网页设计和开发中,CLS(Cumulative Layout Shift)是指页面布局的累计偏移量。当一个用户与页面互动时,如果页面的某些元素突然改变位置或大小,导致整个布局发生偏移,就会产生布局偏移。这种偏移可能会影响用户..

Angular UT 模拟执行setTimeout

在 Angular 单元测试中,我们经常需要模拟异步操作,比如 setTimeout。提高测试速度: 真实环境下的 setTimeout 会阻塞测试,导致测试运行时间过长。确保测试的可靠性: 模拟 setTimeout 可以让我们更好地控制异步操..

JavaScript 的 sessionStorage 能否加锁?

直接给 sessionStorage 加锁是不可能的。sessionStorage 的本质: sessionStorage 是浏览器提供的一种用于在当前浏览器会话中存储数据的机制。它存储在客户端,数据仅在当前浏览器窗口或标签页中有效。加锁的必要性..

Redis 同步、击穿、穿透及雪崩简述

对Redis最常见的几个问题,简要的说下我的理解与解决方法。数据同步指Redis做为缓存,在数据变化时,怎么保持与数据库数据同步的。一般解决方案为:缓存双删(同步方案大都采用删除缓存,而不会更新新缓存。缓存击穿..

Vue 3.5引入新特性 还有与SSR相关的改进

Vue 3.5引入了响应式属性解构、useTemplateRef方法、useId实用函数、内部响应性重构等新特性。以下是具体介绍:响应式属性解构此功能允许开发者在defineProps宏中解构属性而不会失去响应性,这为组件间的属性传递提..

Asp.Net Core进程内托管 和 进程外托管的区别

在ASP.NET Core中,托管模型决定了应用程序如何运行及其与Web服务器交互的方式。主要有两种托管模式:进程内托管(In-Process Hosting)和进程外托管(Out-of-Process Hosting)。每种模式都有其独特的优势和适用场..

C# 使用Barrier进行多线程同步

在多线程编程中,同步是一个关键问题。Barrier 是 .NET 提供的一种同步机制,用于协调多个线程在执行某个阶段工作时进行等待,直到所有参与的线程都达到某个同步点后再继续执行。这对于需要在多个线程之间进行阶段性..

ASP.NET Core实现多语言本地化Web应用程序

构建全球可访问的网站和应用程序需要对内容进行适当的本地化,以吸引来自不同文化和地区的用户。ASP.NET Core 提供强大的本地化支持,以用户首选的语言和格式呈现内容。在本综合指南中,我们将探索 ASP.NET Core 中..

发表回复

返回顶部