- 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