برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

ساختن هاست و دامنه مجازی در آپاچی در ویندوز و لینوکس

به نام دانای بر حق

مقدمه

آپاچی معروف ترین و پر کاربرد ترین برنامه وب سرور هستش که با PHP به صورت خیلی خالصانه ای رفیق هستش 😀 و اما زمانی که شما بخواین روی هاست مجازی خودتون که مثلا با xampp یا wampp یا هر چیز دیگه وجود داره یه هاست مجازی با دامنه داشته باشید، شاید اول فک کنید این مورد غیر ممکن باشه اما اینطور نیستش یعنی شما مثلا میتونید یه سایت مجازی به اسم خودتون رو مدیریت کنید به همین سادگی و دیگر برای راهندازی یک وبسایت مجبور نباشید که بنویسد http://localhost/mysite میتونید اون رو تبدیل به این کنید: http://mysite.com , خیال خودتون رو راحت کنید، البته این کار یه سری درد سر هم داره که باید دقت داشته باشید که موجب بر هم ریختگی سیستم نشوید، چرا روی فایل حساس قرار هستش کار کنیم. اما ما چون xampp از همه سیستم های قوی تر، پر کاربرد تر و قابل اجرا در اکثر سیستم عامل ها هستش زمپ رو برای آموزش استفاده می کنیم. و از لینوکس نسخه ubuntu در این آموزش یاد می کنیم.

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

مختصر مراحل:

  1. تعیین ip برای دامین مجازی
  2. ساختن فولدر هاست در سیستم
  3. تغییر در تنظیمات آپاچی (فقط یک بار)
  4. اضافه کردن هاست مجازی
  5. و ریست کردن سرور آپاچی

تعیین ip برای دامین مجازی

خب دامنه ها در واقع نقش یک اشاره گر رو دارند، یعنی به یک آدرس ip اشاره می کنند، اون آی پی سیستم میزبان یا همون هاست هستش و اما به طور معمول وقتی شما به یک دامنه می خواید دسترسی داشته باشید، سیستم عاملتون آدرس ip رو به صورت خودکار در میاره برای این که این رو متوجه بشید میتونید از هر دامنه ای که می خواین ping بگیرید برای این کار تو ویندوز cmd رو باز کنید و تو لینوکس terminal رو با میانبر ctrl+alt+t که باز شد رشته زیر رو تایپ کنید:

ping 4xmen.ir

که به شما آی پی مقصد رو هم نشون میده، اما برای این که آی پی مقصد رو عوض کنید، همه سیستم عامل ها روش های مختلفی دارند که دستی این کار رو انجام بدید بدون دغدغه و اذیت شدن ولی باید توجه کنید که اگر یک دامین دستی ست شود دیگر شما نمیتوانید آنچه در حقیقت در دامنه ست شده را ببیند برای این کار باید فایل hosts رو تغییر بدید.

باز کردن فایل hosts در لینکوس

ترمینال رو باز کنید و کد زیر رو بزنید:

sudo gedit

بعد از وارد کردن پسورد ایدیتور متن در حالت دسترسی روت باز میشود حال فایل زیر رو باز کنید:

/etc/hosts

بعد که باز شد به قسمت تغییر فایل hosts در همین مقاله مراجعه کنید

باز کردن فایل hosts در ویندوز

برای این کار روی notepad کلیک راست کنید و Run As Administrator را بزنید و فایل زیر را از طریق open باز کنید :

C:/windows/system32/drivers/etc/hosts

در اینجا فرض شده است ویندوز شما بر روی درایو c نصب است حال به ادامه مقاله توجه کنید

ویرایش فایل hosts در ویندوز و لینوکس

برای ویرایش این فایل خیلی ساده میتونید با اضافه کردن ابتدا ip و سپس دامنه به هدف خودتون برسید که معمولا برای اون یه چند تا نمونه تو خوده فایل هستش به عنوان مثال من میخوام روی لوکال هاست خودم دامنه mysite.com رو بالا بیارم برای این کار این رو به آخرین خط اضافه می کنم و فایل رو ذخیره می کنیم:

۱۲۷.۰.۰.۱	mysite.com

خیلی ساده دیگر این سایت بر لوکال شما اشاره دارد با ping گرفتن از دامنه میتوند مطمئن بشوید از این موضوع و اما برای غیر فعال کردنش با گذاشتن یک # اول این خط میتوانید آن را غیر فعال کنید.

 اضافه کردن هاست مجازی به Apache

باز کردن پیکربندی فایل اصلی آپاچی در ویندوز:

برای ویندوز شما باید فایل اصلی آپاچی رو از فولدر اون پیدا کنید که داخل پوشه Xampp هستش که نصب کردید با نام:

C:\xampp\apache\conf\httpd.conf

این فایل رو باز کنید.

