มูลนิธิสื่อเพื่อเยาวชน
ว่าที่ร้อยตรี จิรศักดิ์ กรรเจียกพงษ์

freebsd 6.0_install


FreeBSD

อันดับแรกติดตั้ง cvsup ก่อนเลย
#cd /usr/ports/net/cvsup-without-gui
#make install && make clean

ทำการ synchronize ports index กับ cvsup server
#/usr/local/bin/cvsup -g -L 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfile

ติดตั้ง portupgrade
#cd /usr/ports/sysutils/portupgrade
#make install && make clean

ทำการอัพเดท ports database
#/usr/local/sbin/portsdb -Uu

ทำการ auto fix package database
#/usr/local/sbin/pkgdb -aF

ค้นหาซอฟท์แวร์ต่างๆที่เคยถูกติดตั้งแล้วใน ports เพื่อทำการอัพเดท จะว่าไปแล้วข้อนี้ไม่ต้องทำก็ได้เพราะพึ่งจะติดตั้ง freebsd ใหม่
#/usr/local/sbin/portversion -L "<"

รีบูตเครื่องใหม่
#shutdown -r now


จากนั้นก็ติดตั้ง Perl5.8
#cd /usr/ports/lang/perl5.8

เนื่องจากมีเวอร์ชั่นเก่าที่ติดตั้งมาพร้อม FreeBSD อยู่ก่อนแล้ว ให้จัดการลบออกก่อน
#make deinstall && make clean

เริ่มติดตั้ง
#make
? WITHOUT_PERL_64BITINT=yes
? WITH_THREADS=yes
? ENABLE_SUIDPERL=yes
? install clean

ถัดมาก็ติดตั้ง MySQL5.0

# cd /usr/ports/databases/mysql50-server
# make
? WITH_CHARSET=tis620
? WITH_XCHARSET=all
? WITH_COLLATION=tis620_thai_ci
? WITH_OPENSSL=yes
? WITH_PROC_SCOPE_PTH=yes
? install clean

เพื่อให้การทำงานของ mysql server มีประสิทธิภาพมากที่สุด ก็เลือกไฟล์คอนฟิกให้เหมาะสมกับเครื่องเรา ปกติ mysql จะใช้ไฟล์คอนฟิกชื่อ /etc/my.cnf
แต่ในขณะที่ติดตั้ง mysql เสร็จใหม่ๆจะไม่มีไฟล์นี้ให้ เราจะต้องสำเนาเอาไฟล์คอนฟิกจาก /usr/local/share/mysql ออกมาเอง ซึ่งจะมีไฟล์ตัวอย่างอยู่ 5 ไฟล์ด้วยกัน ดังนี้

เหมาะสำหรับเครื่องที่มีหน่วยความจำ 4 GB , ใช้ innodb อย่างเดียว
/usr/local/share/mysql/my-innodb-heavy-4G.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ 1-2 GB
/usr/local/share/mysql/my-huge.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ 512 MB
/usr/local/share/mysql/my-large.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ 32-64 MB , หรือ 128 MB ถ้ามีเว็บเซิร์ฟเวอร์ด้วย
/usr/local/share/mysql/my-medium.cnf

เหมาะสำหรับเครื่องที่มี หน่วยความจำ น้อยกว่า 64 MB รัน mysql อย่างเดียว
/usr/local/share/mysql/my-small.cnf

เนื่องจากเครื่องที่ผมใช้ทำ server มีแรมอยู่ 128 MB ก็จะใช้ไฟล์ my-medium.cnf
#cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
#chown root:sys /etc/my.cnf
#chmod 644 /etc/my.cnf

reboot เครื่องใหม่ (เคยทดลองไม่ reboot ไม่สามรถ start mysql ได้แม้จะใช้คำสั่ง rehash ก็ยังไม่ได้งงเหมือนกันครับ)
#shutdown -r now

ต่อไปก็ใส่ password ให้กับ root ต้องสั่ง start mysql ก่อน
#/usr/local/etc/rc.d/mysql.server start
จากนั้นก็ใส่พาสเวิร์ดตามต้องการ
#/usr/local/bin/mysqladmin -u root password 'password ที่ต้องการ'

ทดลองเข้าไปใช้ mysql
#mysql -u root -pต่อด้วยพาสเวิร์ด
เช่น
#mysql -u root -p123456

