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

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

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

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

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

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

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

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

تنظیمات کارساز آپاچی در فایلی با نام «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» را مطابق نیاز خود تغییر دهید.

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

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

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

  • احسان حسام می‌گوید:

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

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

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

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

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

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

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

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

      با سپاس

  • سلام

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

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

    باز هم تشکر

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

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

  • سلام

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

    مشکل

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

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

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

دیدگاهتان را بنویسید

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