ความเข้าใจในการสร้าง virtualhost ของ apache2 web server บน ubuntu 14.04 server ฉบับ workshop

ถ่ายทอดความเข้าใจในการสร้าง virtualhost ของ apache2 web server บน ubuntu 14.04 server ฉบับ workshop พร้อมตัวอย่างติดตั้ง phpmyadmin และ joomla site เป็น virtualhost -:เกรินนำ:- การเปลี่ยนจาก ubuntu 12.04 server ไปเป็น ubuntu 14.04 server เมื่อเร็วๆนี้ ส่งผลให้มีการเปลี่ยนแปลงวิธีการ config virtualhost บน Apache2 web server เพราะว่า Apache2 web server (2.4.x ขึ้นไป) เช่น 2.4.7 ที่มาพร้อม ubuntu 14.04 server จะมีการจัดการเรื่อง Document root ที่แตกต่างจากเวอร์ชั่นที่ต่ำกว่า เช่น Document root จะอยู่ที่ /var/www/html แทนที่จะเป็น /var/www เหมือนเดิม ดังนั้นเมื่อทำ virtualhost จึงต้องมีการเลือกวางไดเรกทอรีของเว็บเพจที่จะติดตั้ง ตามความคิดเห็นของผมคิดว่าสามารถเลือกวางได้เป็น 2 แบบ แบบที่ 1 วางไว้ที่ /var/www/html/ หรือ แบบที่ 2 วางไว้ที่ /var/www/ มาดูกันครับว่าจะต้องทำอย่างไรบ้าง เริ่มต้นที่หลังจากติดตั้ง ubuntu 14.04 server เสร็จ พร้อมทั้งได้ติดตั้ง packages LAMP หากไม่แน่ใจก็ตรวจสอบ/ติดตั้งเพิ่มด้วยคำสั่ง sudo tasksel ในบทความนี้มีการอ้างถึง editor ที่ใช้แก้ไขไฟล์ชื่อ vi (ผู้เขียนถนัดและชอบ) หากไม่คุ้นเคยวิธีใช้ก็ให้เปลี่ยนเป็น editor ชื่อ nano ซึ่งจะเป็น full screen editor หากต้องการทดสอบทำตามไปด้วย ให้ดาวน์โหลด LSA-router.ova จาก http://ftp.psu.ac.th/pub/psulab/LSA-II/ แล้วนำไป import เข้าโปรแกรม Oracle VM VirtualBox จากนั้น Start VM LSA-router (IP ที่ใช้คือ 10.0.100.1 เป็นทั้ง NAT router, DNS server และ DHCP server) แล้วก็สร้าง New VM ขึ้นมา 1 ตัว โดยตั้งค่า Network เป็นแบบ Internal network และมีค่า name คือ intnet พร้อมทั้งติดตั้ง Ubuntu 14.04 server ให้เสร็จ โดยตั้งค่า IP 10.0.100.9 1.แบบใช้ NameVirtualHost -:การตรวจสอบความพร้อมของ apache2 web server:- เข้าไปที่ไดเรกทอรี mama@ubuntu:$ cd /var/www/html/ เริ่มต้น apache2 web server จะมีไฟล์ index.html มาให้ mama@ubuntu:/var/www/html$ ls index.html ทดสอบด้วยคำสั่ง w3m ได้ mama@ubuntu:/var/www/html$ w3m http://127.0.0.1 เห็นหน้าเว็บเพจ default แสดงข้อความ Apache2 Ubuntu Default Page It work! กด Ctrl+c เลิกดู ลองสร้างไฟล์ test.php mama@ubuntu:/var/www/html$ sudo vi test.php เพิ่มบรรทัด 1 บรรทัด <?php phpinfo() ?> ผลลัพธ์จะมีไฟล์เพิ่มขึ้น

Read More »

การสร้าง virtualhost บน Apache2 web server (2.4.x ขึ้นไป)