เพื่อให้ mysql start พร้อมกับตอนเปิดเครื่อง เพิ่มคำสั่งในไฟล์ rc.conf ตามนี้
#ee /etc/rc.conf
เพิ่มคำสั่ง mysql_enable="YES" เข้าไป
เซฟไฟล์ ออกจาก ee

ก่อนติดตั้ง Apache พอดีมีโอกาสได้แวะเข้าไปที่เวบของเค้าเห็นมีบอก Apache 2.2.0 Released จับติดตั้งซะเลย
วิธีติดตั้ง Apache2.2.0 ให้รองรับ SSL

#cd /usr/ports/www/apache22
#make
? WITH_SSL_MODULES=yes
? WITH_THREADS=yes
? install clean

สั่ง start apache
#/usr/local/etc/rc.d/apache22.sh start

ทดลองเรียกจากบราวส์เซอร์
http://192.168.1.30(ip ของเครื่อง freebsd server)
ถ้าไม่มีปัญหาใดๆจะขึ้นข้อความว่า It works!

ถ้าจะแก้ไขค่า config ต่างๆก็ทำได้ที่ไฟล์ httpd.conf
#ee /usr/local/etc/apache22/httpd.conf
ทุกครั้งที่แก้ไขไฟล์ config จะต้อง restart apache ใหม่เสมอ
#/usr/local/etc/rc.d/apache22.sh restart

