บันทึกการติดตั้ง FreeBSD 6.0 & Misc

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

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

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

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

5.ทำการ autofix package database #/usr/local/sbin/pkgdb -aF

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

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

8.จากนั้นก็ติดตั้ง 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**************************

1. ติดตั้ง 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 ผมใช้งานได้ตามปกติแล้วครับ