منبع اصلی نوشتار زیر در این لینک قرار دارد

روش ساخت چند هاست مجازی در localhost

آیا قصد طراحی سایت دارید؟ آیا همزمان چند سایت را توسعه می‌دهید؟ آیا از نوشتن localhost در نوار آدرس مرورگر خود خسته شده‌اید؟ آیا دوست دارید به جای localhost بنویسید cool.com؟ آیا از این سوالات خسته شده‌اید؟ با ما باشید، با آموزشی دیگر از سری آموزش‌های دیگر.

خب، قصد دارم که دو تا هاست مجازی توی سیستمم درست کنم. یکی به آدرس blognevis.blog و یکی هم به آدرس blognevis.db که اولی همین وبلاگ هست که به صورت local روی سیستمم قرار داره، و دومی هم phpmyadmin هست که برای هندل کردن دیتابیس روی سیستمم نصب کردم. اما به جای اینکه بنویسم: localhost/phpmyadmin، فقط می‌نویسم: blognevis.db یا حتی می‌تونم از این هم کوتاه‌تر بنویسم، مثلا بنویسم: bnma.

در ادامه‌ی مطلب روش ساختن هاست‌های مجازی را بخوانید.

دقت کنید که اسم سایت‌ها رو طوری انتخاب کردم که با سایت‌هایی که واقعا توی اینترنت وجود دارند اشتباه نشن! مثلا فرض کن اسم وبسایت مجازی که توی سیستم می‌خوام بسازم رو بذارم google.com اونوقت وقتی توی مرورگر سیستم می‌نویسم google.com، به جای اینکه برم توی سایت گوگل، سایتی که توی سیستمم هست رو بهم نشون میده، که البته اگه بخواید کسی رو سر کار بذارید، یا مثلا پسورد یه نفر رو بدزدید، خب این کار خیلی هم خوبه، اما اگه قصد دارید که وبسایتتون رو توی localhost داشته باشید و اون رو توسعه بدید، بهتره که اسم وبسایت رو چیزی انتخاب کنید که با وبسایت‌های واقعی توی اینترنت اشتباه نشه.

این آموزش برای لینوکسه! (البته ویندوزیش خیلی فرق نمی‌کنه)

ابتدا باید apache رو نصب کرده باشید. نصب آپاچی کار سختی نیست. اما به نظر ساده‌ترین راه برای نصب آپاچی و mysql استفاده از نرم‌افزار tasksel هست. ابتدا tasksel رو نصب کنید.

sudo apt-get install tasksel
sudo tasksel

بعد از اجرای برنامه، از لیست نرم‌افزار‌هایی که ارایه کرده lamp رو انتخاب کنید و بعد ok رو بزنید، خود برنامه همه‌ی packageهای لازم رو پیدا می‌کنه و نصب می‌کنه.

hojjat : sudo – Konsole_002

بعد از نصب آپاچی و mysql حالا نوبت ساختن فولدر‌های مورد نیاز است.

sudo mkdir -p /var/www/blognevis.blog/public_html
sudo mkdir -p /var/www/blognevis.db/public_html
sudo chmod -R 755 /var/www
sudo chown $USER:$USER -R /var/www

فایل‌های خود را در فولدر public_html کپی کنید. باید اجازه‌ی دسترسی‌ها را هم درست کنیم تا بتوانیم فایل‌ها را در آن کپی کنیم. و دقت کنید که ‪$USER‬ همان نام کاربری شماست.

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

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/blognevis.blog.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/blognevis.db.conf

حالا توسط editor محبوب خود این فایل‌ها را باز کنید و خطوط زیر را در آن‌ها بنویسید، برای مثال من از vi استفاده می‌کنم، شما می‌توانید از nano استفاده کنید، و یا حتی از یک editor گرافیکی. البته دقت کنید که برای دسترسی به این فایل‌ها نیاز به اجازه‌ی کاربر ریشه داریم!

متن نهایی برای blognevis.blog به صورت زیر است:

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin [email protected]
        ServerName blognevis.blog
        ServerAlias bnb
        ServerAlias www.blognevis.blog
        DocumentRoot /var/www/blognevis.blog/public_html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

دقت کنید در قسمت alias من چند اسم دیگر هم معرفی کردم، که اگر در نوار آدرس bnb یا www.blognevis.blog را بنویسید هم همین وبسایت باز می‌شود.

متن نهایی برای blognevis.db هم به صورت زیر است:

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin [email protected]
        ServerName blognevis.db
        ServerAlias phpmyadmin
        ServerAlias www.blognevis.db
        DocumentRoot /var/www/blognevis.db/public_html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

حالا باید این فایل‌ها را به آپاچی معرفی کنیم:

sudo a2ensite blognevis.blog.conf
sudo a2ensite blognevis.db.conf

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

sudo vi /etc/hosts

و این خطوط را به آن بیفزاییم:

127.0.0.1       blognevis.blog
127.0.0.1       blognevis.db

و همچنین تمامی aliasهایی که در بالا برای هاست‌ها مشخص کردید نیز باید به همین صورت در این لیست قرار بگیرد و آی‌پی آن‌ها هم همین آی‌پی باشد. آی‌پی 127.0.0.1 در واقع آدرس آی‌پی سیستم خود ماست (اگر این نکته را نمی‌دانستید، احتمالا ساختن هاست مجازی هنوز برای شما خیلی زود است!! )

و در نهایت هم سرویس آپاچی را ری‌استارت می‌کنیم تا تمام تغییرات اعمال شود:

sudo service apache2 restart

این بود انشای من.

The post روش ساخت چند هاست مجازی در localhost appeared first on گاه‌نوشت‌های یک وبلاگ‌نویس.



برچسب ها : , , , ,