28 March 2012

ทำ FTP server Ubuntu


  1. ติดตั้ง vsftpd
    apt-get install vsftpd   > install program ที่จะใช้ทำ FTP server
  2. sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original  > copy config file เก็บไว้ก่อนเผื่อแก้ไปแก้มาแล้วมึน จำของเดิมไม่ได้
  3. แก้ไขไฟล์ /etc/vsftpd.conf
    sudo gedit /etc/vsftpd.conf หรือ nano /etc/vsftpd.conf
  4. ลบคอมเม้นต์ # หน้าบรรทัดเหล่านี้
    • #local_enable = YES
    • #write_enable = YES
    • #local_umask = 022 (ให้ file ที่ user upload ขึ้นไป มี permission เป็น 755 อัตโนมัติโดยไม่ต้องมาไล่ chmod กันทีหลัง)
    • #chroot_local_user = YES
แต่ละบรรทัดจะมีความหมายดังนี้
anonymous_enable=YES > หมายความว่าระบบจะยอมให้ผู้ใช้ login โดยใช้ username เป็น anonymous ได้ ถ้าไม่ต้องการก็เปลี่ยนเป็น NO หรือจะใส่ # ก็ได้ ซึ่งถ้าไม่ให้anonymous FTP ได้ หมายความว่า คนที่มีสิทธิ์ FTP ได้ต้องเป็น user ที่มี account อยู่ในเครื่อง FTP server เท่านั้นอ่ะ
#local_enable=YES > ถ้าเอา comment ออกจะทำให้ user ใน local zone (network วงเดียวกะ server) สามารถ FTP ได้
#write_enable=YES > ถ้าไม่เอา comment ออก user จะไม่สามารถ upload file เข้า server ได้ download ได้อย่างเดียว
#anon_upload_enable=YES > ถ้าไม่เอา comment ออก anonymous user จะไม่สามารถ upload file เข้า server ได้ download ได้อย่างเดียว 

    การปรับแต่งระบบทำได้โดยการแก้ไขแฟ้ม /etc/vsftpd.conf 

    ตั้งเวลาให้แสดงผลเวลาตรงกับของ server 
    ด้วยการเพิ่ม/แก้ไขบรรทัดข้อความว่า use_localtime=yes

    หากต้องการให้ใช้งานได้เฉพาะภายใน home ของตนเอง ไม่ต้องการให้ออกไปเพ่นพ่านที่อื่น
    เพิ่ม/แก้ไขบรรทัดข้อความว่า chroot_local_user=YES

    หากต้องการห้าม anonymous เข้ามาใช้บริการ
    เพิ่ม/แก้ไขบรรทัดข้อความว่า anonymous_enable=NO

    หากต้องการให้ user สามารถ upload แฟ้มได้
    เพิ่ม/แก้ไขบรรทัดข้อความว่า local_enable=YES และ write_enable=YES

    ตัวอย่างหากต้องการจำกัดจำนวน client ที่เข้ามาใช้บริการ ftp ไม่ให้เกิน 100 คน
    เพิ่ม/แก้ไขบรรทัดข้อความว่า max_clients=100
    แต่ถ้าต้องการจำกัดจำนวน clinet ต่อ 1 เลข IP ที่เข้ามาใช้บริการ ftp ไม่ให้เกิน 50 คนด้วย
    เพิ่ม/แก้ไขบรรทัดข้อความว่า max_per_ip=50

    sudo chmod 555 /etc/vsftpd.conf   > แก้สิทธิ์ไม่ให้เขียนไฟล์ config ได้
    แก้ไขเสร็จแล้วสั่ง vsftpd ทำงานใหม่ด้วยคำสั่ง  sudo /etc/init.d/vsftpd restart 
    -------------------------------------------------------------------------------------------------------------
    1. เทคนิคในการสร้าง link ให้สามารถเปิดดูได้ทั้ง http และ ftp ตัวอย่างเช่น
      http://ftp.localhost.com/pub/temp/ และ ftp://ftp.localhost.com/pub/temp/
      สมมติว่า root directcory ของ http อยู่ที่ /var/www
      และ root directcory ของ http อยู่ที่  /srv/ftp/pub
      ให้ใช้คำสั่งว่า sudo ln -s /srv/ftp/pub /var/www
      แล้วทดสอบดูผลงานได้เลย
    2. ตัวอย่างหากต้องการเพิ่ม hard disk ลูกใหม่เข้าไป และต้องการให้ไปเป็นส่วนหนึ่งของพื้นที่ใน /home/ftp/pub
      ให้จัดการติดตั้ง hard disk และ mount ให้เรียบร้อยสามารถใช้งานได้ซะก่อน
      ตัวอย่างของผมคือเพิ่ม hard disk /dev/hdb1 ไปในพื้นที่ /mnt/data
      และต้องการให้ไปโผล่เป็นส่วนหนึ่งของ /home/ftp/pub/newdisk
      ทำคำสั่งขั้นตอนดังนี้คือ
      sudo mkdir  -p  /mnt/data
      sudo mount  /dev/hdb1  /mnt/data
      sudo mkdir  -p  /home/ftp/pub/newdisk
      sudo mount  --bind  /mnt/data  /home/ftp/pub/newdisk
      แค่นี้ก็เสร็จแล้ว ตรวจสอบดูผลงานได้เลย

      ต้องแก้ไขให้ระบบทำงานคำสั่งเหล่านี้โดยอัตโนมัติทุกครั้งที่บูทเครื่อง
      ต้องแก้ไขแฟ้ม /etc/rc.local โดยเพิ่มบรรทัดคำสั่งเหล่านั้นเข้าไปด้วย
    -----------------------------------------------------------------------------------------
    ตรวจสอบว่า vsftpd ทำงานแล้วด้วยคำสั่ง
    ps ax | grep vsftpd
    ได้คำตอบประมาณว่า
    ….. ?        Ss     0:00 /usr/sbin/vsftpd ….
    แสดงว่าใช้งานได้แล้ว

26 March 2012

add route ใน window server


route add <destination ip> mask <subnet> <gateway>

ตัวอย่าง ถ้า add เครื่องเดียว
route add 10.4.0.1 mask 255.255.255.255 192.168.1.1

ถ้า add 24 bit (ทั้ง subnet)
route add 10.4.0.0 mask 255.255.255.0 192.168.1.1

ลองดูนะครับ เวลาดูใช้ คำสั่ง route print 
ถ้าWindows Vista ต้องใช้สิทธิ์ของ Admin ในการใช้คำสั่งน่ะครับ
รูปแบบคำสั่งก็จะเป็น C:/> route add <ip ปลายทาง> Mask <Subnet Mask ปลายทาง><Gateway ของเราที่มันจะผ่านไปได้> -P ( -P หมายถึงให้มัน เป็น permanent ครับ Restart ก็ยังอยู่)

ตัวอย่างเช่น

C:/> route add 172.25.30.250 mask 255.255.255.255 192.168.9.5 -P

ถ้าต้องการลบทิ้งก็

C:/> route delete 172.25.30.250

25 March 2012

ติดตั้ง moodle บน ubuntu


  • ทดสอบกับ linux ubuntu 10.04 และ moodle 1.9.9+
  • ตัวอย่างนี้สมมติให้ server ใช้ ip 10.0.0.124
  • หากต้องการ upgrade ข้อมูล moodle 1.5.x เป็น 1.9.x ให้ดูที่บันทึก ปรับปรุง moodle จาก 1.54 มาเป็น 1.9

  1. ติดตั้ง apache web server ด้วยคำสั่ง sudo apt-get install apache2 apache2-doc
    ใช้ browser ตรวจสอบดูว่า web server ใช้งานได้แล้ว
    โดยไปที่เวบ http://10.0.0.124
  2. ติดตั้ง mysql database server ด้วยคำสั่ง sudo apt-get install mysql-server
    ระหว่างติดตั้งหากมีคำถามที่เกี่ยวกับการตั้งรหัสผ่าน ก็ให้เคาะแป้น enter ผ่านไปก่อนทั้งหมด
    หลังติดตั้งเสร็จแล้วให้รีบตั้งรหัสผ่าน root ของ mysql-server ใหม่
    ตัวอย่างนี้ตั้งรหัสผ่านว่า mysqldroot ใช้คำสั่งคือ
    mysqladmin -uroot password mysqldroot
  3. ติดตั้ง php ด้วยคำสั่ง sudo apt-get install php5 php5-mysql php5-ldap php5-gd php5-curl php5-xmlrpc php5-imap php5-radius
    แล้วสั่งให้ apache ทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/apache2 restart
  4. ติดตั้ง unzip ด้วยคำสั่ง sudo apt-get install unzip
  5. ต่อไปสร้าง database ตัวอย่างการสร้าง database ชื่อ mymoodle ใช้คำสั่ง
    mysql -uroot -pmysqldroot -e "CREATE DATABASE mymoodle CHARACTER SET 'UTF8';"
    หากต้องการลบ database เดิมที่เคยสร้างไว้แล้ว ใช้คำสั่งว่า
    mysql -uroot -pmysqldroot -e "DROP DATABASE mymoodle;"
    แล้วกำหนดสิทธิ์การใช้ database mymoodle ให้แก่ user
    ตัวอย่างสร้าง user ชื่อ moodleuser โดยมีรหัสผ่านว่า yourpassword ใช้คำสั่งคือ
    mysql -uroot -pmysqldroot -e "grant all privileges on mymoodle.* to 'moodleuser'@'localhost' identified by 'yourpassword' ;"
  6. สร้าง directory ใหม่ชื่อ /var/www/test รอไว้ด้วยคำสั่ง sudo mkdir -p /var/www/test
    ดาวน์โหลดโปรแกรม moodle จาก ftp://ftp.psu.ac.th/pub/moodle/moodle-weekly-19.tgz
    ด้วยคำสั่ง wget ftp://ftp.psu.ac.th/pub/moodle/moodle-weekly-19.tgz -P /tmp
    แตกแฟ้มออกมาเก็บไว้ด้วยคำสั่ง sudo tar -zxvf /tmp/moodle-weekly-19.tgz -C /var/www/test
    สร้าง directory ใหมชื่อ /var/moodledata/test ด้วยคำสั่ง sudo mkdir -p /var/moodledata/test
    เปลี่ยนสิทธิ์เจ้าของให้เป็น apache ด้วยคำสั่ง
    sudo chown -R www-data /var/www/test/*
    sudo chown -R www-data /var/moodledata/test

    สร้างแฟ้ม config ของ moodle ด้วยคำสั่ง
    sudo cp /var/www/test/moodle/config-dist.php /var/www/test/moodle/config.php
    แก้ไขแฟ้ม /var/www/test/moodle/config.php ให้มีค่าดังนี้
    $CFG->dbhost = 'localhost';
    $CFG->dbname = 'mymoodle';
    $CFG->dbuser = 'moodleuser';
    $CFG->dbpass = 'yourpassword';
    $CFG->wwwroot = 'http://10.0.0.124/test/moodle';
    $CFG->dirroot = '/var/www/test/moodle';
    $CFG->dataroot = '/var/moodledata/test';
    ทดสอบผลงานได้ที่ http://10.0.0.124/test/moodle
    ตอนเข้าเวบครั้งแรก ต้องปรับแต่งระบบโต้ตอบข้อความที่มาทางหน้าจอ
  7. เสร็จแล้วจึงค่อยเติมภาษาไทยเข้าไปในระบบ
    ***หากใส่ภาษาไทยก่อน จะเกิดปัญหาตอนปรับแต่งระบบแรกเข้าไม่สำเร็จ
    สร้าง directory สำหรับภาษาไทยชื่อ /var/www/test/moodledata/lang ด้วยคำสั่ง
    sudo mkdir -p /var/www/test/moodledata/lang

    ดาวน์โหลดภาษาไทยสำหรับ moodle จาก ftp://ftp.psu.ac.th/pub/moodle/th_utf8.zip
    ด้วยคำสั่ง wget ftp://ftp.psu.ac.th/pub/moodle/th_utf8.zip -P /tmp
    แตกแฟ้มออกมาเก็บไว้ด้วยคำสั่ง sudo unzip /tmp/th_utf8.zip -d /var/www/test/moodle/lang
    เปลี่ยนสิทธิ์เจ้าของให้เป็น apache ด้วยคำสั่ง
    sudo chown -R www-data /var/www/test/*
    แล้วลองใช้ browser เข้าหน้าเวบเพจอีกที ก็จะใช้ภาษาไทยได้เลย
  8. ลองตั้งค่าให้ใช้กับ imap สำหรับรุ่น 1.9.9 เปิดให้ใช้ authen กับอีเมล์ ไปที่ block ว่า
    Site Administration->Users->Authentication->Manage authentication
    คลิกสั่งให้ Enable IMAP server ทำให้รูปตาเปิด-ห้ามหลับนะ
    แล้วเลือก Setting ของ IMAP server นี้ ตั้งค่าต่อว่า
    Host: mail.psu.ac.th;bunga.pn.psu.ac.th
    Type: imap
    ***หากเป็น moodle 1.5.4 หรือ 1.6.6 ต้องตั้งค่าว่า auth_imaptype: imaptls
    ***สงสัยเป็น bug ของ 1.5.4/1.6.6 เพราะที่จริงแล้วเป็น imap ธรรมดาๆ
  9. ลอง authen กับ radius server ให้ไปที่
    Site Administration->Users->Authentication->Manage authentication
    คลิกสั่งให้ Enable RADIUS server ทำให้รูปตาเปิด-ห้ามหลับนะ
    แล้วเลือก Setting ของ RADIUS server ตั้งค่าตามใจชอบ

Linux Ubuntu error you do not have permissions to create it in the destination. จัดการกับ folder ที่เข้าไม่ได้


"you do not have permissions to create it in the destination."
ปัญหาโลกแตกของการใช้ Linux Ubuntu
สาเหตุของปัญหาคือ Folder นั้นไม่ได้ถูกสร้างขึ้นโดยเราเอง แต่ถูกสร้างขึ้นโดยระบบ (root)
การเข้าถึงและจัดการ Folder นั้นจึงต้องใช้อำนาจของ Root
ซึ่งใน terminal เราจะใช้ sudo แต่สำหรับโปรแกรมใน GUI เราใช้ 
gksu nautilus [path to destination] เพื่อเปิด File Browser โดยอำนาจ Root คราวนี้จะทำอะไรก็ตามสบายครับ

เช่นต้องการจัดการ File ใน /var/ww ซึ่งปกติจะทำอะไรไม่ได้ ก็ให้ใช้คำสั่ง
gksu nautilus /var/www
โดยการ
  1. เปิด terminal
  2. พิมพ์คำสั่ง gksu nautilus /var/www