راهنمای ایجاد دامنه و زیردامنه‌های محلی با کمک کارساز آپاچی( Apache )

نشان کارساز آپاچی

به عنوان یک توسعه‌دهنده‌ی وب ممکن است نیاز داشته باشید تا علاوه بر نشانی localhost از نشانی‌ها و یا زیردامنه‌های دیگری برای آزمایش برنامه‌های خود بهره‌گیری کنید.
برای مثال ممکن است بخواهید از نشانی http://test.localhost یا http://test که به شاخه‌ای اختیاری بر روی دیسک شما اشاره می‌کند استفاده کنید.

پیش از شروع لازم است تا با فرآیند انجام‌شده در هنگام فراخوانی یک نشانی وب آشنا شوید.

هنگامی که یک نشانی را در مرورگر خود تایپ می‌کنید، مرورگر بر اساس تنظیمات پراکسی خود ممکن است با اتصال به سرور پراکسی، اطلاعات صفحه‌ی موردنظر را درخواست کند و یا ممکن است IP نشانی مورد نظر( مثلا amib.ir ) را از سیستم‌عامل درخواست کند و سپس با اتصال به IP به‌دست آمده( مثلا ۱۰.۲۰.۳۰.۴۰ )، صفحه را به شما نمایش دهد.

در اینترنت کارسازهایی( Server ) وجود دارند که وظیفه‌ی تبدیل نشانی‌های اینترنتی به آدرس IP را بر عهده دارند. علاوه بر این کارسازها، معمولا سیستم‌عامل نیز مواردی مانند localhost را -که یک نشانی محلی است- خود ترجمه می‌کند.

با توجه به آنچه گفته شد، گام نخست در ایجاد یک دامنه‌ی محلی جدید، انجام تغییرات در سیستم‌عامل برای معرفی نشانی جدید به عنوان یک نشانی محلی است.
برای انجام این کار لازم است تا فایلی با نام «hosts» را که در مسیر «‎%windir%\system32\drivers\etc» واقع شده ویرایش کنید. این فایل حاوی «جدول سفارشی تبدیل نشانی به IP» در ویندوز است.
اگر این فایل را با یک ویرایشگر متنی باز کنید خواهید دید که در خطوط انتهایی عبارتی مانند «‎127.0.0.1 localhost» نوشته شده است.
با نوشتن این عبارت در این فایل، به سیستم‌عامل می‌فهمانیم که اگر کسی نشانی «localhost» را درخواست کرد، او را به آدرس IP محلی «۱۲۷.۰.۰.۱» منتقل کند.
خط‌هایی که با # شروع شوند و یا ادامه‌ی عبارت‌هایی که با # پیشوند شوند، توضیحات به حساب می‌آیند و اثری در عملکرد این فایل ندارند.

