วิธีติดตั้งเซิร์ฟเวอร์ Ubuntu 10.04

ระบบปฎิบัติการสายพันธ์ลีนุกซ์ที่ไม่ใหญ่โตมากมาย สังเกตได้ว่า ใช้ซีดีแค่แผ่นเดียวเท่านั้น การติดตั้งและใช้งานค่อนข้างง่ายกว่าลีนุกซ์สายพันธ์อื่น จึงเหมาะสำหรับองค์กรขนาดเล็กถึงกลางที่ไม่ต้องการอะไรที่ยุ่งยากซับซ้อน

เปรียบเทียบ Windows กับ Ubuntu

OS Database Web Application รวมค่าลิขสิทธิ์
Windows ชุด Server SQL Server IIS + ASP + .NET หลักหมื่นถึงแสนต่อเครื่อง
Ubuntu ชุด Server MySQL, PostgreSQL Apache + PHP + Mono ฟรีทุกเครื่อง

ดาวน์โหลด แผ่นซีดี (ไฟล์ .iso) ฟรีได้ที่ http://www.ubuntu.com

ว่าแต่…ทำไมผมยังชอบใช้วินโดวส์ ? ” วินโดวส์ทำเรื่องยากให้ง่าย ลีนุกซ์ทำเรื่องง่ายให้ (ยุ่ง) ยาก ”

ขั้นตอนการติดตั้งและปรับแต่งลีนุกซ์ Ubuntu 10.04 แบบรวบรัด

หากท่านใดต้องการติดตั้งลินุกซ์บนวินโดวส์ในเครื่องเดียวกัน แนะนำให้ติดตั้งโปรแกรมประเภท Virtual Machine อาทิ Vmware ชุด Workstation (ลิขสิทธิ์) ชุด Player (ฟรี), Microsoft Virtual PC (ฟรี), VirtualBox (ฟรี) ฯลฯ

I. ติดตั้ง Ubuntu ชุด Server

  • เลือก Language: English (ไม่แนะนำให้เลือก Thai เพราะจะยุ่งยากในการคอนฟิกภาษาไทยในภายหลัง)
  • เลือก Install Ubuntu Server
  • เลือก Language: English (ขั้นตอนนี้กำหนดดีฟอลต์ locale เป็น en_US.UTF-8)
  • เลือก Country: Other
  • เลือก Region: Asia/Thailand
  • เลือก Keyboard: Thailand
  • ตั้งชื่อเครื่อง (Hostname) อะไรก็ได้ แต่อย่าให้ชื่อซ้ำกับเครื่องอื่นในวงแลน ตัวอย่าง ubuntu
  • แบ่ง Partition เลือก use entire disk
  • กำหนดชื่อผู้ใช้งานและรหัสผ่าน (Username/Password) ตัวอย่าง somchai/1234โปรดอ่าน: ***สำคัญมาก จดไว้อย่าลืม เพราะต้องใช้ในการล็อกอินเข้าใช้งานเในครั้งแรก
  • เลือก No automatic updates
  • ติดตั้ง LAMP, OpenSSH, SAMBAสำหรับ PostgreSQL นั้น หากต้องการให้ภาษาไทยถูกต้อง อย่าคลิกเลือกในขั้นตอนนี้ (ดูวิธีติดตั้งในส่วนถัดไป)

    Ubuntu 10.04 (Lucid Lynx) : LAMP = Linux 2.6.32-21 + Apache 2.2.14 + Mysql 5.1.41 + PHP 5.3.2

  • กำหนดรหัสผ่านของ MySQL root ตัวอย่าง 1234โปรดอ่าน: ***สำคัญมาก จดไว้อย่าลืม เพราะต้องใช้ในการล็อกอินเข้าใช้งาน MySQL
  • รอ…จนติดตั้งเสร็จ (ประมาณห้านาที)
  • เข้าสู่หน้าจอล็อกอินใส่ชื่อผู้ใช้งานและรหัสผ่านที่กำหนดไว้ตอนต้น ตัวอย่าง somchai/1234
  • ตั้งรหัสผ่านของ rootคำสั่ง sudo passwd rootหากต้องการเปลี่ยนเป็น root (เวลารันคำสั่งไม่ต้องมี sudo นำหน้า)

    คำสั่ง su root

  • กำหนด IP Address แบบ Staticตัวอย่าง 192.168.1.10/255.255.255.0sudo nano /etc/network/interfaces
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    sudo /etc/init.d/networking restart

    ทดสอบคำสั่ง ping -c 4 google.co.th

  • กรณีที่ทำการข้ามขั้นตอน Configurating apt ของการติดตั้ง Ubuntu ในตอนต้น หรือหากไม่แน่ใจว่าได้ติดตั้ง package ต่าง ๆ ถูกต้องหรือไม่ ก็ให้สั่งรันอัปเดท package ใหม่อีกครั้งก็ได้ตามสะดวกคำสั่ง sudo apt-get update
  • คำสั่งที่จำเป็นต้องรู้ (ปกติผมก็ใช้อยู่แค่นี้ล่ะ)shutdown now
    reboot

II. ปรับแต่ง Ubuntu

ขั้นตอนต่อไปจะทำการคอนฟิกเซิร์ฟเวอร์ Ubuntu บนวินโดวส์ผ่าน Telnel

ติดตั้งโปรแกรม PuTTY

ดาวน์โหลดที่ http://www.putty.org (ฟรี)

การติดตั้งโปรแกรม Telnet Client เช่น PuTTY บนวินโดวส์ก็เพื่อความสะดวกในการรันคำสั่งบนเซิร์ฟเวอร์ที่อยู่คนละเครื่องกัน ซึ่งเวลาค้นหาคำสั่งของ Linux ต่าง ๆ จากเว็บไซด์เช่น Google ก็ copy คำสั่งที่ต้องการ แล้วคลิกขวามา paste ใส่ใน PuTTY เลยสะดวกกว่า

  • ระบุ IP Address ของเครื่อง Ubuntu ตัวอย่าง 192.168.1.10 SSH พอร์ต 22
  • ใส่ชื่อผู้ใช้งานและรหัสผ่านที่กำหนดไว้ตอนต้น ตัวอย่าง somchai/1234 (หรือ root ก็ได้ตามสะดวก)
    หมายเหตุ: หากตอนติดตั้ง Ubuntu ไม่ได้คลิกเลือก OpenSSH ก็ให้รันคำสั่ง
    sudo apt-get install ssh openssh-server

ทดสอบ Apache

  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นระบุ URL ไปที่ Ubuntu ตัวอย่าง

ทดสอบ PHP

  • รันคำสั่งใน PuTTY เพื่อสร้างไฟล์เอกสารสำหรับทดสอบ PHP ดังนี้sudo nano /var/www/phpinfo.phpใส่ข้อความดังนี้
    <?php phpinfo(); ?>
    
  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นระบุ URL ไปที่ Ubuntu ตัวอย่าง
  • ตรวจสอบดูว่ามีส่วน MySQL หรือไม่ ?

ติดตั้ง phpMyAdmin

การติดตั้ง phpMyAdmin ก็เพื่อให้สามารถใช้งาน MySQL ผ่านเว็บบราวเซอร์

  • รันคำสั่งใน PuTTY ดังนี้sudo apt-get install phpmyadmin
  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นระบุ URL ไปที่ Ubuntu ตัวอย่าง

    ใส่ชื่อผู้ใช้งานและรหัสผ่านของ MySQL ที่กำหนดไว้ในขั้นตอนการติดตั้ง Ubuntu ตัวอย่าง root/1234


ปรับแต่ง MySQL ให้ใช้งานกับ Windows Client (VB, VFP) ในวงแลน

  • รันคำสั่งใน PuTTY แก้ไขไฟล์คอนฟิกของ MySQL ดังนี้sudo nano /etc/mysql/my.cnf
    # bind-address = 127.0.0.1 
    skip-name-resolve 
    

    sudo restart mysql

  • วิธีทดสอบแบบง่ายๆ เปิด ODBC Manager ใน Control Panel ของวินโดวส์หมายเหตุ
      • กำหนด Privileges ของผู้ใช้งานแบบ Any Host (%) ใน MySQL
      • ดาวน์โหลด MySQL ODBC Connector คลิกที่นี่
      • การใช้งานภาษาไทย ให้ระบุ charset ให้ถูกต้อง [ อ่านเพิ่มเติม คลิกที่นี่

    ]


ติดตั้ง FTP Server

การติดตั้ง FTP Server ก็เพื่อให้สามารถ Upload/Download ไฟล์สำหรับทำเว็บแอปพลิเคชันต่าง ๆ บนเว็บเซิร์ฟเวอร์ Ubuntu ในตัวอย่างนี้เลือกใช้ Vsftpd เป็น FTP Server

  • รันคำสั่งใน PuTTY ดังนี้sudo apt-get install vsftpd
  • แก้ไขไฟล์คอนฟิกของ Vsftpd ดังนี้sudo nano /etc/vsftpd.conf
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    xferlog_enable=NO
    ascii_upload_enable=YES 
    ascii_download_enable=YES
    

    sudo restart vsftpd

  • กำหนดกลุ่ม www-data สำหรับ ftp-client ไว้ที่เว็บโฟลเดอร์หลักsudo chgrp www-data /var/www/sudo chmod 775 /var/www/
  • เพิ่มชื่อของเราในกลุ่ม www-data สำหรับ ftp-client ตัวอย่าง somchaisudo adduser somchai www-data
  • (ทางเลือก) สร้าง user ใหม่ชื่อ webmin สำหรับ ftp-clientsudo useradd webmin -g www-data -d /var/wwwsudo passwd webmin

ทดสอบรันโปรแกรม FTP Client เช่น CuteFTP, FileZilla บนวินโดวส์

  • ระบุ Host Address ไปที่ Ubuntu ตัวอย่าง 192.168.1.10
  • กำหนด FTP พอร์ต 21
  • ระบุชื่อล็อกอินที่กำหนดไว้ข้างต้น ตัวอย่าง somchai หรือ webmin
  • กำหนด Remote Folder: /var/www

ติดตั้ง SAMBA

การติดตั้ง Samba ก็เพื่อให้สามารถแชร์ไฟล์ (File Sharing) บน Ubuntu กับเครื่องอื่นในวงแลน

sudo apt-get install samba (ถ้าไม่ได้เลือก Samba ไว้ในตอนติดตั้ง)

ตัวอย่าง แชร์โฟลเดอร์ชื่อ myapp และ temp

  • รันคำสั่งใน PuTTY สร้างโฟล์เดอร์ใน Ubuntu ดังนี้
    sudo mkdir /myshare
    sudo mkdir /myshare/myapp
    sudo mkdir /myshare/temp
    sudo chmod 0777 /myshare/myapp
    sudo chmod 0777 /myshare/temp
    
  • คอนฟิก Samba อนุญาติให้แชร์ไฟล์กับวินโดวส์แบบไม่ต้องมีหน้าจอล็อกอินsudo nano /etc/samba/smb.conf
    workgroup = MYGROUP
    security = share
    
    [myapp]
    path = /myshare/myapp
    public = yes
    browseable = no
    writeable = yes
    
    [temp]
    path = /myshare/temp
    public = yes
    browseable = yes
    writeable = yes
    

    หมายเหตุ ตั้งชื่อ Workgroup ให้เหมือนกันกับเครื่องอื่น ๆ ในวงแลน

    sudo restart smbd
    sudo restart nmbd

ทดสอบไฟล์แชร์บน Ubuntu กับวินโดวส์ ดังนี้

  • เลือกเมนู Start | Run
  • ระบุชื่อเครื่องหรือ IP Address ของ Ubuntu ตัวอย่าง \\192.168.1.10

