การทำ virtual host บน ubuntu

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

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

  1. เข้าไปยัง directory ดังนี้
    [bash]sudo cd /etc/apache2/sites-available[/bash]
  2. ก็อปปี้ไฟล์ 000-default.conf ให้เป็นชื่อเว็บที่เราต้องการเรียกใช้งานเช่น ndt.localhost.conf
    [bash]sudo cp 000-default.conf ndt.localhost.conf[/bash]
  3. แก้ไขไฟล์ ndt.localhost.conf
    [bash]sudo gedit ndt.localhost.conf[/bash]
    [code] # 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 Options Indexes FollowSymLinks AllowOverride All Require all granted # 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 [/code]
  4. จากตัวอย่างไฟล์ด้านบนให้เราแก้ไขตามนี้ครับ
    [code] DocumentRoot /var/www/ndt ServerName ndt.localhost ServerAlias www.ndt.localhost [/code] DocumentRoot คือ ที่อยู่ของไฟล์เว็บของเรา
    ServerName คือ ชื่อโดเมนที่เราจะเรียกใช้
    [code] Options Indexes FollowSymLinks AllowOverride All Require all granted [/code] แก้ Directory ให้ตรงกับที่อยู่ของไฟล์เว็บเรา เสร็จแล้วบันทึกแล้วก็ออกมา
  • จากนั้นทำการแก้ไข hosts บนเครื่อง
    [bash]sudo gedit /etc/hosts[/bash]
    [code] 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 [/code] โดยให้เราเพิ่มชื่อเว็บที่เราต้องการเรียกใช้งานเหมือนกับไฟล์ด้านบน ตามตัวอย่างก็คือ ndt.localhost เสร็จแล้วบันทึกและก็ออกมา
  • ทำการเปิดการใช้งาน module vhost_alias
    [bash]sudo a2enmod vhost_alias[/bash]
  • เปิดการใช้งานชื่อเว็บที่เราจะเรียกใช้
    [bash]sudo a2ensite ndt.localhost[/bash]
  • restart apache
    [bash]sudo /etc/init.d/apache2 restart[/bash]
  • จบละครับเพียงเท่านี้เราก็จะสามารถใช้งาน http://ndt.localhost ได้แล้ว

    Add new comment