- Purchase VPS, VDS or Dedicated server
 - Purchase DirectAdmin License. You must have to have valid server IP.
 - Login to server with root
 - Begin Installation : DirectAdmin
wget https://www.directadmin.com/setup.sh
 - Change setup.sh permission : setup.sh
chmod 755 setup.sh
 - Run the script :
./setup.sh auto
You may run manual installation script as follows:
./setup.sh
 - You will be asked “Would you like to install these required pre-install packages?” Write “Y”
 - Then put Client ID, License ID and Hostname.
 - Put ethernet devices
 - Select your desired apache/php setup. Option 1 is recommended. But CentOS 8 does not support ruid2! So you have to select option 4
 - DirectAdmin server is ready now! Collect login info from installation terminal. Login DirectAdmin using your IP.
For example, 122.124.25.211:2222 - If you face problem connecting server, check ethernet device name at /usr/local/directadmin/conf/directadmin.conf and edit if needed. (to see ethernet device name type /sbin/ifconfig
ethernet_dev=eth1
This may be eth0, venet0:0, eth0:1, eth1 etc.
 - Install default domain from user panel > Account Manager > Domain Setup (Optional)
 - Special Note
- If you face problem connecting server, check ethernet device name at /usr/local/directadmin/conf/directadmin.conf and edit if needed. (to see ethernet device name type /sbin/ifconfig
ethernet_dev=eth1
This may be eth0, venet0:0, eth0:1, eth1 etc.
 - Setup SSL Certificates : LetsEncrypt (may be already installed during installation process)
- Enable LetsEncrypt in /usr/local/directadmin/conf/directadmin.conf
letsencrypt=1
 - Restart DirectAdmin Service with command:
service directadmin restart
 - Add the /.well-known Alias:
cd /usr/local/directadmin/custombuild ./build rewrite_confs
 - Install the most recent version of the script:
cd /usr/local/directadmin/custombuild ./build update ./build letsencrypt ./build rewrite_confs
 
 - Enable LetsEncrypt in /usr/local/directadmin/conf/directadmin.conf
 - Install SSL certicate for server hostname. For example, server.hostname.com
- LetsEncrypt free certificate
cd /usr/local/directadmin/scripts ./letsencrypt.sh request_single server.hostname.com 4096
 - Check whether SSL is enabled at /usr/local/directadmin/conf/directadmin.conf. Make it
ssl=1
 - Now server.hostname.com is secured with https.
 
 - LetsEncrypt free certificate
 
 - If you face problem connecting server, check ethernet device name at /usr/local/directadmin/conf/directadmin.conf and edit if needed. (to see ethernet device name type /sbin/ifconfig
 - Other Security measures:
- Install CSF (Config Server Firewall) with BFM (Brute Force Monitor) [Follow this]
 - Change DirectAdmin port from 2222 to your choice. [Follow this]
 - Change SSH port
- Open sshd_config file at /etc/ssh/sshd_config
 - Change Port 22 to your desired port. For example, Port 231
 - Restart SSHD service
systemctl restart sshd.service
 
 - Disable direct access to root user. [Follow this]
 - Change web apps alias (optional)
- Create custombuild “custom” directory
cd /usr/local/directadmin/custombuild mkdir -p custom/ap2 cp -Rp configure/ap2/conf custom/ap2
 - Then go to the file at /usr/local/directadmin/custombuild/custom/ap2/conf or /usr/local/directadmin/custombuild/custom/ap2/conf/extra
 - To edit httpd alias we have to edit alias at /usr/local/directadmin/custombuild/custom/ap2/conf/extra/httpd-alias.conf
 - Change alias to your choice. Original httpd-alias.conf is as below
Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge Alias /config /var/www/html/redirect.php Alias /roundcube /var/www/html/roundcube Alias /webmail /var/www/html/roundcube Alias /phpMyAdmin /var/www/html/phpMyAdmin Alias /phpmyadmin /var/www/html/phpMyAdmin Alias /pma /var/www/html/phpMyAdmin
You can change the bold word(s) and also delete any line if you don’t need.
 - Restart Apache
sudo systemctl restart httpd.service
 - Rewrite config
cd /usr/local/directadmin/custombuild ./build update ./build rewrite_confs
 
 - Create custombuild “custom” directory
 
 - Other settings and configurations
- Increase file upload size from 10 mb to your desired size at Server Manager > Administrator Setting > Server Settings (tab) > Max Request / Upload Size
 - DirectAdmin allows 4 active php (Can also be done with CustomBuild Build Software)
cd /usr/local/directadmin/custombuild ./build update ./build set php1_release 7.1 ./build set php2_release 5.6 ./build set php3_release 7.0 ./build set php4_release 7.3 ./build set php1_mode php-fpm ./build set php2_mode php-fpm ./build set php3_mode php-fpm ./build set php4_mode php-fpm ./build php n ./build rewrite_confs
User can select PHP version on their “Domain Setup”.
 - Install ClamAV from DirectAdmin Build Software. Edit Options and Build.
- If ClamAV not functioning or down, follow quick fix
perl -pi -e 's|nofork|foreground|g' /etc/systemd/system/clamd.service systemctl daemon-reload systemctl restart clamd.service
 
 - If ClamAV not functioning or down, follow quick fix
 - Install SpamAssassin
- 
yum install spamassassin chkconfig spamassassin on service spamassassin start
 - Login to DirectAdmin and enable it from user panel.
 
 - 
 - Create One-Click login to RoundCube and phpMyAdmin [Follow this]
 
 - Enable firewall SELinux
 - Need Partition? [Follow this]
 - View Directory Tree Structure In Linux [Follow this]
 - Host name instead ip address
- This can be easily done by creating a default domain.
 - This domain will be used in send email too.
 
 
File edited: directadmin.conf, csf.conf, sshd_config
Important command line
DirectAdmin Status
systemctl status directadmin.service
DirectAdmin Restart
systemctl restart directadmin.service
or
service directadmin restart
Restart CSF firewall
csf -r
Restart httpd
sudo systemctl restart httpd.service
or
systemctl restart sshd.service