ขอเล่าเรื่องการสร้าง virtualhost บน Apache2 web server (2.4.x ขึ้นไป) อย่างง่ายๆ แต่ก็เป็นผลมาจากการเปลี่ยนจาก ubuntu 12.04 server ไปเป็น ubuntu 14.04 server เมื่อเร็วๆนี้ Apache 2.4.x เช่น 2.4.7 ที่มาพร้อม ubuntu 14.04 server จะมีการจัดการเรื่อง Document root ที่แตกต่างจากเวอร์ชั่นที่ต่ำกว่า เช่น Document root จะอยู่ที่ /var/www/html แทนที่จะเป็น /var/www เหมือนเดิม ดังนั้นเมื่อทำ virtualhost จึงต้องมีการวางไดเรกทอรีไว้ที่ /var/www และทำ virtualhost เช่น www.example.com และชี้ documentroot ที่ /var/www/www.example.com มาดูกันครับว่าจะต้องทำอย่างไรบ้าง เริ่มต้นที่หลังจากติดตั้ง ubuntu 14.04 เสร็จแล้ว พร้อมทั้งได้ติดตั้ง packages LAMP หากไม่แน่ใจก็ตรวจสอบด้วยคำสั่ง sudo tasksel ในบทความมีการอ้างถึง editor ที่ใช้แก้ไขไฟล์ชื่อ vi หากไม่คุ้นเคยวิธีใช้ก็ให้เปลี่ยนเป็นคำว่า nano จะเป็น full screen editor ใช้ง่ายกว่า ตรวจสอบว่าเรามีโดเมนเนมแล้ว (check domain name) mama@ubuntu:$ host www.example.com www.example.com is an alias for iserver.example.com. iserver.example.com has address 10.0.100.9 เข้าไปที่ไดเรกทอรี mama@ubuntu:$ cd /var/www/ สร้างไดเรกทอรีชื่อ www.example.com mama@ubuntu:/var/www$ sudo mkdir www.example.com สร้างไฟล์ตัวอย่างของเว็บไซต์ mama@ubuntu:/var/www$ sudo vi www.example.com/index.php มีข้อความเพียง 1 บรรทัด <?php echo “WWW Hello, world!”; ?> ใช้คำสั่งแสดงรายการ จะเห็น mama@ubuntu:/var/www$ ls www.example.com/ index.php ใช้คำสั่งแสดงข้อมูลในไฟล์ จะเห็น mama@ubuntu:/var/www$ cat www.example.com/index.php <?php echo “WWW Hello, world!”; ?> เข้าไปไดเรกทอรีสำหรับจัดการ config site mama@ubuntu:/var/www/html$ cd /etc/apache2/sites-available ใช้คำสั่งแสดงรายการ จะเห็น mama@ubuntu:/etc/apache2/sites-available$ ls 000-default.conf  default-ssl.conf สร้างไฟล์สำหรับ config virtual host ชื่อมี .conf ต่อท้ายด้วย mama@ubuntu:/etc/apache2/sites-available$ sudo cp 000-default.conf www.example.com.conf แก้ไขไฟล์ www.example.com.conf mama@ubuntu:/etc/apache2/sites-available$ sudo vi www.example.com.conf แก้ไขเฉพาะบรรทัดข้างล่างนี้ NameVirtualHost www.example.com:80 <VirtualHost www.example.com:80> ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/www.example.com สั่งให้ apache2 รับ site ใหม่ mama@ubuntu:/etc/apache2/sites-available$ sudo a2ensite www.example.com สั่ง reload apache2 mama@ubuntu:/etc/apache2/sites-available$ sudo service apache2 reload ทดสอบ www.example.com ด้วยคำสั่ง w3m mama@ubuntu:/etc/apache2/sites-available$ w3m http://www.example.com จะเห็นหน้าเว็บเพจ WWW Hello, world! กด

Read More »

วิธีตั้งค่า Apache web server 2.4.x แตกต่างจาก 2.2.x

เก็บตกจากวันวานเปิดอบรม Workshop Linux System Administration II (WS-LSA2) ที่ศูนย์คอมฯ 2 วัน ผมเตรียมเอกสาร workshop วิธีตั้งค่าหลายๆเรื่องบน ubuntu 12.04 แต่พอดีกับที่ ubuntu 14.04 ออกมาแล้ว จึงนำ ubuntu 14.04 มาให้ผู้เรียนใช้ติดตั้ง มันก็ไม่มีอะไรแตกต่างไปจาก ubuntu 12.04 ตั้งแต่เริ่มต้น installation จนกระทั่งมาถึงเรื่องที่เราจะตั้งค่าเกี่ยวกับ Apache web server ซึ่งทำให้ต้องแก้ไขเอกสารประกอบการสอนกันสดๆตอนนั้นเลย (ฮา) เพราะว่า Apache Web Server ที่อยู่ในแผ่น ubuntu 14.04 นั้นเป็นเวอร์ชั่น 2.4.7 ซึ่งมี Default Document Root อยู่ที่ /var/www/html ต่างจาก Apache Web Server เวอร์ชั่นก่อนหน้านี้ (2.2.x) ที่มี Default Document Root อยู่ที่ /var/www เป็นต้น พอจะสรุปได้ดังนี้ Apache Web Server 2.2.x ทำแบบนี้ 1.พื้นที่ default ของ Apache Web Server คือไดเรกทอรี /var/www หากจะติดตั้ง Joomla CMS เราจะเตรียมพื้นที่สำหรับติดตั้ง joomla ไว้ที่ไดเรกทอรี /var/www/testjoomla ด้วยคำสั่ง sudo mkdir -p /var/www/testjoomla 2.website config file จะอยู่ที่ไดเรกทอรี /etc/apache2/sites-available จะมีไฟล์ชื่อ default และ default-ssl มาให้ และหากจะสร้าง VirtualHost pma.example.com เราก็สร้าง config file ที่มีชื่อไฟล์อย่างไรก็ได้ เช่น /etc/apache2/sites-available/pma หลังจากนั้นเราก็ enable VirtualHost นี้ จาก config ที่เราสร้างขึ้นใหม่ โดยการใช้คำสั่ง sudo a2ensite pma แล้วก็สั่ง restart apache 3.เมื่อเข้าไปดูในไฟล์ default DocumentRoot จะอยู่ที่ /var/www 4.Apache2 config file จะอยู่ที่ /etc/apache2/conf.d สมมติว่าต้องการเพิ่มการป้องกัน joomla web server ด้วย config file ชื่อ jce จะต้องทำดังนี้ สร้างไฟล์ที่จะมีชื่ออย่างไรก็ได้ เช่น /etc/apache2/conf.d/jce แค่นี้ก็ได้แล้ว แล้วก็สั่ง restart apache และเมื่อจะไม่ใช้ config file jce นี้แล้ว ก็แค่ลบไฟล์นี้ทิ้ง แต่สำหรับ Apache Web Server 2.4.x วิธีการจะแตกต่างไป ดังนี้ 1.พื้นที่ default ของ Apache Web Server คือไดเรกทอรี /var/www/html หากจะติดตั้ง Joomla CMS เราจะต้องเตรียมพื้นที่สำหรับติดตั้ง joomla ไว้ที่ไดเรกทอรี /var/www/html/testjoomla ด้วยคำสั่ง sudo mkdir -p /var/www/html/testjoomla 2.website config file จะอยู่ที่ไดเรกทอรี /etc/apache2/sites-available จะมีไฟล์ชื่อ 000-default และ default-ssl มาให้ (ต่างจาก 2.2.x) และหากจะสร้าง VirtualHost pma.example.com เราก็ต้องสร้าง config file ที่มี

Read More »