ระบบสอบออนไลน์สำหรับโรงเรียนบ้านโป่งแดงน้ำฉ่าสามัคคี
Online Test System for BanPongDang School
(เป็นการพัฒนาต่อยอดจาก ระบบสอบออนไลน์เคลื่อนที่ จาก มทส. เวอร์ชั่น 3.0)
(A modified version of SUT-MOTS 3.0)

New in this version
สิ่งที่เพิ่มเติมและใหม่ ในเวอร์ชั่นี้
  20 February 2009

Computer to install as an online test server must have RAM at least 512 MB.
คอมพิวเตอร์ที่จะติดตั้งสำหรับการสอบออนไลน์ต้องมี RAM ไม่ต่ำกว่า 512 MB.

New feature in this version
ความสามารถใหม่ในเวอร์ชั่นนี้

  1. SUT-MOTS 3.0 using Ubuntu 8.10 server kernel 2.6.27-9-server but this one with a new upgrade to kernel 2.6.27-11-server
    จากระบบเดิม SUT-MOTS 3.0 ใช้ Ubuntu 8.10 server kernel 2.6.27-9-server สำหรับรุ่นนี้ได้ทำการอัพเดทเคอร์นัลใหม่เป็น kernel 2.6.27-11-server

  2. Many software have been updated.  See /mycd/changelog-BanPongDang.txt
    โปรแกรมอีกจำนวนมากที่ได้อัพเดทใหม่ รายละเอียดดูได้ที่ /mycd/changelog-BanPongDang.txt

  3. Update installer to clear network device. The new installed will start detecting eth0, eth1, ....
    เพิ่มเติมโปรแกรมติดตั้งระบบให้ทำการเคียร์เน็ตเวิร์กการ์ดเมื่อเริ่มติดตั้งใหม่ จึงทำให้สามารถตรวจพบเน็ตเวิร์กการ์ดเป็น eth0, eth1, ....

  4. Adding a program called unetbootin accessing by main menu Start-->System Tools-->UNetbootin.  This program will help user write an ISO image onto a USB flash drive. Read the manual at http://localhost/sutins_man/usb_install.html
    ติดตั้งโปรแกรม UNetbootin เพิ่มเติม โปรแกรมนี้จะช่วยให้ผู้ใช้ เขียนไฟล์ติดตั้งระบบที่เป็น ISO ลงบน USB flash drive ท่านสามาถเรียกใช้โปรแกรมจาก เมนูหลักของระบบที่ Start-->System Tools-->UNetbootin และอ่านคู่มือการใช้งานได้จาก http://localhost/sutins_man/usb_install.html

  5. Begin with this version, user may have to upload exam with bigger file size due to adding sound or video by configuring php in /etc/php5/apache2/php.ini to has the following parameters:
    memory_limit = 256M    
    post_max_size = 256M
    upload_max_filesize = 250M
    This will enable user to upload exam with max size of 250MB.
    เริ่มจากเวอร์ชั่นนี้ ผู้ใช้อาจจำเป็นต้องมีการอัพโหลดข้อสอบที่มีขนาดใหญ่ขึ้นเนื่องจากการเพิ่มเสียงและวีดิโอในข้อสอบ จึงขยายความสามารถดังกล่าว ด้วยการเปลี่ยนค่าคอนฟิกในไฟล์ /etc/php5/apache2/php.ini ด้วยการกำหนดค่าดังนี้:
    memory_limit = 256M    
    post_max_size = 256M
    upload_max_filesize = 250M
    การทำเช่นนี้จะทำให้ผู้ใช้ สามารถอัพโหลดไฟล์ที่โตได้สูงสุด 250MB

  6. Many changes and updates on SUT-MOTS:
    มีการเปลี่ยนแปลงและแก้ไขระบบสอบออนไลน์อีกหลายจุด
    1. Correct display February on Thai menu.
    แก้ไขให้สามารถแสดงเดือน กุมภาพันธ์ ในโหมดภาษาไทยได้อย่างถูกต้อง
    2. Eraser will not show unless user has answered.
    ยางลบจะปรากฏต่อเมื่อมีการตอบคำถามแล้ว
    3. Correct progress part displays 1 sometimes.
    แก้ไขที่ในส่วนแสดงความก้าวหน้าระหว่างการสอบ บางครั้งแสดงเพียงหมายเลข 1
    4. When display score and view score graph, full score will be displayed as well.
    เมื่อแสดงคะแนนและแสดงกราฟคะแนนจะเขียนบอกคะแนนเต็มไว้ให้ด้วย
    5. Tooltips has been added on a button to click to answer.
    กำหนดให้มีหน้าต่างแสดงข้อความตรงปุ่ม ที่ใช้กด เพื่อเลือกตอบ
    6. Sound(mp3) and video(flash file: .swf .flv) have been added. This means you can now add sound or video to your test.
    เพิ่มความสามารถในการรับไฟล์เสียงที่อยู่ในรูป mp3 และไฟล์วีดิโอที่อยู่ในรูป .flv และ .swf ของ flash จึงทำให้ตั้งแต่เวอร์ชั่นนี้เป็นต้นไป สามารถมีเสียงและวีดิโอประกอบการสอบ

  7. Note that: If the exam contains sound and/or video, computer used for the online test server should have enough RAM. Suggestion is at least 1GB. However, this has not been fully test.  You may need to experiment this feature on your system before using for a real test.
    โปรดทราบ: ถ้าข้อสอบมีเสียงและ/หรือวิดีโอประกอบ คอมพิวเตอร์ที่ใช้ติดตั้งเครื่องเซิร์ฟเวอร์ระบบสอบออนไลน์ ควรมีหน่วยความจำเพียงพอ ขนาดที่แนะนำคืออย่างต่ำ 1GB อย่างไรก็ตาม ยังไม่มีการทดสอบอย่างเพียงพอ ท่านควรทดสอบการใช้งานในเรื่องนี้ที่ระบบของท่านก่อนการใช้สอบจริง


Thing to know more
สิ่งที่ควรทราบเพิ่มเติม
1
When finishing exam preparing portion,user will obtain two files: Exam_for_xxxxxxxx.tar.gz and System_data_xxxxxxx.tar.gz.  After that , user may start the test by clicking on Protor Mode menu on the top and start the test from menu 04. Enable Student Logon. User does not have to Load Exam again. Load Exam is needed only when the test server is not the same as the one use to prepare the exam or exam subject is changed.

เมื่อเสร็จส่วนของการเตรียมข้อสอบ ท่านจะได้ 2 ไฟล์คือ Exam_for_xxxxxxxx.tar.gz and System_data_xxxxxxx.tar.gz จากนั้นถ้าท่านใช้เครื่องเดียวกันนี้สอบและยังคงเป็นวิชาเดิมนี้ ท่านสามารถเข้าสู่โหมด ผู้คุมสอบ ด้วยการล็อกอินเป็นอาจารย์แล้วคลิกที่เมนูผู้คุมสอบด้านบน แล้วเริ่มการสอบจากเมนู 04:อนุญาตผู้สอบล็อกอิน เป็นต้นไป โดยไม่จำเป็นต้องโหลดข้อสอบเข้ามาอีก
2
If the same person is both the teacher and the proctor, to start different test, you may begin logon as a teacher and use menu 11: Restore System data, click on Protor Mode menu on the top, start the test from menu 04: Enable Student Login and proceed until finish.

ถ้าอาจารย์และผู้คุมสอบคือคนคนเดียวกัน เมื่อต้องการสอบวิชาใหม่ ท่านสามารถเริ่มด้วยการล็อกอินเป็นอาจารย์ จากนั้นใช้เมนู 04:นำเข้าข้อมูลระบบ ด้วยการอัพโหลดไฟล์ System_data_xxxxxxx.tar.gz จากนั้นเข้าสู่โหมดผู้คุมสอบด้วยการคลิกที่เนูด้านบน แล้วจึงเริ่มการสอบ ด้วยการดำเนินการตั้งแต่เมนู 04:อนุญาตผู้สอบล็อกอิน เป็นต้นไป จนการสอบเสร็จสิ้น
3
During the test, if any question or any choice is needed to be changed, the proctor may logon as a teacher, then edit the exam by using menu 05:Manage This Exam.  Go to submenu 2: Edit This Exam to make change the exam. Must be careful not to use submenu 1: Define This Exam.

ในระหว่างการสอบ เมื่อพบว่ามีคำถามหรือคำตอบบางข้อต้องการแก้ไข ผู้คุมสอบสามารถ ล็อกอินเป็นอาจารย์ จากนั้นเข้าไปแก้ไขข้อสอบด้วยการใช้เมนู 05:จัดการข้อสอบครั้งนี้ จากนั้นไปที่เมนูย่อย 2: แก้ไขข้อสอบครั้งนี้แล้วเข้าไปแก้ไขในนั้น สิ่งที่ต้องระวังคือ เมื่อเข้าไปที่เมนู 05:จัดการข้อสอบครั้งนี้ อย่าไปยุ่งกับเมนูย่อยแรก กำหนดข้อสอบ เด็ดขาด
4
During student seeing solution, if there is any solution needed to be changed, the proctor may logon as a teacher, then edit the exam by using menu 05:Manage This Exam.  Go to submenu 2: Edit This Exam to make change the exam. Must be careful not to use submenu 1: Define This Exam. Then use menu 14:Grading The Exam and click on Re-calculate button.  Student will see the correct solution and get new score.

ในระหว่างการเฉลยข้อสอบ เมื่อพบว่ามีคำถามบางข้อต้องการแก้ไขเฉลยใหม่ ผู้คุมสอบสามารถ ล็อกอินเป็นอาจารย์ จากนั้นเข้าไปแก้ไขการเฉลยข้อสอบด้วยการใช้เมนู 05:จัดการข้อสอบครั้งนี้ จากนั้นไปที่เมนูย่อย 2: แก้ไขข้อสอบครั้งนี้แล้วเข้าไปแก้ไขในนั้น สิ่งที่ต้องระวังคือ เมื่อเข้าไปที่เมนู 05:จัดการข้อสอบครั้งนี้ อย่าไปยุ่งกับเมนูย่อยแรก กำหนดข้อสอบ เด็ดขาด จากนั้นไปที่เมนู 14:ประมวลผลการสอบ แล้วคลิกปุ่ม คำนวณใหม่ ในนั้น เพียงเท่านี้ผู้เข้าสอบก็จะเห็นการเฉลยที่แก้ไขแล้วและมีการคำนวณคะแนนให้ใหม่

Features from previous version
ความสามารถในเวอร์ชั่นก่อนหน้านี้
  1. Can be installed as a directory on NTFS, FAT32 or Ext3 and does not require to have Windows installed. It also can be installed as a full drive. If swap partition does not exist, user will be asked either to create it with size 1 or 2 GB. To use it for a real test, user should install it as a full drive method. Installing as a directory is to train or trying the system. However, fast computer with enough RAM(2 or 4GB) may be able to use it for real test. User need to verify it yourself.

    สามารถติดตั้งแบบไดเร็กทรอรี่บนไดรว์ที่เป็น NTFS, FAT32 หรือ Ext3 โดยไม่จำเป็นที่ต้องลงวินโดวส์ก่อน นอกจากนี้ยังสามารถติดตั้งแบบเต็มไดรว์ โดยไดรว์ที่ถูกเลือกจะถูกฟอร์แมทให้เป็น Ext3 ถ้าไม่มีพาร์ทิชั่น swap ผู้ใช้สามารถเลือกขนาดที่จะสร้างโดยอาจเป็น 1 หรือ 2 GB . สำหรับการสอบจริง ควรติดตั้งแบบเต็มไดรว์ การลงแบบไดเร็กทอรี่ จะเหมาะสำหรับการฝึกการใช้งาน หรือทดลองใช้ อย่างไรก็ตาม เครื่องรุ่นใหม่ที่ทำงานได้เร็วและมี RAM เพียงพอ(ขนาด 1 หรือ 2GB) การติดตั้งแบบไดเร็กทอรี่ อาจสามารถใช้สอบจริงได้ ทั้งนี้ผู้ใช้ควรทดสอบดูก่อน

  2. Boot loader is grub version 2 and when install will produce two menus to boot to the system.  One is to boot GUI mode and the second to text mode. Booting text mode will use RAM about 200MB less than GUI mode. Please note that due to most of the users have Windows installed and have asked developer to make boot Windows as a defualt, Windows will be a default and will appear as first menu. User may change this by editting boot/grub/grub.cfg.

    บูตโหลดเดอร์ที่ใช้บูตระบบคือ grub เวอร์ชั่น 2 เมื่อติดตั้งเสร็จจะสร้างเมนูบูตระบบใหม่ขึ้นสองเมนูคือ เมนูแรกจะบูตเข้า GUI โหมด ส่วนเมนูที่สองจะบูตเข้าสู่ text โหมด ถ้าเข้า text โหมดจะใช้ RAM น้อยกว่าโหมด GUI ประมาณ 200 MB. เนื่องจากผู้ใช้เกือบทั้งหมด ได้ติดตั้งวินโดวส์อยู่ก่อนแล้ว จึงขอให้ทางทีมงาน กำหนดการบูตเข้าสู่วินโดวส์เป็นค่าโดยปริยาย ดังนั้นในเมนูแรกของการบูต จึงชี้ไปที่วินโดวส์ ท่านสามารถเปลี่ยนการบูตโดยปริยายนี้ได้โดยการเปลี่ยนค่าในไฟล์ boot/grub/grub.cfg

  3. Adding AJAX on the startup page to refresh the list of subjects that are on the test. This will eliminate the page blinking.

    ใช้ AJAX ในหน้าเริ่มต้น เพื่อรีเฟรชรายชื่อวิชาที่เปิดสอบ เป็นผลให้หน้าจอนี้นิ่งไม่ปรากฏการกระพริบอีกต่อไป

  4. Menu [Allow to submit name] and [Allow to display name] on the top of the startup page are provided for trainning purpose to obtain names of the examinees. Now all menus on this section will use AJAX. Eliminate all blinking for refresh.

    เมนู [ให้ป้อนชื่อ] และ [ให้แสดงรายชื่อ] ที่อยู่ด้านบนของหน้าเริ่มต้น มีไว้สำหรับการฝึกอบรม เพื่อการป้อนรายชื่อผู้เข้าสอบ ทุกเมนูในส่วนนี้ได้เปลี่ยนไปใช้ AJAX จึงทำให้ทุกหน้าต่างไม่ปรากฏหน้าจอกระพริบอีกต่อไป

  5. To serve more users on the test, during the installation, You have to choose size of swap file. It can be either 2 or 4 GB. 

    เพื่อรองรับผู้เข้าสอบได้มากขึ้น ในระหว่างการติดตั้ง ผู้ใช้สามารถเลือกขนาดของไฟล์ swap ว่าจะให้มีขนาด 2 หรือ 4 GB.

  6. When an examinee try to do the test for other examinee, a botton to list the names will appear as in the below figure.

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


    detec_cheat.png

Start Using
การเริ่มต้นใช้งาน
  1. To install, harddisk space at least 6 GB. are needed. However, it also depends whether swap partition is already available or how much swap file you want to create(2 or 4 GB).

    การติดตั้ง ต้องการเนื้อที่อย่างต่ำ 6 GB ทั้งนี้ขึ้นกับโหมดการติดตั้งและมี swap พาร์ทิชันอยู่ก่อนแล้วหรือไม่ ถ้ายังไม่มี ท่านเลือกให้มีการสร้าง swap ไฟล์โตเท่าใด (2 หรือ 4 GB)

  2. Boot the system with SUT-MOTS DVD and then you will come to installation program.

    บูตเครื่องด้วย แผ่น SUT-MOTS แล้วจะเข้าสู่โปรแกรมติดตั้ง

  3. Firstly, you should use menu Check Disk to test data integrity on the disc.

    ก่อนที่จะติดตั้งระบบทุกครั้ง ควรใช้เมนู ตรวจสอบแผ่น ก่อน

  4. Next use menu Install SUTinsLinux.

    จากนั้นจึงใช้เมนู ติตตั้งระบบ

  5. Later, if you do not want to use it any more, you may use menu Delete SUTinsLinux by booting the system again with this disc and harddisk space will be return by deleting SUT-MOTS from the harddisk and manage boot loader accordingly.  In case you install as on a full drive, this drive will be formatted to ntfs and you will be able to use it again on Windows.

    เมื่อต้องการเลิกใช้งาน สามารถใช้เมนู ถอนระบบ โดยการบูตคอมพิวเตอร์ด้วยแผ่นติดตั้งนี้อีกครั้ง แล้วโปรแกรมจะทำการลบ SUT-MOTS ออกจากฮาร์ดดิสก์ให้ พร้อมทั้งจัดการกับตัวบูตโหลดเดอร์ และในกรณีที่ท่านติดตั้งแบบเต็มไดรว์ โปรแกรมจะฟอร์แมท ไดรว์นั้นกลับคืนให้เป็น ntfs  เพื่อให้สามารถใช้ในวินโดวส์ได้ต่อไป
What you may want to know
สิ่งที่ท่านควรทราบ
  1. Web document is at /var/www/html

    เว็บอยู่ที่ /var/www/html

  2. For expert, you may start/stop any program to run with the system startup by on the terminal using command sudo sysv-rc-conf

    สำหรับผู้ชำนาญ การกำหนดให้ start/stop โปรแกรมที่รันอัตโนมัติพร้อมกับการบูตระบบ สามารถกำหนดโดยใช้คำสั่ง sudo sysv-rc-conf ในเทอร์มินัล

  3. When you create the web and want to be accessible, on the terminal use command sudo chmod 777 -R dirname

    เมื่อต้องการเปลี่ยนสิทธิ์ให้โปรแกรมบนเว็บอ่านและเขียนไฟล์ได้ ให้ใช้คำสั่ง sudo chmod 777 -R dirname ในเทอร์มินัล

  4. Configure files for Apache server are /etc/apache2/apahe2.conf and /etc/apache2/sites-available/default

    ไฟล์ config ของ Apache อยู่ที่  /etc/apache2/apahe2.conf และ /etc/apache2/sites-available/default

  5. Configure files for PHP is  /etc/php5/apache2/php.ini

    ไฟล์ config ของ PHP อยู่ที่  /etc/php5/apache2/php.ini

  6. When you want to start/stop/restart any program, just put /etc/init.d/ in front of that command. For example to restart web server, you will use command: sudo /etc/init.d/apache2 restart  However, you may also use command: sudo service apache2 restart

    เมื่อต้องการ start/stop/restart โปรแกรมในขณะนั้นๆ ให้ใส่ /etc/init.d/ เข้าไปข้างหน้าชื่อโปรแกรม เช่นถ้าต้องการ restart โปรแกรมเว็บเซิร์ฟเวอร์ apache ให้ใช้คำสั่ง sudo /etc/init.d/apache2 restart หรืออาจใช้คำสั่ง sudo service apache2 restart ได้เช่นกัน

  7. To start/stop/restart SSH server, use command: sudo service ssh start/stop/restart

    ถ้าต้องการจัดการกับ SSH server ใช้คำสั่ง sudo service ssh start/stop/restart

  8. To start/stop/restart DHCP server, use command: sudo service dhcp3-server start/stop/restart

    เมื่อต้องการ start/stop/restart โปรแกรม DHCP server ให้ใช้คำสั่ง sudo service dhcp3-server start/stop/restart

  9. To start/stop/restart FTP server, use command: sudo service vsftpd start/stop/restart

    ถ้าต้องการจัดการกับ FTP server ใช้คำสั่ง sudo service vsftpd start/stop/restart

  10. To see IP address, use command: ifconfig

    ถ้าต้องการดู IP ของเครื่องใช้คำสั่ง ifconfig

  11. Normal and default user is login user: sut   password: a
    To change password for user sut, follow these steps:
    - Open the terminal
    - Run command: sudo su -
    - Give present password for user sut
    - Run command: passwd sut
    - Give new password for user sut 2 times

    ผู้ใช้ที่เป็นค่าปริยายคือ ผู้ใช้ sut ที่มีรหัสผ่านเป็น a
    ถ้าต้องการเปลี่ยนรหัสผ่านของผู้ใช้ sut ให้ทำดังนี้
    - เปิดเทอร์มินัล
    - รันคำสั่ง sudo su -
    - ป้อนรหัสผ่านเดิมของผู้ใช้ sut
    - รันคำสั่ง passwd sut
    - ป้อนรหัสผ่านใหม่ของผู้ใช้ sut สองครั้ง
  12. Also exists user: root  password: meroot
    To change password for user root, follow these steps:
    - Open the terminal
    - Run command: sudo su -
    - Give password for user sut
    - Run command: passwd root
    - Give new password for user root 2 times

    ทั้งนี้ ในบางกรณีถ้าต้องการเป็น admin ของระบบอาจใช้ผู้ใช้ root ที่มีรหัสผ่านเป็น meroot
    ถ้าต้องการเปลี่ยนรหัสผ่านของผู้ใช้ root ให้ทำดังนี้
    - เปิดเทอร์มินัล
    - รันคำสั่ง sudo su -
    - ป้อนรหัสผ่านของผู้ใช้ sut
    - รันคำสั่ง passwd root
    - ป้อนรหัสผ่านใหม่ของผู้ใช้ root สองครั้ง

  13. To change keyboard language use Alt+Shift

    การเปลี่ยนภาษาของคีย์บอร์ดใช้ Alt+Shift

  14. Webalizer may be used to display web user statistic. First in the terminal run command: sudo webalizer and then use browser come to http://localhost/webalizer/  Configure file for webalizer is /etc/webalizer/webalizer.conf
    Accessibility is controlled by data in /etc/apache2/sites-available/default

    ใช้ webalizer เพื่อดูสถิติการเข้าชมเว็บ โดยรันคำสั่ง sudo webalizer  ในเทอร์มินัล จากนั้น ใช้ Browser ต่อเข้ามาที่ http://localhost/webalizer/
    ไฟล์ config ของ webalizer คือ /etc/webalizer/webalizer.conf
    ถ้าต้องการเปลี่ยนการเข้าถึง ให้แก้ไขไฟล์ /etc/apache2/sites-available/default

  15. You may access phpmyadmin by using menu on Firefox at Utilities --> phpMyAdmin 2.11.8.1deb1
    Then login as user root with password meroot
    Source program of phpMyAdmin is at /usr/share/phpmyadmin
    Default setup is to allow only from localhost or 127.0.0.1 to access.  If you want to change, edit /etc/apache2/conf.d/phpmyadmin.conf at part similar to  
           ## added by sompan
            Order deny,allow
            Deny from all
            Allow from localhost 127.0.0.0/255.0.0.0 ::1/128
           ## added by sompan
    After editting the configure file, you must restart web server by run command: sudo service apache2 restart
    To re-setup phpmyadmin via web
    1. set password using command on the terminal
       htpasswd -c /etc/phpmyadmin/htpasswd.setup root
    2. Direct browser to localhost/scripts/setup.php 
       When finished, download config file and put it to /etc/phpmyadmin/config.inc.php

    โปรแกรม phpmyadmin เข้าใช้ได้ทางเมนูของ Firefox ที่ Utilities --> phpMyAdmin 2.11.8.1deb1
    แล้วล็อกอินผู้ใช้ root รหัสผ่าน meroot
    ตัวโปรแกรม PhpMyadmin อยู่ที่ /usr/share/phpmyadmin
    ที่ตั้งไว้คือให้ต่อเข้าใช้งานผ่านทาง localhost หรือ 127.0.0.1 เท่านั้น แต่ถ้าต้องการเปลี่ยนเป็นอย่างอื่นให้ แก้ไขไฟล์ /etc/apache2/conf.d/phpmyadmin.conf ในส่วนดังด้านล่าง
           ## added by sompan
            Order deny,allow
            Deny from all
            Allow from localhost 127.0.0.0/255.0.0.0 ::1/128
           ## added by sompan
    จากนั้นต้องรันโปรแกรมใหม่ด้วยคำสั่ง sudo /etc/init.d/apache2 restart
    ถ้าต้องการ Setup phpmyadmin ผ่านทางหน้าเว็บใหม่อีกให้ทำดังนี้
    1. สามารถเปลี่ยนรหัสผ่านใหม่ โดยรันคำสั่งใน terminal ดังนี้
       htpasswd -c /etc/phpmyadmin/htpasswd.setup root
    2. ใช้ Firefox เปิดไปที่ localhost/scripts/setup.php เมื่อเสร็จให้ ดาวน์โหลดไฟล์ config แล้วนำไปไว้ที่ /etc/phpmyadmin/config.inc.php

  16. Performance Note
    Configure data for the web server is in file /etc/apache2/apache2.conf
    In the box is important data. Please read comment lines.

    <IfModule mpm_prefork_module>
        StartServers           5
        MinSpareServers       2
        MaxSpareServers      5
        MaxClients           100
        MaxRequestsPerChild   4000
    </IfModule>

    ### Note by sompan
    #The above setting: MaxClients            100
    #will let 100 users connect to the server at the same time in the duration of 1 sec.
    #It can handle more than 100 users but not at the same second.
    #This is under the assumption that your system has swap 2 GB.

    #For swap 4GB, you may increase MaxClients to 200

    #How fast or how is the responsiveness of the server
    #will depend on how much RAM on the system.
    #Normally, with RAM  512, it will good for 40 users at the same time.
    #while RAM 1GB good for 80 users and
    #RAM 2GB is good for 160 user.
    #################


    If you have change data in /etc/apache2/apache2.conf, restart web server by running on the terminal with command:: sudo service apache2 restart
    If you do not know how to do that just reboot the computer.


    ข้อควรทราบเกี่ยวกับประสิทธิภาพการทำงานของเครื่องเซิร์ฟเวอร์
    ค่าคอนฟิกอยู่ในไฟล์ /etc/apache2/apache2.conf
    ซึ่งมีส่วนของข้อมูล ที่เกี่ยวข้องดังในตาราง

    <IfModule mpm_prefork_module>
        StartServers           5
        MinSpareServers       2
        MaxSpareServers      5
        MaxClients           100
        MaxRequestsPerChild   4000
    </IfModule>

    ### Note by sompan
    #The above setting: MaxClients            100
    #will let 100 users connect to the server at the same time in the duration of 1 sec.
    #It can handle more than 100 users but not at the same second.
    #This is under the assumption that your system has swap 2 GB.
    #For swap 4GB, you may increase MaxClients to 200

    #How fast or how is the responsiveness of the server
    #will depend on how much RAM on the system.
    #Normally, with RAM  512, it will good for 40 users at the same time.
    #while RAM 1GB good for 80 users and
    #RAM 2GB is good for 160 user.
    #################


    ใจความสำคัญดังเขียนไว้ในส่วนที่เป็นคอมเม้นท์ในบรรทัด ที่มีเครื่องหมาย # นำหน้าดังนี้
    ในไฟล์คอนฟิก /etc/apache2/apache2.conf ที่ได้กำหนด MaxClients ให้มีค่าเป็น 100 นั้น อยู่บนพื้นฐานที่ว่า มีการสร้าง swap ไฟล์ขนาด 2 GB. ถ้าท่านกำหนดให้สร้าง swap ไฟล์ให้มีขนาด 4 GB. ท่านสามารถเปลี่ยนค่านี้ให้เป็น 200 สมมุติมีการกำหนด MaxClients ให้มีค่าเป็น 100 ผลคือ เครื่องเซิร์ฟเวอร์จะสามารถรองรับผู้ใช้ ต่อเข้ายังเครื่องเซิร์ฟเวอร์ พร้อมๆ กัน ในวินาทีหนึ่งๆ ได้สูงสุด 100 คน ส่วนการตอบสนองจะเร็วหรือช้านั้น ขึ้นอยู่กับขนาดของ RAM ถ้า RAM ขนาด 512 MB การตอบสนองจะเร็วสุดสำหรับผู้ใช้ 40 คนแรก, ถ้า RAM ขนาด 1 GB การตอบสนองจะเร็วสุดสำหรับผู้ใช้ 80 คนแรกและถ้า RAM ขนาด 2 GB การตอบสนองจะเร็วสุดสำหรับผู้ใช้ 160 คนแรกเป็นต้น อาจจะมีคนสงสัยว่า ถ้ากำหนด MaxClients ให้มีค่าเป็น 100 แล้ว จะใช้สอบ สำหรับการสอบที่มีผู้เข้าสอบ 250 คนหรือมากกว่าได้หรือไม่ คำตอบคือสามารถสอบได้ เพียงแต่ว่าถ้าในวินาทีใด มีจำนวนผู้เข้าสอบต่อเข้ามายังเครื่องเซิร์ฟเวอร์มากกว่า 100 คนพร้อมกัน เช่นสมมุติว่าเป็น 140 คน จะมีเฉพาะ 100 คนเท่านั้นที่ต่อได้ อีก 40 คนต้องรอจนกว่าใน 100 คนแรกนั้น เสร็จไปอย่างน้อย 40 คนก่อน

        ถ้ามีการเปลี่ยนแปลงค่าในไฟล์ คอนฟิก /etc/apache2/apache2.conf แล้วให้รันใน terminal ด้วยคำสั่ง:
    sudo service apache2 restart แต่ถ้าใช้คำสั่งไม่เป็น ให้บูตเครื่องใหม่


  17. Importance security concern
    Before using as a online test server, you should check firewall.
    If you want to see whether firewall is working, on the terminal run command:
           sudo iptables -nL
    If the result displayed as below, it means firewall is working
    root@localhost:/home/sut# iptables -nL
    Chain INPUT (policy DROP)
    target     prot opt source               destination        
    ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain FORWARD (policy DROP)
    target     prot opt source               destination        
    ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
    ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-forward (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-input (1 references)
    target     prot opt source               destination        
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:137
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:138
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:139
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:445
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:67
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:68
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-forward (1 references)
    target     prot opt source               destination        
    ufw-user-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-input (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
    DROP       all  --  0.0.0.0/0            0.0.0.0/0           ctstate INVALID
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 3
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 4
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 11
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 12
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp spt:67 dpt:68
    ufw-not-local  all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  224.0.0.0/4          0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            224.0.0.0/4        
    ufw-user-input  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-output (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ufw-user-output  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-not-local (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type LOCAL
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type MULTICAST
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    DROP       all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-forward (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-input (1 references)
    target     prot opt source               destination        
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-limit (0 references)
    target     prot opt source               destination        
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

    Chain ufw-user-limit-accept (0 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          


       If firewall is not working, after you setup the server network card or have obtained IP for the server network card, on the terminal run command: sudo iptables-restore /etc/rc.local.fw


       ข้อควรทราบเกี่ยวกับการรักษาความปลอดภัย
       ก่อนการใช้งานเครื่องเซิร์ฟเวอร์สำหรับการสอบออนไลน์ ท่านควรตรวจสอบการทำงานของไฟร์วอลล์ก่อน
       ถ้าต้องการทราบว่าไฟร์วอลล์ทำงานแล้วหรือยัง ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล
           sudo iptables -nL
       จากนั้น ถ้าผลที่ได้ในหน้าจอเป็นดังตารางด้านล่าง แสดงว่าไฟร์วอลล์ทำงานแล้ว
    root@localhost:/home/sut# iptables -nL
    Chain INPUT (policy DROP)
    target     prot opt source               destination        
    ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain FORWARD (policy DROP)
    target     prot opt source               destination        
    ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination        
    ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0          
    ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-forward (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-input (1 references)
    target     prot opt source               destination        
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:137
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:138
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:139
    RETURN     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:445
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:67
    RETURN     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:68
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-after-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-forward (1 references)
    target     prot opt source               destination        
    ufw-user-forward  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-input (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
    DROP       all  --  0.0.0.0/0            0.0.0.0/0           ctstate INVALID
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 3
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 4
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 11
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 12
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp spt:67 dpt:68
    ufw-not-local  all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  224.0.0.0/4          0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            224.0.0.0/4        
    ufw-user-input  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-before-output (1 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    ufw-user-output  all  --  0.0.0.0/0            0.0.0.0/0          
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-not-local (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type LOCAL
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type MULTICAST
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0           ADDRTYPE match dst-type BROADCAST
    DROP       all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-forward (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-input (1 references)
    target     prot opt source               destination        
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-limit (0 references)
    target     prot opt source               destination        
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

    Chain ufw-user-limit-accept (0 references)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          

    Chain ufw-user-output (1 references)
    target     prot opt source               destination        
    RETURN     all  --  0.0.0.0/0            0.0.0.0/0          


    แต่ถ้าพบว่าไฟร์วอลล์ไม่ทำงาน หลังจากการกำหนดไอพีให้กับเครื่องแล้ว หรือหลังจากเครื่องได้ไอพีแล้ว ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล
    sudo iptables-restore /etc/rc.local.fw

  18. Firewall program
    Enable firewall at system boot
    sut@localhost:~$ sudo ufw enable
    Disable firewall at system boot
    sut@localhost:~$ sudo ufw disable
    Adding rules:
    sut@localhost:~$ sudo ufw allow from any to any proto tcp port 53
    sut@localhost:~$ sudo ufw allow from any to any proto udp port 53
    sut@localhost:~$ sudo ufw allow http
    Please read /etc/sudoers

    โปรแกรมไฟร์วอลล์
    กำหนดให้ไฟร์วอลล์ทำงานทุกครั้งพร้อมกับการบูตระบบ ใช้คำสั่ง
    sut@localhost:~$ sudo ufw enable
    กำหนดให้ไฟร์วอลล์ยุติการทำงานทุกครั้งพร้อมกับการบูตระบบ ใช้คำสั่ง
    sut@localhost:~$ sudo ufw disable
    การเพิ่มกฏ
    sut@localhost:~$ sudo ufw allow from any to any proto tcp port 53
    sut@localhost:~$ sudo ufw allow from any to any proto udp port 53
    sut@localhost:~$ sudo ufw allow http
    อ่านไฟล์ /etc/sudoers

ลิขสิทธิ์
เป็นโอเพนซอร์ส พัฒนาต่อยอดและใช้ได้ฟรี ด้วยลิขสิทธิ์ General Public License

ขอขอบคุณ
ติดตามผลงานใหม่ๆ ของเราได้ที่ http://linux.sut.ac.th/ ทางทีมงานขอขอบคุณทุกท่านที่ใช้งาน