همان‌گونه که مشاهده‌کردید، بخش دوم عبارت فوق، نام سرور محلی است. برای درست‌کردن یک سرور محلی جدید( مثلا http://test ) دو راه وجود دارد. راه نخست اینکه عبارت «test» را با کمک یک فاصله در انتهای «localhost» اضافه کنیم و راه دوم اینکه نام سرور جدید را در خطی جداگانه بنویسیم( برای مثال: «‎127.0.0.1 test» ).

پس از آنکه این تغییرات را انجام دهید و سیستم‌عامل را دوباره راه‌اندازی کنید، نشانی http://test به IP محلی «۱۲۷.۰.۰.۱» اشاره خواهد کرد. گام بعدی تنظیم کارساز آپاچی برای نمایش محتوای مناسب با این نشانی است.

تنظیمات کارساز آپاچی در فایلی با نام «httpd.conf» واقع شده در شاخه‌ی آپاچی و زیرشاخه‌ی «conf» قرار دارد. این فایل را بیابید و آن را باز کنید.

نخستین عبارتی که باید به این فایل بیفزایید( در صورتی که نباشد ) «‎ NameVirtualHost *:80» است. این دستور سبب می‌شود تا آپاچی تمامی درخواست‌های ارسال شده بر روی پورت ۸۰ را پردازش کند( نه تنها یک IP خاص را ).

گام دوم انتخاب یا ایجاد یک شاخه بر روی دیسک سخت است. این شاخه می‌تواند هر جایی( حتی روی دیسک‌های قابل حمل یا درایو‌های مجازی ) باشد. با فرض اینکه مسیر انتخابی «z:\test» نام دارد، عبارت‌های زیر را به فایل تنظیمات httpd.conf بیفزایید:

<Directory "z:/test/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Allow,Deny
    Allow from all
</Directory>

توجه شما را به استفاده از «/» در عوض «\» جلب می‌کنم
تنظیمات بالا امکان دسترسی به محتویات این شاخه را برای همه فراهم می‌کند. چنانچه شاخه‌ی انتخابی شما زیرشاخه‌ای از شاخه‌ی www یا htdocs آپاچی باشد، نوشتن این بخش الزامی نیست

گام سوم و نهایی تخصیص شاخه‌ی انتخابی به آدرس تعیین‌شده( http://test ) است. برای انجام این کار عبارت‌های زیر را به انتهای فایل تنظیمات بیفزایید:

<VirtualHost 127.0.0.1>
   DocumentRoot "z:/test/"
   ServerName test
</VirtualHost>

بار دیگر توجه شما را به استفاده از «/» در عوض «\» جلب می‌کنم
فراموش نکنید که پیش از استفاده، مقدارهای وارد شده در مقابل دستورهای «DocumentRoot» و «ServerName» را مطابق نیاز خود تغییر دهید.

حال کافی است کارساز آپاچی را بسته و مجدد باز کنید تا تنظیمات ایجاد شده فعال شوند و بتوانید از نشانی محلی جدید خود استفاده کنید.

این نوشته در PHP, برنامه‌نویسی, نرم‌افزار ارسال و , , برچسب شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

۱۲ دیدگاه برای راهنمای ایجاد دامنه و زیردامنه‌های محلی با کمک کارساز آپاچی( Apache )

  1. سعید سلیمانی می‌گوید:

    سلام مهندس
    من یک سرور دارم که دارای ای پی ولید است که اونو با mysql php و apache راه اندازی کردم فقط مشکل اینه که نمی دونم چطوری بهش ساب دومین اضافه کنم
    سایت من مثلاً
    http://www.mydomin.com است
    می خوام یک فولدری که است sub
    که در http://www.mydomin.com/sub واقع شده

    با آدرس
    sub.mydomin.com
    بتونم ببینمش

    • امیرمسعود ایرانی می‌گوید:

      سلام

      لطفا توضیحات بالا را یک‌بار دیگر مطالعه کنید
      با کمک دستور ServerName داخل VirtualHost می‌توانید نام زیردامنه‌ی خودتان را مشخص کنید و با کمک دستور DocumentRoot هم می‌توانید یک شاخه را به آن نسبت دهید
      مثلا چیزی شبیه این:

      <VirtualHost *:*>
      	DocumentRoot "c:/apache/htdocs/test/"
      	ServerName test.example.com
      </VirtualHost>

      قطعه کد بالا تمامی درخواست‌ها روی تمام پورت‌ها و تمام IP ها را که دامنه‌ی درخواستی test.example.com باشد را به شاخه‌ی test ترجمه می‌کند
      برای عملکرد صحیح کد بالا لازم است تا DNS شما علاوه بر example.com آدرس test.example.com را نیز به IP شما ترجمه کند

      برای مشاهده‌ی مثال‌های بیشتر در این مورد اینجا کلیک کنید

  2. حسین می‌گوید:

    سلام خدمت شما دوست عزیز تبریک می گم واقعا” که سایت بسیار پر محتوایی دارید بنده یک سوال داشتم
    من می خواستم توسط php یک اسکریپت بنویسم که به کاربر اجازه ساخت ساب دومین رو بده یعنی دیگه نیاز نباشه به صورت دستی وارد سی پنل بشم و تنظیمات رو انجام بدم و مانند بلگفا که یک سیستم وبلاگ دهی است.
    خواهش می کنم بنده رو راهنمایی کنید ..
    خیلی ممنون می شم که بنده رو از طریق ایمیلم راهنمایی کنید
    باز هم تشکر به خاطر آموزش های مفیدی که دادین.

  3. علی ز می‌گوید:

    از cpanel API برای اضافه و حذف sundomain می تونید براحتی استفاده کنید!
    جستجو بزنید : cpanel api create sub domain

  4. احسان حسام می‌گوید:

    با سلام ، واقعا به جرات می تونم بگم که وبسایت شما یکی از چندین وبسایت های پر محتوایی بودند که در زمینه برنامه نویسی در داخل کشور مشاهده کردم. واقعا کارتون عالیه و امیدوارم همینجور ادامه دهید.

    چند وقت هست که در زمینه ایجاد ساب دومین به صورت خودکار در زبان PHP جستجو می کنم و تنها چیزی که عایدم شد همین ایجاد ساب دومین از طریق API سی پنل و همینطور ایجاد از طریق htaccess به صورت مجازی.
    راستش من روی برنامه ای کار میکردم که بسیار شبیه سیستم های وبلاگ دهی مانند بلاگفا بود. کاربر بعد از ثبت نام می توانست وبلاگی به شکل : user.domain.com داشته باشد. و در ضمن چندین سیستم دیگر مثل سیستم ثبت نام به صورت ماژول برای هر کاربری به صورت جداگانه در وبلاگ قابل دسترسی بود. یعنی هر کاربر می توانست برای وبلاگ خود عضو داشته باشد و می توانست برای اعضا محدودیت ایجاد کند و یا ….
    الان مشکل من اینجاست که چگونه و با کمک کدام معماری برنامه نویسی می توانم همچین سیستمی را پیاده کنم؟
    اگر به صورت مجازی سابدومین ساخته شود چگونه می توان برای هر کاربر ماژول هایی مثل ماژول ثبت نام داشته باشیم که خللی در برنامه اصلی ایجاد نکند؟
    آیا سیستم های بلاگ دهی مثل بلاگفا هم از سابدومین های مجازی استفاده می کنند یا سابدومین رسما به صورت فولدر ساخته می شود؟
    توصیه شما برای نوشتن همچین برنامه ای چیست؟

    با تشکر
    احسان حسام

    • امیرمسعود ایرانی می‌گوید:

      با سلام و سپاس از لطف شما

      برای ساختن سیستمی مثل وبلاگ بهتر است از ساختن شاخه برای هر کاربر خودداری شود
      علاوه بر فضایی که هر شاخه به خود اختصاص خواهد داد، ایجاد مسیرهای مجازی مستلزم راه‌اندازی مجدد آپاچی است که خودش می‌تواند مشکل‌ساز شود

      بهتر است با کمک نشان * تمامی زیردامنه‌ها را به php هدایت کنید و برنامه را طوری بنویسید که برای نمایش هرگونه اطلاعات ابتدا زیردامنه را بررسی کند

      یک راه حل دیگر هم استفاده از WordPress و ایجاد افزونه‌های دلخواه برای این سیستم است
      وردپرس با انجام چند تغییر قابلیت استفاده به صورت چند وبلاگی را در خود دارد

      با سپاس

  5. محمد رهنما می‌گوید:

    سلام . اول از همه ممنون و مچکرم برای سایت خوبتون و وقتی که برا ما میزارید
    من دو تا مشکل دارم
    ۱- یکی ایجاد ساب دامین خودکار با پی اچ پی هستش مثل سرویس های وبلاگ دهی blogfa.com
    2- موضوع دوم تنظیم آی پی مختلف برای بینهایت دامین مثل s2a.ir
    ممنون اگه جواب بدید

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      در مورد اول اطلاعات لازم در کامنت‌های بالایی موجود است.
      در مورد دوم هم ظاهرا این سایت یک redirector است
      یعنی به جای نمایش اطلاعات وبلاگ به کاربر، او را به یک نشانی جدید هدایت می‌کند
      لطفا در صورت تمایل به ادامه‌ی گفتگو از ایمیل استفاده کنید
      amibct در gmail
      با تشکر

  6. محمد جواد می‌گوید:

    سلام

    اولا بابت توضیحات کاملتون تشکر می کنم

    بعد یه سوال: برای ایجاد زیردامنه بعد از اضافه کردن عباراتی که گفتید آیا باید عبارات مربوط به localhost رو حذف کرد؟ چون بعد از اضافه کردن برای باز کردن localhost با خطا مواجه شدم

    باز هم تشکر

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      نباید نیازی به حذف localhost باشد
      اگر با مشکلی مواجه هستید، شاید یک بخش از تنظیمات را درست انجام ندادید
      چون کدهایی که در بالا نوشتم، آزمایش شده هستند

  7. رحیمه می‌گوید:

    سلام

    اولا از انجنیر مسعود تشکر میکنم بابت سایت خوب تون

    مشکل

    یک پروژه دارم که عنوان اش آپاچی سرور میباشد که شامل معرفی ، نصب ،پیکربندی ، امنیت و بهینه سازی میباشد
    حال در پیکربندی گیر ماندم نمیدونم که از کجا شروع کنم یه لطفی کنید رهنمایی کنید. با آپاچی هیچ کار هم نکرده ام نمیدونم که پیش فرض آپاچی چه است؟ تشکر

    • امیرمسعود ایرانی می‌گوید:

      با سلام و تشکر
      حقیقتش منبع کامل و جامعی به زبان فارسی سراغ ندارم ولی با جستجو توی گوگل مطالب زیادی در مورد تنظیمات آپاچی پیدا می‌کنید
      اگر تا حدودی زبان انگلیسی را هم متوجه بشوید، مطالب و راهنما به زبان انگلیسی فراوان است
      با سپاس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>