~4 min read • Updated Mar 1, 2026
1. دسترسی به پنل DirectAdmin
DirectAdmin بهصورت پیشفرض روی پورت 2222 گوش میدهد. بنابراین آدرس دسترسی به شکل زیر است:
http://12.34.56.78:2222/
http://hostname.yourdomain.com:2222/
اگر پورت 2222 پشت فایروال یا پروکسی مسدود باشد، میتوان DA را از طریق Apache، Nginx یا LiteSpeed روی پورت 80 یا 443 پروکسی کرد.
---2. اجرای DirectAdmin از طریق Apache
برای کاربرانی که نمیتوانند به پورت 2222 وصل شوند، میتوان یک سابدامین مانند cp.example.com ایجاد کرد و DA را از طریق Apache پروکسی کرد.
2.1 مراحل
- ایجاد دامنه cp.example.com در سطح User
- فعالسازی SSL (ترجیحاً Let’s Encrypt)
- رفتن به مسیر: Admin Level → Custom HTTPD Configuration → cp.example.com
- افزودن کد زیر در بخش |CUSTOM|:
|*if SSL_TEMPLATE="1"|
|?HAVE_PHP1_FCGI=0|
|?HAVE_PHP2_FCGI=0|
|?HAVE_PHP1_FPM=0|
|?HAVE_PHP2_FPM=0|
|?CLI=0|
|?HAVE_PHP1_CLI=0|
|?HAVE_PHP2_CLI=0|
|?SUPHP=0|
|?HAVE_PHP1_SUPHP=0|
|?HAVE_PHP2_SUPHP=0|
ProxyRequests off
SSLProxyEngine on
ProxyPass /phpmyadmin !
ProxyPass /phpMyAdmin !
ProxyPass /webmail !
ProxyPass /roundcube !
ProxyPass / "https://server.example.com:2222/"
ProxyPassReverse / "https://server.example.com:2222/"
|*else|
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/.well-known
RewriteRule (.*) Error! Hyperlink reference not valid. [R=301,L]
|*endif|
2.2 تنظیم IP واقعی کاربران
cd /usr/local/directadmin
./directadmin set x_forwarded_from_ip "12.34.56.78"
service directadmin restart
---
3. اجرای DirectAdmin از طریق LiteSpeed
LiteSpeed از ProxyPass به شکل متفاوتی استفاده میکند.
3.1 کد مورد نیاز در |CUSTOM|
|*if SSL_TEMPLATE="1"|
RewriteEngine On
RewriteRule ^(.*)$ https://cp.|DOMAIN|:2222/$1 [P,L]
|*else|
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/.well-known
RewriteRule (.*) Error! Hyperlink reference not valid. [R=301,L]
|*endif|
3.2 خطای LiteSpeed
اگر خطای زیر را دیدید:
Proxy target is not defined on external application list
باید مقصد پروکسی را در پنل LiteSpeed اضافه کنید:
Admin → Configuration → Server → External App → Add
---
4. اجرای DirectAdmin از طریق Nginx
فایل زیر را ویرایش کنید:
/etc/nginx/nginx-includes.conf
کد زیر را اضافه کنید:
server {
listen "12.34.56.78:80";
server_name "cp.example.com";
include /etc/nginx/webapps.conf;
location / {
proxy_pass "http://server.example.com:2222/";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect "http://cp.example.com:2222/" "http://cp.example.com/";
}
}
ریاستارت:
service nginx restart
---
5. رفع خطاهای ورود به DirectAdmin
اگر ورود انجام نمیشود، DA را در حالت Debug سطح 2000 اجرا کنید.
مثال خطا:
Referer port (443) does not match DA's (2222)
راهحل: غیرفعال کردن بررسی پورت Referer (Feature ID 2194 در DirectAdmin)
---6. تست فعال بودن DirectAdmin با curl
6.1 ساخت Login Key
در DirectAdmin:
- Key Name: curltest
- Command Allowed: CMD_API_LOGIN_TEST
- Allowed IPs: 127.0.0.1
6.2 ساخت اسکریپت تست
فایل:
/home/username/da_test.sh
محتوا:
#!/bin/sh
DEBUG=0
USER="username"
PASSWORD="loginkey"
CONFIG=curl_config.txt
echo -n '' > ${CONFIG}
echo "user = \"${USER}:${PASSWORD}\"" >> ${CONFIG}
RUN="curl --config ${CONFIG} --silent --show-error http://127.0.0.1:2222/CMD_API_LOGIN_TEST"
RESULT=`eval $RUN 2>&1`
RET=$?
COUNT=`echo "$RESULT" | grep -c 'error=0'`
if [ "${COUNT}" -gt 0 ]; then
exit 0;
else
exit ${RET}
fi
قابل اجرا:
chmod 700 /home/username/da_test.sh
6.3 اجرای تست
/home/username/da_test.sh; echo $?
اگر خروجی 0 باشد، DirectAdmin سالم است.
6.4 اجرای خودکار با Cron
در CronJobs دستور زیر را قرار دهید:
/home/username/da_test.sh
و ایمیل خروجی Cron را فعال کنید تا در صورت بروز مشکل مطلع شوید.
Written & researched by Dr. Shahin Siami