ถ้ามี error ขึ้นมาแบบนี้
[warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
ให้ใช้คำสั่งนี้
# kldload accf_http
จากนั้นก็ restart apache ใหม่
#/usr/local/etc/rc.d/apache22.sh restart
เพื่อให้ accf_http ทำงานทุกครั้งในขณะบูตเครื่องแก้ไขโดยใส่คำสั่งนี้เข้าไปที่ไฟล์ loader.conf
#ee /boot/loader.conf
พิมพ์คำสั่งนี้เข้าไปแล้วเซฟไฟล์
accf_http_load="YES"

เพื่อให้ Apache22 ทำงานพร้อมกับที่เปิดเครื่องขึ้นมาก็ให้ใส่คำสั่งนี้เข้าไปในไฟล์ rc.conf
#ee /etc/rc.conf
เพิ่มคำสั่ง apache22_enable="YES" เข้าไป เซฟไฟล์แล้วออกจาก ee

รีบูตเครื่องใหม่
#shutdown -r now

วิธีการติดตั้ง PHP5

#cd /usr/ports/lang/php5
# make config
เลือกค่าต่างๆตามที่จะใช้งาน (APACHE2, DEBUG, MULTIBYTE, IPV6)
#make install clean

โดยปกติ php จะใช้ไฟล์คอนฟิกชื่อ /usr/local/etc/php.ini แต่ในขณะที่ติดตั้ง php เสร็จใหม่ๆจะไม่มีไฟล์นี้ให้ เราจะต้องสำเนาเอาไฟล์คอนฟิกจาก /usr/local/etc/ ออกมาเอง
#cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
แก้ไขค่า config ที่ไฟล์ php.ini
#ee /usr/local/etc/php.ini
ค้นหาบรรทัด
register_globals = Off
แก้ไขเป็น
register_globals = On
บรรทัด
;default_charset = "iso-8859-1"
เอาเครื่องหมาย ; ข้างหน้าออกแล้วแก้ไขเป็น
default_charset = "tis-620"

บรรทัด
;upload_tmp_dir =
เอาเครื่องหมาย ; ข้างหน้าออกแล้วแก้ไขเป็น
upload_tmp_dir = "/tmp/upload"

บรรทัด
;session.save_patch = "/tmp"
เอาเครื่องหมาย ; ข้างหน้าออกแล้วแก้ไขเป็น
session.save_patch = "/tmp/session"

บรรทัด
session.cookie_patch = /
แก้ไขเป็น
session.cookie_patch = "/tmp/cookie"

สร้างไดเรคทอรี่ขึ้นมาที่ /tmp 3 อันชื่อ upload, session, cookie
#mkdir /tmp/upload session cookie

chmod ให้เป็น 777 ทั้ง 3 ไดเรคทอรี่
#chmod 777 /tmp/upload session cookie

แก้ไขไฟล์ httpd.conf เพื่อให้รองรับ php
#ee /usr/local/etc/apache22/httpd.conf

ค้นหาบรรทัด
Directoryindex index.html
เพิ่ม index.php และ index.phps เข้าไป เป็น
Directoryindex index.html index.php index.phps

ค้นหาบรรทัด
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
เพิ่มคำสั่งนี้ต่อท้ายลงไป
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
เซฟไฟล์แล้ว restart apache ใหม่
#/usr/local/etc/rc.d/apache22.sh restart

สร้างไฟล์ทดสอบการทำงานของ php
#ee /usr/local/www/apache22/data/test.php
ใส่คำสั่งนี้ลงไป

echo phpinfo();
?>

เซฟไฟล์ ใช้บราวส์เซอร์ทดลองเรียกดู
http://ไอพีของเครื่อง server/test.php
เช่น
http://192.168.1.30/test.php


วิธีติดตั้ง Extension ต่างๆให้กับ PHP5
#cd /usr/ports/lang/php5-extensions
# make config
เลือก extention ตามที่จะใช้งาน
#make install clean

restart apache ใหม่
#/usr/local/etc/rc.d/apache22.sh restart

ทีนี้ PHP5 ก็จะใช้ extension ต่างๆได้แล้ว

วิธีติดตั้ง phpMyAdmin
#cd /usr/ports/databases/phpmyadmin
#make config
เลือกเอาว่าจะใช้อะไรบ้าง (ผมเลือกทั้งหมด)
#make install clean

แก้ไขไฟล์ config.inc.php
#ee /usr/local/www/phpMyAdmin/config.inc.php

$cfg['PmaAbsoluteUri'] = 'http://192.168.1.30/pma';
แก้ไข '192.168.1.30' ให้เป็น ip-address ของเครื่อง Server คุณเอง

$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?
เพื่อให้ตอนเรียก phpmyadmin ต้องใส่รหัสผ่านก่อนถึงจะเข้าได้

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
เป็น login เดียวกันกับที่ใช้ตอนติดตั้ง MySQL
$cfg['Servers'][$i]['password'] = 'xxxxxxxx'; // MySQL password
เป็น password เดียวกันกับที่ใช้ตอนติดตั้ง MySQL

แก้ไขไฟล์ httpd.conf
#ee /usr/local/etc/apache22/httpd.conf
หาดูบรรทัดในส่วนที่เกี่ยวกับ Alias โดยเพิ่มข้อความดังนี้เข้าไป
Alias /pma/ "/usr/local/www/phpMyAdmin/"

Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all


จากนั้นให้ restart apache ใหม่
#/usr/local/etc/rc.d/apache22.sh restart

ทดลองเรียกใช้งานดู (จะเรียกจากเครื่องอื่นๆที่อยู่ในเครือข่ายก็ได้)
http://192.168.1.30/pma/ ตรงนี้อย่าลืม / ต่อท้ายด้วยไม่เช่นนั้นจะเข้าไม่ได้


ศิษย์น้อยฝึกวิชา


Sex :
Post : 298
สมาชิกลำดับที่ : 315

ผ่านเข้าไปในเวบไซต์ของ thainuke เห็นหลายๆท่านบ่นกันว่ามีปัญหาภาษาไทย ผมก็เลยจัดแจงดาวน์โหลดมาติดตั้งดู
รายละเอียดของ server ที่ผมใช้งานอยู่ก็ตามข้างบนนั่นแหละครับ
perl 5.8
apache 2.2.0
mysql 5.0.16
php 5.0.5 ว่าจะลอง 5.1.1 อยู่เหมือนกันแต่ยังไม่มีในพอร์ทเลยละไว้ก่อน

จากที่ผมลองติดตั้งดูกลับไม่เจอปัญหาภาษาไทยเป็น ????? ตามที่หลายๆท่านเจอกันครับ
http://www.techbuddy.net/xhtml

BY::xdisc http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=3523

ติดตั้ง postfix แบบว่ายังไม่เคยใช้อยากลองใช้มั่งเห็นหลายๆท่านว่าดีอ่ะครับ
ก็ติดตั้งผ่าน ports อีกนั่นแหละ

เนื่องจากก่อนหน้านี้ผมได้เปิดใช้งาน sendmail ก็เลยจำเป็นต้องสั่งหยุดและก็ kill process มันก่อน
#sendmail -q
#killall sendmail

เริ่มติดตั้ง postfix
#cd /usr/ports/mail/postfix
#make install clean
ไม่ต้องเลือก options ใดๆเลยครับ
ขณะติดตั้ง หากมีการถามว่า
You need user "postfix" added to group "mail". Would you like me to add it [y]? ให้ตอบ y ไป

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? ให้ตอบ y ไป

พอเสร็จแล้วก็สร้าง symbolic link ตามคำแนะนำในขณะติดตั้ง
#cd /usr/local/etc/rc.d
#ln -s /usr/local/sbin/postfix postfix.sh

จากนั้นแก้ไขไฟล์ /etc/rc.conf โดยเพิ่มคำสั่งตามนี้เข้าไป
sendmail_enable="NO" #postfix ได้ถูกสั่ง start ผ่าน shell script อยู่แล้ว ก็เลยสั่ง NO ไปไม่งั้นจะทำงานซ้ำซ้อนกัน
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_procname="/usr/local/libexec/postfix/master"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
sendmail_submit_enable="NO"

แก้ไขไฟล์ /etc/periodic.conf เนื่องไฟล์นี้ไม่มีใน /etc ก็ต้องไปก็อปxxxมาใส่ครับ
#cp /etc/defaults/periodic.conf /etc/periodic.conf

จากนั้นก็เปิดไฟล์ขึ้นมาทำการแก้ไข ค้นหาบรรทัดเหล่านี้แล้วเปลี่ยนจาก YES เป็น NO
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

และอีกไฟล์ที่ต้องแก้ไขคือ /usr/local/etc/postfix/main.cf ค้นหาบรรทัดเหล่านี้แล้วเอาเครื่องหมาย # ข้างหน้าออก
myhostname = http://www.techbuddy.net #ใส่ชื่อ host ลงไปได้เลย
mydomain = techbuddy.net #ใส่ชื่อ domain ลงไปได้เลย
myorigin = $mydomain

inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = class
mail_spool_directory = /var/mail

พอแก้ไขทุกไฟล์เสร็จ และก็เซฟทุกไฟล์แล้วให้ reboot เครื่องอีกครั้ง แล้วทดลองส่ง-รับ เมล์ดู
ถ้าเจอปัญหานี้ fatal: open database /etc/aliases.db
ให้ก็อปxxxไฟล์จาก /etc/mail/aliases.db ไปไว้ที่ /etc/aliases.db ได้เลยครับ
#cp /etc/mail/aliases.db /etc/aliases.db
#newaliases

สั่ง reload postfix ใหม่
#postfix reload

จากนั้นให้ลอง telnet เข้าไปที่ port 25 ดู จะต้องได้ข้อความคล้ายๆแบบนี้ครับ
www# telnet 192.168.1.30 25
Trying 192.168.1.30...
Connected to 192.168.1.30.
Escape character is '^]'.
220 http://www.techbuddy.net ESMTP Postfix
ออกจาก telnet ใช้คำสั่ง quit จากนั้นก็ทดลองส่งและก็รับเมล์ดูอีกครั้ง

 

ติดตั้ง pop3 server ผมเลือกใช้ popper ง่ายดีครับ

#cd /usr/ports/mail/popper
#make install clean

พอติดตั้งเสร็จแล้วให้ทำการแก้ไขไฟล์ inetd.conf
#ee /usr/inetd.conf
เอาเครื่องหมาย # หน้าบรรทัด
#pop3 stream tcp nowait root /usr/local/libexec/popper poper
ออกให้เหลือแค่
pop3 stream tcp nowait root /usr/local/libexec/popper poper
save ไฟล์และออกจาก ee

ต่อไปทำการฆ่า process inetd ทิ้งและให้เริ่มทำงานใหม่
#killall -HUP inetd

จากนั้นทดลอง telnet เข้า server port 110 จะต้องได้ลักษณะนี้ครับ
# telnet 192.168.1.30 110
Trying 192.168.1.30...
Connected to 192.168.1.30.
Escape character is '^]'.
+OK QPOP (version 2.53) at techbuddy.net starting. <[email protected]>

ออกจาก telnet พิมพ์ quit แล้ว Enter

เพื่อให้ pop3 server ทำงานพร้อมกับตอนเปิดเครื่องทุกครั้ง ให้เพิ่มคำสั่ง inetd_enable="YES" เข้าไปในไฟล์ rc.conf ใช้คำสั่งตามนี้เลยครับ
#echo inetd_enable="YES" >> /etc/rc.conf

reboot เครื่องอีกครั้ง
แค่นี้ก็มี pop3 server ไว้ใช้งานแล้วล่ะครับ

 

ช้ dmesg ดูค่าต่างๆ ตอนสตาทอัพถ้าต้องการเซฟเอาไว้ทำยังไงครับ

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

#dmesg | less
#dmesg | more
แบบอ่านช้า ๆ

# dmesg >log.txt
แบบsave ใช้ text editor มาเปิดดูนะ

อีกวิธีนะ กดปุ่ม Scroll Lock แล้วก็กดปุ่มลูกศรเลื่อนขึ้นลงดูครับ

 

อันนี้เป็นปัญหาเกี่ยวกับอินเทอร์รัพท์ของการ์ด LAN ไปชนกับ IRQ 10 ของ FreeBSD ครับ คุณต้องเปลี่ยน IRQ ของการ์ด LAN เป็นเลขอื่น เช่น 5 ,7 ,12 เพื่อไม่ให้ชนกัน ลองตรวจสอบด้วยคำสั่ง grep irq /boot/device.hints จะพบข้อความ .......irq=10 @Default to polling จากนั้นพิมพ์คำสั่ง pciconf -l ตรวจดูว่าการ์ด LAN ของเราใช้ IRQ อะไร แต่จะต้องไม่ใช่เลข 10
วิธีการแก้ไข
1. ให้ปิด ACPI support บน BIOS (disable)
2. ปิดระบบ PNP OS Support บน BIOS เป็น 0ff
3. เปลี่ยนสล็อตเสียบการ์ด LAN
4. ให้ disable ค่า ACPI ในไฟล์ /boot/device.hints โดยเพิ่มบรรทัดคำสั่งนี้ลงไป hint.acpi.0.disabled="1"
เสร็จแล้วบูตเครื่องใหม่ครับ

คุณต้องแก้ที่การ์ด LAN เท่านั้น ห้ามยุ่งกับไฟล์ /boot/device.hints
และให้ทำตามขั้นตอนทั้ง 4 ขั้น อย่างเคร่งครัดน่ะ

หลังจากที่ทำตามขั้นตอนที่ 1 - 4 อย่างเคร่งครัด แล้วใช้คำสั่ง pciconf -l ดู พบว่า การ์ดแลนด์มี irq = 9 นะครับ แต่ก็ยังมี error ขึ้นมาเหมือนเดิม (ติดตั้ง freebsd ใหม่อีกรอบก็ไม่หาย)
แล้วจะแก้ไขยังไงต่อดีครับเนี้ย แล้วถ้าจะเข้าไปแก้ irq ในการ์ดแลนด์จะเข้าไปแก้ตรงไหน

เป็นกะ mainboard ท่านละม๊าง ของผม แก้ biso หมดแล้ว ก็ไม่หาย เฮ่อ ๆ ใส่ การ์ด Lan สองใบ ไม่ทำงาน ต้องใส่ สามใบ มันถึงจะยอมทำงาน เฮ้อ งง
แต่ว่า ถ้าใส่ pci card 2 ใบ ถ้าเป็นการ ชนิดเดียวกัน ถึงไม่เป็น ชิป เดียวกัน มันก็ ดันไปใช้ irq ตัวเดียวกัน เป็นทั้ง M$ และ Unix ทุกประเภท - -"

ปล. M/B ตัวนี้อยู่ในชุดเครื่องของ Laser ขอบบอกว่าขณะนี้ Leser ทำเครื่องได้ห่วยจริง ๆ เอา ชิ้นส่วน ยี่ห้อไรไม่รู้มาใส่ให้ - -" M/B ไม่รับ Hyper Trading แต่ CPU ดันเป็น Hyper Trading ซะงั้น - -"

เมนบอร์ดบางรุ่น เช่น ASUS รุ่นเก่าจะมีปัญหา Watchdog timeout ครับ แนะนำว่า ลองหาการ์ด LAN มียี่ห้อเช่น 3Com , intel , Dlink มาติดตั้งใหม่ น่าจะช่วยได้บ้าง
ส่วนการเซตอัพ IRQ ของการ์ด LAN นั้น คุณต้องใช้ไดร์ฟของการ์ดเพื่อปรับแต่ง IRQ ใหม่ครับ ลองใหม่น่ะ เดี๋ยวก็แก้ได้

เปลี่ยนการ์ดแลนครับผม

แล้วอาการ Watchdog timeout หายไหมครับ

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

คำสำคัญ (Tags): #uncategorized
หมายเลขบันทึก: 16674เขียนเมื่อ 24 กุมภาพันธ์ 2006 12:58 น. ()แก้ไขเมื่อ 10 พฤษภาคม 2012 18:17 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท