Thursday, August 25, 2011

วิธีติดตั้งเซิร์ฟเวอร์ Ubuntu 9.10 สำหรับคนไม่เคยใช้ลินุกซ์


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

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

OSDatabaseWeb Applicationรวมค่าลิขสิทธิ์
Windows ชุด ServerSQL ServerIIS + ASP + .NETหลักหมื่นถึงแสนต่อเครื่อง
Ubuntu ชุด ServerMySQL, PostgreSQLApache + PHP + Monoฟรีทุกเครื่อง
ดาวน์โหลด แผ่นซีดี (ไฟล์ .iso) ฟรีได้ที่ http://www.ubuntu.com
ว่าแต่...ทำไมผมยังชอบใช้วินโดวส์ ? " วินโดวส์ทำเรื่องยากให้ง่าย ลีนุกซ์ทำเรื่องง่ายให้ (ยุ่ง) ยาก "



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


หากท่านใดต้องการติดตั้งลินุกซ์บนวินโดวส์ในเครื่องเดียวกัน แนะนำให้ติดตั้งโปรแกรมประเภท 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 9.10 (Karmic Koala) : LAMP = Linux 2.6.31-14 + Apache 2.2.12 + Mysql 5.1.37 + PHP 5.2.10-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.0
    sudo 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 ตัวอย่าง http://192.168.1.10


ทดสอบ PHP

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

  • ตรวจสอบดูว่ามีส่วน MySQL หรือไม่ ?

ติดตั้ง phpMyAdmin

การติดตั้ง phpMyAdmin ก็เพื่อให้สามารถใช้งาน MySQL ผ่านเว็บบราวเซอร์
  • รันคำสั่งใน PuTTY ดังนี้ sudo apt-get install phpmyadmin
  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้น ระบุ URL ไปที่ Ubuntu ตัวอย่าง http://192.168.1.10/phpmyadmin

    ใส่ชื่อผู้ใช้งานและรหัสผ่านของ 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 /etc/init.d/mysql restart
  • วิธีทดสอบแบบง่ายๆ เปิด ODBC Manager ใน Control Panel ของวินโดวส์
    หมายเหตุ กำหนด Privileges ของผู้ใช้งานแบบ Any Host (%) ใน MySQL

ติดตั้ง 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 /etc/init.d/vsftpd restart
  • กำหนดกลุ่ม www-data สำหรับ ftp-client ไว้ที่เว็บโฟลเดอร์หลัก sudo chgrp www-data /var/www/
    sudo chmod 775 /var/www/
  • เพิ่มชื่อของเราในกลุ่ม www-data สำหรับ ftp-client ตัวอย่าง somchai sudo adduser somchai www-data
  • (ทางเลือก) สร้าง user ใหม่ชื่อ webmin สำหรับ ftp-client sudo useradd webmin -g www-data -d /var/www
    sudo 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 /etc/init.d/samba restart
ทดสอบไฟล์แชร์บน Ubuntu กับวินโดวส์ ดังนี้
  • เลือกเมนู Start | Run
  • ระบุชื่อเครื่องหรือ IP Address ของ Ubuntu ตัวอย่าง \\192.168.1.10

ติดตั้ง Webmin

การติดตั้ง Webmin ก็เพื่อให้สามารถบริหารจัดการเซิร์ฟเวอร์ Ubuntu ผ่านเว็บบราวเซอร์ เหมาะสำหรับคนไม่ชอบคำสั่งลีนุกซ์เช่นผมนั่นล่ะ
หมายเหตุ ตรวจสอบเวอร์ชันใหม่ที่ http://sourceforge.net/projects/webadmin
  • รันคำสั่งใน PuTTY ติดตั้ง webmin ดังนี้ sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl
    wget http://prdownloads.sourceforge.net/webadmin/webmin_1.490_all.deb
    sudo dpkg -i webmin_1.490_all.deb
  • หากคำสั่ง wget ข้างต้นดาวน์โหลดไฟล์ไม่ได้ ก็ให้เพิ่ม webmin ใน Repository (อ่านเพิ่มเติม ที่นี่) nano /etc/apt/sources.list เพิ่มบรรทัดนี้
    deb http://download.webmin.com/download/repository sarge contrib 
    
    ติดตั้ง webmin เวอร์ชันล่าสุดจาก Repository ดังนี้
    cd /root
    wget http://www.webmin.com/jcameron-key.asc
    apt-key add jcameron-key.asc
    apt-get update
    apt-get install webmin
    
  • เปิดเว็บบราวเซอร์ เช่น IE, Firefox, Opera เป็นต้น ระบุ https:// ไปที่ Ubuntu ต่อท้ายด้วย :10000 ตัวอย่าง https://192.168.1.10: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_TH locale

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

    ใส่ชื่อผู้ใช้งานและรหัสผ่านของ 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

ติดตั้ง 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 ลักษณะดังรูปหรือไม่ ?

0 comments:

Post a Comment

 
Design by GURU