ติดตั้ง Webmin

การติดตั้ง Webmin ก็เพื่อให้สามารถบริหารจัดการเซิร์ฟเวอร์ Ubuntu ผ่านเว็บบราวเซอร์ เหมาะสำหรับคนไม่ชอบคำสั่งลีนุกซ์เช่นผมนั่นล่ะ

หมายเหตุ ตรวจสอบเวอร์ชันใหม่ที่ http://sourceforge.net/projects/webadmin

  • เพิ่ม webmin ใน Repository (อ่านเพิ่มเติม ที่นี่)sudo nano /etc/apt/sources.list เพิ่มบรรทัดนี้
    deb http://download.webmin.com/download/repository sarge contrib 
    
  • ติดตั้ง webmin เวอร์ชันล่าสุด ดังนี้
    sudo wget http://www.webmin.com/jcameron-key.asc
    sudo apt-key add jcameron-key.asc
    sudo apt-get update
    sudo apt-get install webmin
    
  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นระบุ https:// ไปที่ Ubuntu ต่อท้ายด้วย :10000 ตัวอย่าง

    ระบุล็อกอินที่กำหนดไว้ในตอนติดตั้ง Ubuntu ข้างต้น ตัวอย่าง somchai/1234 (หรือ root ก็ได้ตามสะดวก)


ติดตั้ง PostgreSQL (ภาษาไทย)

การติดตั้งระบบฐานข้อมูล PostgreSQL บน Ubuntu จะสร้าง Database Cluster ให้อัตโนมัติด้วย ดังนั้นเพื่อให้ใช้งานภาษาไทยถูกต้อง ให้กำหนด Locale เป็น th_TH ก่อน มิฉะนั้นต้อง initdb -E สร้าง Cluster ใหม่ ซึ่งค่อนข้างยุ่งยากกว่า

    • รันคำสั่งใน PuTTY กำหนดภาษาไทยของ Ubuntu ดังนี้sudo nano /var/lib/locales/supported.d/local
      en_US.UTF-8 UTF-8
      th_TH.UTF-8 UTF-8
      

      sudo dpkg-reconfigure locales

    • ตรวจสอบว่ามี th_TH.UTF-8 อยู่ใน Locale หรือไม่locale -a
    • เปลี่ยนดีฟอลต์ Locale เป็นไทย ก่อนติดตั้ง PostgreSQL

export LANG=th_TH.UTF-8

  • ตรวจสอบให้แน่ใจว่า ค่าดีฟอลต์ทั้งหมดต้องเป็น th_THlocale
  • รันคำสั่งติดตั้ง PostgreSQL ดังนี้sudo apt-get install postgresql-8.4หมายเหตุ ข้อความในหน้าจอขณะติดตั้งจะเป็นขยะอ่านไม่รู้เรื่อง ก็ให้ตอบ Y อย่างเดียว
  • (ทางเลือก) เปลี่ยนดีฟอลต์ Locale กลับเป็นอังกฤษexport LANG=en_US.UTF-8
  • ตั้งรหัสผ่านของ postgres ตัวอย่าง 1234sudo -u postgres psql
    postgres=# \password postgres
    postgres=# \q
    
  • ตรวจสอบว่า ภาษาไทยใน PostgreSQL ถูกต้องหรือไม่ ?sudo -u postgres psqlpostgres=# \encoding
    UTF-8
    

    postgres=# show lc_collate ;

    th_TH.UTF-8
    

    postgres=# \q

หมายเหตุ

  • การสร้าง Database ใน PostgreSQL ให้กำหนด Encoding เป็น UTF-8
  • PHP กำหนด META ในส่วนหัวเอกสาร ระบุ Charset=UTF-8
  • การสร้างวินโดวส์แอปพลิเคชันเลือก ODBC ระบุ Driver={PostgreSQL UNICODE};

ติดตั้ง phpPgAdmin

การติดตั้ง phpPgAdmin ก็เพื่อให้สามารถใช้งาน PostgreSQL ผ่านเว็บบราวเซอร์

  • รันคำสั่งใน PuTTY ดังนี้sudo apt-get install phppgadmin
  • แก้ไขไฟล์คอนฟิกของ Apache ดังนี้sudo nano /etc/phppgadmin/apache.conf
    <DirectoryMatch /usr/share/phppgadmin/>
    allow from all
    

    sudo /etc/init.d/apache2 reload

  • กำหนดให้ล็อกอินของ postgres เข้าใช้งานได้sudo nano /usr/share/phppgadmin/conf/config.inc.php
    $conf['extra_login_security'] = false;
    

    sudo /etc/init.d/apache2 reload

  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นระบุ URL ไปที่ Ubuntu ตัวอย่าง

    ใส่ชื่อผู้ใช้งานและรหัสผ่านของ PostgreSQL ตัวอย่าง postgres/1234


ปรับแต่ง PHP ให้ใช้งานกับ PostgreSQL

การคอนฟิกในส่วนนี้ ก็เพื่อให้สามารถใช้งานคำสั่งของ PHP กับ PostgreSQL เช่น pg_connect(), pg_query() เป็นต้น

  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นรันสคริปท์คำสั่ง phpinfo() ที่ได้สร้างไว้แล้วในตอนต้น ตัวอย่าง http://192.168.1.10/phpinfo.phpตรวจดูว่ามีส่วน pgsql หรือไม่ ?
  • หากไม่พบส่วนดังกล่าวให้รันคำสั่งใน PuTTY ดังนี้sudo apt-get install php5-pgsql

ปรับแต่ง PostgreSQL ให้ใช้งานกับ Windows Client (VB, VFP) ในวงแลน

  • รันคำสั่งใน PuTTY แก้ไขไฟล์คอนฟิกของ PostgreSQL ดังนี้sudo nano /etc/postgresql/8.4/main/postgresql.conf
    listen_addresses = '*'
    password_encryption = on
    

    sudo nano /etc/postgresql/8.4/main/pg_hba.conf

    กำหนดช่วง IP ในวงแลน ตัวอย่าง 192.168.1.0

    host all all 192.168.1.0/24 md5
    host all all 127.0.0.1/32 md5
    

    sudo /etc/init.d/postgresql-8.4 restart

  • วิธีทดสอบแบบง่ายๆ เปิด ODBC Manager ใน Control Panel ของวินโดวส์หมายเหตุ
    • สร้างผู้ใช้งาน (Role) ใน PostgreSQL ด้วย phpPgAdmin หรือ pgAdmin กำหนด Can Login ? = Yes
    • ดาวน์โหลด PostgreSQL ODBC คลิกที่นี่

ติดตั้ง SQLite

การติดตั้งระบบฐานข้อมูล SQLite และตัวอย่างการใช้งานต่าง ๆ สามารถอ่านเพิ่มเติมได้ ที่นี่

  • ติดตั้ง SQLite2 Command Line ทำดังนี้
    $ sudo apt-get install sqlite
    $ sqlite
    
  • ติดตั้ง SQLite3 Command Line ทำดังนี้
    $ sudo apt-get install sqlite3
    $ sqlite3
    

ปรับแต่ง PHP ให้ใช้งานกับ SQLite

การคอนฟิกในส่วนนี้ ก็เพื่อให้สามารถใช้งานคำสั่งของ PHP กับ SQLite เช่น sqlite_open(), sqlite_query() เป็นต้น

  • รันคำสั่งใน PuTTY ดังนี้
    $ sudo apt-get install php5-sqlite
    $ sudo /etc/init.d/apache2 restart
    
  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้นรันสคริปท์คำสั่ง phpinfo() ที่ได้สร้างไว้แล้วในตอนต้น ตัวอย่าง http://192.168.1.10/phpinfo.phpตรวจดูว่ามีส่วน SQLite ลักษณะดังรูปหรือไม่ ?