باز کردن پیکربندی فایل اصلی آپاچی در لینکوس:

برای این کار وارد فولدر زیر بشید که به صورت پیش فرض است اگر تغییر نکرده باشه:

/opt/lampp/etc

و فایل زیر رو باز کنید:

httpd.conf
فعال کردن vhost در ویندوز و لینوکس:

توجه کنید که این خط :

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

با یه # در ابتداش غیر فعال نباشد درست که شد فایل رو ذخیره کنید.

باز کردن فایل کانفیگ هاست مجازی آپاچی در ویندوز:

برای این  فایل زیر رو باز کنید:

C:\xampp\apache\conf\extra\httpd-vhosts.conf

بعد از این که این فایل رو باز کردید برای اولین بار کردید این خط رو حتما از حالت کامنت خارج کنید یعنی # ابتداش رو حذف کنید:

##NameVirtualHost *:80

یعنی به این شکل بشه:

NameVirtualHost *:80
باز کردن فایل کانفیگ هاست مجازی آپاچی در لینوکس:

برای باز کردنش به این قسمت مراجعه کنید:

/opt/lampp/etc/extra/httpd-vhosts.conf

و اونو با هر چیزی که دوست داشته باشید باز کنید

ایجاد یک هاست مجازی در کافنیگ هاست مجازی ویندوز و لینوکس

خب حالا همه چیز به خوبی انجام شد باید هاست مجازی اضافه کنید برای هاست مجازی خود شما دو مولفه نیاز دارید ابتدا آدرس اسیت مجازی که در فایل hosts اضافه کردید به عنوان مثال mysite.com یک گزینه برای آدرس ما می باشد و حال یک پوشه ما باید در بخش htdocs باید داشته باشیم ما مثلا یه فولدر به نام mysite اضافه می کنم و حتما نباید هم نام دامنه باشه اما بهتر این طور باشه.

خب حالا برای اضافه کردن به کانفیگ آپاچی خودش مثال داره کامنت کرده مثل این:

##<VirtualHost *:80>
    ##ServerAdmin postmaster@dummy-host.localhost
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.localhost"
    ##ServerName dummy-host.localhost
    ##ServerAlias www.dummy-host.localhost
    ##ErrorLog "logs/dummy-host.localhost-error.log"
    ##CustomLog "logs/dummy-host.localhost-access.log" combined
##</VirtualHost>

اما با این کاری نداریم با این که میتونیم از الگوش استفاده کنیم از الگوی ساده اش استفاده می کنیم:

آدرس لینوکسی:

<VirtualHost *:80>
    DocumentRoot "/opt/lampp/htdocs/mysite"
    ServerName mysite.com
</VirtualHost>

آدرس ویندوزی:

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/mysite"
    ServerName mysite.com
</VirtualHost>

 

ما دو قسمت داریم که باهاش کار داریم یکیdocumnet root هستش آدرس فولدر اون سایت قرار میگیره و دیگیری server name هستش که دامنه درش قرار میگیره برای که در اینجا mysite.com رو در نظر گرفتیم.

 

خب نکات این راهندازی:

  1. برای هر تغییر تو کانفیگ های آپاچی باید اون رو restart کنید تا تغییرات اعمال شود.
  2. برای ویندوز این راهندازی مجدد رو از طریق services و پروسه apache2 انجام دهید
  3. برای لینوکس از طریق ترمینال با دستور sudo /opt/lampp/lampp restart انجام دهید
  4. اگر حصوله نداشتید کل سیستم رو restart کنید که خودش آپاچی هم ریست شه.
  5. برای تغییر فایل ها در ویندوز برخی جاها تو ویندوز xp به بعد نیاز به دسترسی admin دارید و در لینوکس شاید اجازه ویرایش نداشته باشید برای ویندز که مشخص هستش که چه باید بکنید باید ادیتور رو Rus As Administrator اجرا کنید و برای لینوکس میتونید کد زیر رو تو کامند لاین بزنید: sudo chmod 0777  /opt/lampp/etc -R به همین سادگی
  6. اگر با آپاچی استارت نشد حتما یه جای پیکربندی رو بد خراب کردید اون به حالت قبلی برگردونید وگرنه مجبورید دوباره xampp رو نصب کنید ما معمولا یه بکاپ از کافنیگ ها در برخی از نسخ هستش مثل این آدرس در لینوکس بکاپ هاس :/opt/lampp/etc/original
  7. هر سوالی داشتید بپرسید اگر شد حتما جواب خواهم داد

امیدوارم دوباره مثل قبل با xmen حال کرده باشید.

 


انتشار

در

,

توسط

برچسب‌ها:

نظرات

