بسیاری از مواقع، کاربران دایرکت ادمین نیاز دارند مسیر پیشفرض یا همان DocumentRoot مربوط به یک زیردامنه (Subdomain) را تغییر دهند. اگر با مفهوم زیردامنه آشنا نیستید، پیشنهاد میکنیم ابتدا مقاله ساب دامین چیست را مطالعه کنید بهطورپیشفرض، وقتی زیردامنهای ایجاد میکنید، فایلهای آن در مسیر خاصی (مانند /domains/example.com/public_html/subdomain) قرار میگیرند. اما بهطورمثال، اگر بخواهیم سایت دیگری روی آن سابدامین بالا بیاید یا ساختار دایرکتوری پروژهمان متفاوت باشد، لازم است این مسیر را شخصیسازی کنیم. دایرکت ادمین (DirectAdmin) این امکان را در اختیار کاربران قرار میدهد تا از طریق بخش Custom HTTPD Configurations یا تنظیمات پیشرفته HTTP، مسیر DocumentRoot زیر دامنه را ویرایش کنند. در این مقاله، مراحل تغییر documentroot زیر دامنه دایرکت ادمین را بهصورت گامبهگام آموزش میدهیم تا بتوانید بهسادگی ساختار دلخواهتان را پیادهسازی کنید.
پیشنیازهای تغییر داکیومنتروت زیردامنه
قبل از اینکه تغییرات مربوط به DocumentRoot را انجام دهید، بهتر است مطمئن شوید موارد زیر را در اختیار دارید:
- دسترسی به کنترلپنل دایرکت ادمین: برای اعمال تغییرات باید وارد حساب کاربری خود در DirectAdmin شوید.
- ایجاد زیردامنه از قبل: زیردامنهای که قصد تغییر مسیر آن را دارید باید قبلاً ساخته شده باشد.
- دسترسی به فایلمنیجر یا FTP: برای بررسی یا ایجاد مسیر جدیدی که میخواهید بهعنوان DocumentRoot تنظیم شود.
- ترجیحاً دسترسی به SSH یا روت (در صورت نیاز): اگر گزینههای گرافیکی در پنل غیرفعال باشند یا بخواهید تنظیمات پیشرفتهتری اعمال کنید.
همچنین پیشنهاد میشود قبل از هرگونه تغییر، بکاپ گیری از دایرکت ادمین را فراموش نکنید؛ از تنظیمات فعلی یک نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل بتوانید به حالت قبلی بازگردید. داشتن آشنایی نسبی با ساختار پوشههای هاست نیز میتواند از بروز خطاهای رایج جلوگیری کند.
همین حالا، دامنه خود را با تضمین کمترین قیمت در ایران، ثبت کنید.
مراحل تغییر DocumentRoot زیردامنه در DirectAdmin
اگر با فریمورکهایی مثل Laravel کار میکنید یا قصد دارید سیستم دیپلوی خودکار مثل Rocketeer راهاندازی کنید، احتمالاً در مراحلی نیاز دارید مسیر پیشفرض فایلهای یک زیر دامنه (DocumentRoot) را تغییر بدهید. در این آموزش، فرآیند تغییر DocumentRoot زیردامنه در دایرکت ادمین را بهصورت مرحلهبهمرحله توضیح میدهیم.
مرحله 1؛ ورود به پنل و دسترسی به تنظیمات HTTPD
ابتدا وارد کنترلپنل دایرکت ادمین شوید.
بعد از لاگین، از داشبورد اصلی به بخش «Custom HTTPD Configurations» بروید.
در این بخش میتوانید پیکربندیهای مربوط به وبسرور Apache را برای هر دامنه و زیردامنه شخصیسازی کنید.
مفقاله مرتبط: آموزش نصب وبسرور آپاچی در لینوکس
مرحله 2؛ انتخاب دامنه یا زیر دامنه
در صفحه تنظیمات HTTPD، لیستی از دامنهها و زیردامنههایی که روی پنل شما تعریف شدهاند نمایش داده میشود. دامنهای را انتخاب کنید که زیردامنه مدنظرتان روی آن ساخته شده است.
اگر فقط یک دامنه دارید، همان را انتخاب کنید. اگر چند دامنه دارید، مطمئن شوید دامنه مرتبط با سابدامین درست را انتخاب کردهاید.
مرحله 3؛ ویرایش مسیر DocumentRoot
بعد از انتخاب دامنه، به صفحهای میرسید که شامل تنظیمات فایل کانفیگ Apache برای آن دامنه است. در این بخش باید مسیر پیشفرض زیر دامنه را تغییر بدهید. بهعنوان مثال، اگر پروژه شما در مسیر زیر قرار دارد:
/home/admin/domains/example.com/public_html/example.com/current/public
کد زیر را وارد یا ویرایش کنید:
|*if !SUB| ServerAlias *.|DOMAIN| |?DOCROOT=/home/admin/domains/example.com/public_html/example.com/current/public| |*endif|
در این مثال، مسیر public مربوط به دایرکتوری اصلی پروژه Laravel است و پوشه current هم به آخرین نسخه منتشرشده متصل شده است (معمولاً بهصورت symlink توسط Rocketeer).
مرحله ۴؛ ذخیره تغییرات و ریاستارت Apache
بعد از ویرایش فایل تنظیمات، تغییرات را ذخیره کنید. حالا باید سرویس Apache ریاستارت شود تا تنظیمات جدید اعمال شوند.
برای این کار وارد SSH شوید و دستور زیر را اجرا کنید:
service httpd restart
توجه: اگر سرور شما از apache2 استفاده میکند، ممکن است لازم باشد دستور service apache2 restart را اجرا کنید.
مرحله 5؛ تست عملکرد در مرورگر
در نهایت، آدرس سابدامین را در مرورگر وارد کنید. اگر همه مراحل را درست انجام داده باشید، محتوای مسیر جدید نمایش داده خواهد شد.
اگر صفحهای باز نشد یا با خطای 403 یا 404 روبهرو شدید:
- بررسی کنید آیا مسیر جدید وجود دارد.
- فایل index.php یا index.html داخل پوشه قرار داشته باشد.
- سطح دسترسی پوشهها و فایلها مناسب باشد (بهطورمثال، 755 برای پوشهها و 644 برای فایلها).
نکته مهم برای تغییر documentroot زیر دامنه پروژههای لاراول
در پروژههای Laravel، پوشه اصلی که باید بهعنوان DocumentRoot معرفی شود، همان پوشه public است. به همین دلیل اگر فقط مسیر بالاتر (مثلاً /current) را وارد کنید، پروژه بهدرستی لود نمیشود؛ بنابراین حتماً مطمئن شوید مسیر شما به /public ختم شود.
بررسی نکات تکمیلی و خطاهای رایج تغییر مسیر سابدامین
تغییر مسیر اجرای زیر دامنه در دایرکت ادمین، اگرچه در ظاهر ساده است، اما ممکن است باعث بروز خطاهایی شود که عملکرد سایت را تحت تاثیر قرار دهد. در ادامه به چند مورد از خطاهای رایج و نکات تکمیلی اشاره میکنیم.
۱. غیرفعال بودن گزینه «Custom HTTPD Configurations»
اگر پس از ورود به پنل دایرکت ادمین، گزینه Custom HTTPD Configurations را مشاهده نمیکنید یا امکان ورود به آن برایتان فراهم نیست، احتمالاً یکی از شرایط زیر برقرار است:
- سطح دسترسی شما به عنوان کاربر معمولی تعریف شده است (مثلاً روی هاست اشتراکی هستید).
- مدیر سرور یا شرکت هاستینگ، این قابلیت را به دلایل امنیتی غیرفعال کرده است.
- برخی پنلهای سفارشیشده ممکن است این گزینه را در منویی متفاوت نمایش دهند.
در چنین شرایطی، بهترین راه این است که با تیم پشتیبانی هاست تماس بگیرید و از آنها بخواهید دسترسی به این قابلیت را برای شما فعال کنند یا خودشان مسیر DocumentRoot را برای شما تغییر دهند.
۲. محدودیت در هاستهای اشتراکی
در اغلب هاستهای اشتراکی، امکان اعمال تغییرات در سطح تنظیمات Apache وجود ندارد. دلیل این موضوع هم این است که تنظیمات HTTPD در این سرورها بهصورت یکپارچه مدیریت میشود و تغییر در مسیر اجرای یکی از زیردامنهها ممکن است به ساختار کلی سرور آسیب بزند.
اگر از هاست اشتراکی استفاده میکنید و نیاز دارید مسیر DocumentRoot را شخصیسازی کنید، گزینههای زیر را در نظر بگیرید:
- ارتقا به سرور VPS
- درخواست تغییر مسیر توسط پشتیبانی هاست (اگر در پلن شما امکانپذیر باشد)
- استفاده از ریدایرکت در فایل .htaccess بهعنوان یک راهحل جایگزین (در موارد خاص)
۳. امکان تعیین DocumentRoot هنگام ایجاد سابدامین
در برخی نسخههای جدید دایرکت ادمین (بهویژه با تم «Evolution»)، وقتی اقدام به ایجاد یک Subdomain جدید میکنید، میتوانید مسیر موردنظر برای آن زیردامنه را همان لحظه وارد کنید. این قابلیت، نیاز به ویرایش دستی فایلهای Apache را حذف میکند.
در این حالت:
- هنگام ساخت Subdomain، یک فیلد به نام Document Root یا Path نمایش داده میشود.
- میتوانید مسیر مورد نظرتان (مثلاً پوشهی public در پروژه Laravel) را همانجا تنظیم کنید.
- نیازی به ویرایش فایل HTTPD یا ریاستارت وبسرور نخواهید داشت.
اما توجه داشته باشید که این قابلیت در همه نسخهها یا روی همه هاستها در دسترس نیست و بسته به تنظیمات سرور و تم پنل ممکن است غیرفعال شده باشد.
راهکاری ساده برای ساختاردهی بهتر به زیردامنهها در دایرکت ادمین
تغییر DocumentRoot زیردامنه در دایرکت ادمین به شما این امکان را میدهد که ساختار پروژهتان را چه برای پیادهسازی فریمورکهایی مانند Laravel و چه برای راهاندازی چند بخش مجزا در یک سایت، با انعطاف بیشتری مدیریت کنید. البته موفقیت این فرآیند تا حد بسیاری به امکانات هاست شما بستگی دارد. اگر به دنبال یک بستر حرفهای و قابلاعتماد برای اعمال چنین تنظیمات پیشرفتهای هستید، ایرانسرور گزینهای مناسب برای شروع یا ارتقای زیرساخت میزبانی شما است.
سوالات متداول
1- آیا در دایرکت ادمین میتوان برای هر زیردامنه مسیر مجزایی تنظیم کرد؟
بله، با استفاده از بخش Custom HTTPD Configurations یا هنگام ساخت Subdomain (در نسخههای جدید)، میتوانید مسیر دلخواه را برای هر زیردامنه مشخص کنید.
2- اگر گزینه Custom HTTPD در پنل من فعال نیست، چطور DocumentRoot را تغییر دهم؟
در این حالت باید از پشتیبانی هاست بخواهید مسیر را برایتان تغییر دهد یا از روشهای جایگزینی مثل ریدایرکت در .htaccess استفاده کنید.
3- برای پروژه Laravel، کدام مسیر باید بهعنوان DocumentRoot تنظیم شود؟
در پروژههای Laravel حتماً باید مسیر به پوشهی /public ختم شود، وگرنه سایت بهدرستی لود نخواهد شد.
منابع: