Archive

Archive for the ‘Linux’ Category

ผลการทดสอบ Mysql Connector/NET ติดต่อกับ Mono-Project

มกราคม 13th, 2009

จากการทดสอบโหลด Mysql Connector/NET มาใช้กับ mono ซึ่งรุ่นที่ตั้ดตั้ง รองรับ .net framework 1,2
โ ดยโหลด Mysql Connector/NET จาก

http://dev.mysql.com/downloads/connector/

รุ่นที่ทดสอบ ได้แก่

  • mysql-connector-net-1.0.10
  • mysql-connector-net-5.0.9
  • mysql-connector-net-5.1.7
  • mysql-connector-net-5.2.5
โดยในการทดสอบผมใช้ mono รุ่น
# mono -V
Mono JIT compiler version 1.2.4 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       normal
        Architecture:  amd64
        Disabled:      none
ผลที่ได้คือเ มื่อใช้ mysql-connector-net-1.0.10 แล้วจะไม่พบอาการโหลดข้อมูลแล้วค้าง แบบรุ่นใหม่ๆ จึงไม่น่าจะแปลกใจหากใครใช้รุ่นอื่น กับ mono แล้วจะเกิดปัญหาขึ้นได้

Linux, OpenSource

คำสั่งตรวจสอบพื้นที่ Quota

มกราคม 12th, 2009

ตัวอย่างการกำหนด โควต้า

เช่นต้องการจำกัดผู้ใช้ชื่อ myuser
มีพื้นที่ไม่เกิน 200000 blocks(200 Mbytes) และ/หรือ 1000 inodes(แฟ้ม)
โดยเริ่มเตือนที่ 160000 blocks(160 Mbytes) และ/หรือ 800 inodes ด้วยตัวอย่างคำสั่ง
#setquota -u myuser 160000 200000 800 1000 -a

 

คำสั่งตรวจสอบพื้นที่ Quota

# quota -u dd26_ktlogic.com

# quota -g web26

Disk quotas for group web26 (gid 10026):

     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

      /dev/sda5   25156  512000  513024            4382       0       0

ค่าของ blocks คือจำนวนพื้นที่ที่ถูกใช้ไป (นับเป็น block)

ค่าของ files คือจำนวนพื้นที่ที่ถูกใช้ไป (นับเป็น file)

quota คือค่าที่จะมีการแจ้งเดือน เมื่อเกินค่าที่ตั้งไว้

limit คือค่าที่ห้ามเกินไปกว่านี้

 

การใช้ quota จะไม่มีการ update พื้นที่ให้อัตโนมัติครับ ต้องมีการทำ script เอาเอง เช่น

/etc/cron.daily/quota-check มีข้อมูลดังนี้
#!/bin/sh
/sbin/quotaoff -a
/sbin/quotacheck -vagum -a
/sbin/quotaon -a

Linux

ทดสอบ คอมไ ฟล์ และใช้งาน Mono (บน CentOS linux)

มกราคม 11th, 2009

จะเป็นการทดสอบสร้างโปรแกรมง่ายๆครับ และทดสอบ run เพื่อแสดงข้อความง่ายๆ

 

[root@ns1 test_mono]# echo ‘class Hello{static void Main(){System.Console.Write(”Sourcecode.in.th\n”);}}’ >> program.cs

[root@ns1 test_mono]# mcs program.cs

[root@ns1 test_mono]# mono program.exe

Sourcecode.in.th

[root@ns1 test_mono]#

C#, Linux, OpenSource

ติดตั้ง Mono (.net บน Linux) บน CentOS 5

มกราคม 11th, 2009

ติดตั้งผ่านคำสั่ง yum ครับ

#yum groupinstall Mono

#yum install xsp

#yum install mod_mono

 

ตรวจสอบว่าที่ /etc/httpd/conf.d พบไฟล์ mod_mono.conf หรือไม่ครับ หากพบไฟล์ ก็แปลว่าได้ทำการติดตั้ง mod_mono เป็นที่เรียบร้อย

ต่อมาทำการ restart apache 

#/etc/rc.d/init.d/httpd restart

ตรวจสอบ process ของ mono ด้วยคำสั่ง

#ps -ef |grep mono

ควรจะมีรายการของ mono ทั้ง framework 1 และ 2 ดังตัวอย่าง

[root@ns1 web]# ps -ef |grep mono

apache   21098     1  0 16:44 ?        00:00:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master

apache   21113     1  1 16:44 ?        00:00:00 /usr/bin/mono /usr/lib64/mono/2.0/mod-mono-server2.exe –filename /tmp/mod_mono_server_dd25 –applications /:/var/www/web25/web/ –nonstop

root     21237  7561  0 16:45 pts/1    00:00:00 grep mono

 

ทดสอบสร้าง asp.net ไฟล์ นำไปไว้ที่เว็บได้เลยครับ

Linux, OpenSource

แก้ปัญหา ใช้งาน Mono ได้บ้างไม่ได้บ้าง!

ธันวาคม 28th, 2008

จากการทดลองติดตั้ง Mono-Project ซึ่งเป็น .net สำหรับ OS ที่เป็น Linux ซึ่งผมใช้ CenOS เป็นตัวทดสอบ
พบว่าในการติดตั้งทำได้ง่ายๆ แต่อาจจะมีปัญหาในส่วนของการทำงาน ซึ่งยังมีส่วนที่ยังไม่ค่อยเข้าใจอยู่บ้าง

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

ผมได้ตรวจสอบพบว่า มี process ของ mono ค้างอยู่เป็นจำนวนมาก โดยใช้คำสั่ง

#ps -aux|grep mono

apache   32363  0.0  0.0  31964  1348 ?        Ssl  Dec27   0:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master
apache   32364  0.0  0.0  31964  1348 ?        Ssl  Dec27   0:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master
apache   32366  0.0  0.0  31960  1348 ?        Ssl  Dec27   0:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master

และเมื่อทำการ restart apache ทำไม่ได้ คุณจะต้องทำการ kill process ที่ค้างอยู่ให้หมดเสียก่อน โดยใช้คำสั่ง

#killall mono

และ restart apache ได้เลยครับ

#/etc/rc.d/init.d/httpd restart

และผมได้ทำการค้นหาคำตอบว่า ทำไมถึงมี process ของ Mono ค้างอยู่เป็นจำนวนมาก และในที่สุดก็รู้ว่า เกิดจากการ stop Apache ไม่สมบูรณ์ คือจะไม่มีการ kill process ของ Mono ไปด้วย (ซึ่งก็แน่นอนครับ) เราต้องเพิ่มเติมคำสั่งเข้าไปเอง โดย

#vi /etc/rc.d/init.d/httpd

แล้วเพิ่มบรรทัด killall เข้าไปในส่วนของโค้ดการ stop()

killproc -d 10 $httpd
#for Mono-Project
killall mono

RETVAL=$?

 แค่นี้เมื่อมีการ stop Apache ก็มีจะการสั่ง kill process ของ Mono ให้เราด้วย

Linux, OpenSource

การติดตั้ง vnc บน CentOS5.2

ธันวาคม 21st, 2008

VNC เป็นเครื่องมือสำหรับการ Remote เข้าไปจัดการกับเครื่องอื่น เป็นโปรแกรมประภท Remote Desktop
ซึ่งทำให้เกิดความสะดวกในการจัดการเครื่องปลายทาง

โดยทั่วไปแล้วบน Linux จะมีชุดโปรแกรมนี้มาให้ด้วยแล้ว และมีชื่อว่า vncserver

การติดตั้งในส่วนของ server และ client

#yum install vnc-server
#yum install vnc

ทำการตรวจสอบว่าเครื่อง server ของคุณได้ทำการติดตั้ง x windows และ GNOME หรือยัง หากว่ายัง ให้ดำเนินการโดยใช้คำสั่ง
yum หรือจะติดตั้งผ่านทาง rpm ก็ได้เช่นกัน
#yum groupinstall “GNOME Desktop Environment”

ในกรณีที่การติดตั้ง GNOME เกิดข้อผิดพลาด
missing xxxxxxxxxxx.so.0.

ให้ทำการดาว์นโหลดไฟล์ package มาติดตั้งเอง โดยค้นหาไฟล์ได้จาก
http://mirror.centos.org/centos/5/os/i386/CentOS/

และทำการติดตั้งด้วยคำสั่ง
#rpm -Uvh –nodeps xxxxxxxxxxxxxxx.rpm

ขั้นตอนต่อมาเป็นการสร้าง user และกำหนด password (หากมี user อยู่แล้วก็ไม่จำเป็นต้องสร้างใหม่)

# useradd suppakit
# passwd suppakit

ทำการ login ด้วย user ที่ต้องการ และทำการกำหนด password สำหรับ vnc ด้วยคำสั่ง
#vncpasswd

จะมีการสร้างไฟล์ path .vnc และไฟล์ passwd ให้เข้าไปดูผ่านทางคำสั่ง
#cd .vnc
#ls

ทำการแก้ไข Server configuration ด้วยคำสั่ง
#vi /etc/sysconfig/vncservers

และเพิ่มรายละเอียดของ user ที่ต้องการใช้งาน vnc เข้าไปดังนี้

VNCSERVERS=”1:suppakit”
VNCSERVERARGS[1]=”-geometry 800×600″

ทำการสร้างไฟล์ xstartup โดยการ startและ stop vncserver ดังนี้
#service vncserver start
#service vncserver stop

หากคุณลอง ls ดูจะมีไ ฟล์ .log, passwd แ ละ xstartup

ทำการแก้ไขไฟล์ xstartup ดังนี้

#!/bin/sh (-)
# Add the following line to ensure you always have an xterm available.

#( while true ; do xterm ; done ) &
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &

exec gnome-session &

ในส่วนสีแดง ผมลองแล้ว ไม่ work เพราะมีการเปิดหน้าต่าง xterm ค้างใน process ไว้มาก

ทดสอบการทำงานด้วยโปรแกรม vnc โดยกำหนดค่าดังนี้

vncviewer 192.168.0.10:1

วิธีการกำหนดใ ห้ vncserver ทำการทุกครั้งหลังการ boot ด้วยคำสั่ง
#chkconfig vncserver on

 

From http://wiki.centos.org/HowTos/VNC-Server

Linux

เมื่อใช้ GNOME แล้วเกิดปัญหา “i’ve detected a panel already running, and will now exit”

ธันวาคม 21st, 2008

เป็นความผิดพลาดที่เกิดจาก มี process ที่เรียกใช้ GNOME ในส่วนของ panel อยู่แล้ว
ทำให้เมื่อคุณเข้าสู่หน้าต่างของ GNOME เกิดมีการแจ้งว่า
“i’ve detected a panel already running, and will now exit”

วิธีการแก้ไขทำได้โดย
#killall gnome-panel

หลังจากนั้นก็ทำการเรียกใช้ panel ขึ้นมาใหม่ ด้วยคำสั่ง
#gnome-panel

Linux

Another application is holding yum lock

ธันวาคม 21st, 2008

เนื่องจากผมใช้ CentOS 5.2 แล้วพบว่าเมื่อทำการยกเลิกการทำงานของ yum แล้ว
ก่อให้มี process ทำงานค้างอยู่ จึงไม่สามารถเรียกใช้ yum อีกครั้งได้

วิธีการแก้คือ ทำการ login เข้าเป็น su (super user)
# cd /var/run/
# dir 

มองหา yum.pid จากนั้นให้ทำการลบทิ้งครับ
# rm -f yum.pid
# dir

ทำการเรียกใช้ yum
# yum update

Linux

ติดตั้ง Xwindows,GNOME ด้วยคำสั่ง yum

ธันวาคม 17th, 2008

#yum groupinstall “X Window System” “GNOME Desktop Environment” “Sound
and Video”

หากต้องการทราบว่ามี กลุ่มของโปรแกรมอะไรบ้างที่สามารถติดตั้งได้
ต้องใช้คำสั่ง
#yum grouplist

อันนี้ผมทดสอบใน CentOS

Linux

ติดตั้งฟอนด์ไทยใน CentOS 5.2

ธันวาคม 15th, 2008

ดาวน์โหลดฟอนด์
# wget ftp://linux.thai.net/pub/ThaiLinux/software/thai-ttf/thai-ttf-0.4.6.tar.gz

แตกไฟล์
# tar xvfz thai-ttf-0.4.6.tar.gz

เข้าห้อง
# cd thai-ttf-0.4.6

สร้างห้องไว้ที่
# mkdir /usr/share/fonts/thai-ttf

ก็อปปี้ไฟล์
# cp *.* /usr/share/fonts/thai-ttf/

เพิ่มรายการฟอนท์ไทย เข้าไปในรายการ
# chkfontpath -a /usr/share/fonts/thai-ttf

ตรวจสอบด้วยคำสั่ง จะพบรายการ ฟอนท์ไทยของเรา
#chkfontpath -l

จากนั้นก็ทำการ restart เครื่อง

Linux