การทำ virtual host บน ubuntu

ubuntuSunday, February 16, 2014 - 17:08

หลายๆครั้งถ้าผมจะพัฒนาเว็บอะไรก็ตาม ผมมักจะทำ virtual host ใน ubuntu เสมอเพื่อให้ง่ายต่อการเรียกเว็บนั้นๆ ซึ่งโดยปกติก็จะเรียกแบบนี้ http://localhost/{โฟลเดอร์เว็บ} บนเว็บบราวเซอร์ แต่เพื่อให้ง่ายต่อการเรียกใช้งาน และพัฒนามัน ผมก็จะผูกมันตัวเว็บเข้ากับชื่อโดเมนที่ตั้งเองในเครื่องเลยง่ายดี... เช่น http://{ชื่อเว็บ}.local

วิธีการทำ virtual host บน ubuntu

  1. เข้าไปยัง directory ดังนี้
    sudo cd /etc/apache2/sites-available
  2. ก็อปปี้ไฟล์ 000-default.conf ให้เป็นชื่อเว็บที่เราต้องการเรียกใช้งานเช่น ndt.localhost.conf
    sudo cp 000-default.conf ndt.localhost.conf
  3. แก้ไขไฟล์ ndt.localhost.conf
    sudo gedit ndt.localhost.conf
    <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 webmaster@localhost
            DocumentRoot /var/www/ndt
            ServerName  ndt.localhost
            ServerAlias www.ndt.localhost

            <Directory /var/www/ndt>
                    Options Indexes FollowSymLinks
                    AllowOverride All
                    Require all granted
            </Directory>

            # 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> 

  4. จากตัวอย่างไฟล์ด้านบนให้เราแก้ไขตามนี้ครับ
    DocumentRoot /var/www/ndt
    ServerName ndt.localhost
    ServerAlias www.ndt.localhost

    DocumentRoot คือ ที่อยู่ของไฟล์เว็บของเรา
    ServerName คือ ชื่อโดเมนที่เราจะเรียกใช้

    <Directory /var/www/ndt>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>

    แก้ Directory ให้ตรงกับที่อยู่ของไฟล์เว็บเรา เสร็จแล้วบันทึกแล้วก็ออกมา

  5. จากนั้นทำการแก้ไข hosts บนเครื่อง
    sudo gedit /etc/hosts
    127.0.0.1       localhost
    127.0.0.1       ndt.localhost
    127.0.0.1       mgr.localhost
    127.0.1.1       snappy-laptop

    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

    โดยให้เราเพิ่มชื่อเว็บที่เราต้องการเรียกใช้งานเหมือนกับไฟล์ด้านบน ตามตัวอย่างก็คือ ndt.localhost เสร็จแล้วบันทึกและก็ออกมา

  6. ทำการเปิดการใช้งาน module vhost_alias
    sudo a2enmod vhost_alias
  7. เปิดการใช้งานชื่อเว็บที่เราจะเรียกใช้
    sudo a2ensite ndt.localhost
  8. restart apache
    sudo /etc/init.d/apache2 restart

จบละครับเพียงเท่านี้เราก็จะสามารถใช้งาน http://ndt.localhost ได้แล้ว

แนะนำให้อ่าน

แสดงความคิดเห็น