雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

在 Rocky Linux 8/AlmaLinux 8 上安装 DirectAdmin

2024-07-17 Linux 59

网络托管已成为所有在线业务不可或缺的一部分。 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、文件和电子邮件管理。


更新于:2个月前
赞一波!2

文章评论

全部评论