18 پاسخ به “ساختن هاست و دامنه مجازی در آپاچی در ویندوز و لینوکس”
  1. بنده خدا

    سلام به xmenی های عزیز
    خداقوت
    واقعا دمتون گرم
    اول خواستم به لایک دادن اکتفا کنم،ولی گفتم شاید فکر کنید کسی به فکرتون نیست،نظر دادم
    درسته که هر از چند گاهی میام به سایتتون سر میزنم،ولی خب همین تعداد کمش هم باعث میشه کلی انرژی بگیرم
    شما به کار خودتون ادامه بدید و بدونید که خاطرخواهانی دارید که دورادور،کارتون رو دنبال میکنند
    ان شاءالله خدا اجرتون بده
    دوستدار شما
    یه بنده خدا

    1. Mahdiam

      خواهش فرمایشات شما موجب قوت قلب ماست.
      بسیار ممنون

  2. درود
    مطلب اموزنده و مفیدی بود
    درضمن سایت خیلی خوبی هم دارید

  3. با سلام
    اگر بخواهیم به کسی یه url یا ip بدیم چی کار باید بکنیم؟

    1. Mahdiam

      متوجه نمیشم یعنی چی؟ و ربطش به بحث ما؟

  4. محمد جواد

    سلام . مطلب بسیار جالبی بود اما به یه مشکل بر خوردم .

    از زمانی که مرحله ” فعال کردن vhost در ویندوز و لینوکس: ” رو انجام میدم دیگه apache توی xampp فعال نمیشه و یه ارور میده .

    مشکل از چیه ؟

    1. Mahdiam

      مشخصا شما جایی کاری کردید که چیز غیر قابل تعریف مثل syntax error برنامه نویسی پیش اومده
      فایل کانفیگ رو از ابتدا ریستور کنید و v-host رو بعد از اول تغییرات رو ایجاد کنید.

  5. خیلی عالی بود..مخصوصا قسمت لینوکسش..خیلی دنبالش بودم.مرسی

  6. Nm

    سلام ممنون خیلی خوب بود من تنظیمات را انجام دادم برا یک پروژه ام حالا دیگه فایل های دیگرم روی لوکال باز نمیشن یعنی میزنم localhost/mytest دیگه خروجی ندارم

    1. ‌A1Gard

      برای همین کار فرض کنین localhost یک دامنه است و htdocs مکان اون تنظیمات را ابتدای v host اضافه کنین به مشکلتون برطرف میشود.

  7. mehdif12

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

    1. ‌A1Gard

      فولدر مجازی رو زیر مجموعه فولدر اصلی قرار بدین تا مشلتون حل شه.

  8. mohammad_yeganeh13

    دروود به شما
    واقعا ممنون از سایت خوبتون و مطلب مفیدتون در رابطه با xampp
    من انجامش دادم.
    خیلی دنبالش میگشتم .مرسی تشکر

  9. اقا دستتون درد نکنه خسته نباشید عالیییی بود

  10. درود
    چندین روزه گیر کردم تو این یه مورد . لطفا راهنمایی کنید چطور باید این مشکل رو حل کنم . باور کنید بیشتر از یک هفته است به زبان انگلیسی و فارسی و المانی دارم سرچ میکنم . به خیلی جواب های متنی و تصویری هم رسیدم . اما مشکلمو حل نکرد .

    مشکل نداشتن اچ تی تی پی اس یا همون پرتکل امنیتی ۴۴۳ است که اجازه نمیده دامنه من بصورت امن باز بشه روی لوکال هاست .
    ببینید :
    Your connection is not private
    Attackers might be trying to steal your information from aoc.dev (for example, passwords, messages, or credit cards). Learn more
    NET::ERR_CERT_COMMON_NAME_INVALID

    داخل این دامنه یا هاست مجازی هیچ فایلی وجود نداره و فقط یک اینکدس دات پی اچ پی ساده با یه اکو سلاام است و بس .
    نه تو ویندوزم کار کرد و نه لینوکس . توی فایل وی هاست هم ادد کردم اس اس ال ها رو . و اس اس ال هم ساختم . .crt .key ولی اکتفا نمیکنه و همش میگه مشکل داره .

    1. ‌A1Gard

      درود و خوش آمد باید توجه داشت که
      ابتدا به ساکن هیچ دامنه self-signed به صورت مستقیم باز نمی شود یعنی باید از add exception اضافه کنین یعنی خودتون تایید کنید که میخواهید این دامنه براتون https باز شود لذا هیچ شرکت ssl ای تایید کار شما رو در نظر نمیگیرد.
      و نکته بعدی این که شما میبایستی فایل .pem را حتما روی همون هاست و با توجه به فایل کلیدی خود بسازید.

      پیشنهاد میکنیم این آموزش زیر رو بهش توجه کنین مناسب هست:

      https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04

  11. تشکر از شما
    فقط داخل سایتتون مطلبی درباره کانفینگ سرور های ویندوزی مشاهده نکرردم اگر ممکن هست بگذارید.

  12. حسین

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

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

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