วันเสาร์ที่ 11 มกราคม พ.ศ. 2557

ติดตั้ง PHP5 แบบที่ 2 FreeBSD

ติดตั้ง PHP5 แบบที่ 2

ติดตั้ง PHP5
# cd /usr/ports/lang/php5
# make config
เลือกค่าต่างๆตามที่จะใช้งาน ผมไม่เลือก debug อยู่อันเดียว นอกนั้นเอาหมด คิคิ
#make install clean

พอติดตั้งเสร็จก็จัดการกะไฟล์คอนฟิก (php.ini)
# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
จากนั้นก็ปรับแต่งไฟล์ php.ini
# ee /usr/local/etc/php.ini
บรรทัด
;default_charset = "iso-8859-1"
เอาเครื่องหมาย ; ข้างหน้าออกแล้วแก้ไขเป็น
default_charset = "tis-620"

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

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

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

chmod ให้เป็น 777 ทั้ง 2 ไดเรคทอรี่
# chmod 777 /tmp/uptmp
# chmod 777 /tmp/sesstmp

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

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

ค้นหาบรรทัด
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://www.my-office.com/test.php
มีหน้าสีม่วงๆแจงรายละเอียดต่างๆขึ้นมา ถือว่าผ่านล่ะครับ

ต่อไปทำการติดตั้ง Extensions ต่างๆของ PHP5
# cd /usr/ports/lang/php5-extensions
# make config
เลือก extention ต่างๆตามที่จะใช้งาน
# make install clean
พอเสร็จก็สั่ง restart apache อีกที
# /usr/local/etc/rc.d/apache22.sh restart
ลองเรียกหน้า test.php ดู
http://www.my-office.com/test.php
จะมีรายละเอียดต่างๆของ Extensions เพิ่มเข้ามาเป็นอันเรียบร้อยสำหรับ PHP5

ปัญหาเวลาติดตั้ง php-extensions เสร็จทำให้ apache start ไม่ขึ้น เล่นเอาผมมึนอยู่นานสองนาน พอค้นดู error log ก็ได้รู้ว่าเกิดจาก extension imap.so ของ php ก็เลยทดลองปิด extension = imap.so แค่นั้นแหละ apache start ขึ้นได้ปกติ ทีนี้ก็เลยติ๊ต่าง(เดา)เอาว่าน่าจะเกิดจากลำดับการทำงานของแต่ละ extension จัดแจงย้าย extension = imap.so ลงไปไว้บรรทัดล่างสุดและก็ลอง restart apache ดูใหม่ ทีนี้ไม่มีปัญหาใดๆเลยครับ ดูที่หน้า info ของ php ก็มี extension imap โผล่มาให้เห็น Cheesy

# ee /usr/local/etc/php/extensions.ini

extension=bcmath.so
extension=bz2.so
extension=calendar.so
extension=ctype.so
extension=curl.so
extension=dba.so
extension=dom.so
extension=exif.so
extension=ftp.so
extension=gd.so
extension=gettext.so
extension=iconv.so
extension=imagick.so
;extension=imap.so
extension=ldap.so
extension=mbstring.so
extension=mcrypt.so
extension=mhash.so
extension=ming.so
extension=mysql.so
extension=mysqli.so
extension=odbc.so
extension=openssl.so
extension=pcre.so
extension=pdf.so
extension=zlib.so
extension=pdo.so
extension=posix.so
extension=recode.so
extension=session.so
extension=simplexml.so
extension=snmp.so
extension=soap.so
extension=sockets.so
extension=sqlite.so
extension=tokenizer.so
extension=xml.so
extension=xmlreader.so
extension=xmlrpc.so
extension=xmlwriter.so
extension=xsl.so
extension=yaz.so
extension=zip.so

กำหนดค่า ServerName ด้วยครับ เช่น localhost ก็ได้ครับ

ไม่ใช่ error นะครับ มันแค่ฟ้องว่า configuration ไม่ถูกต้อง httpd ก็ start ได้ด้วยกรณีแบบนี้

ตัวอย่าง
ServerName thaifreebsd.org:80


SSL ไปดูด้านล่างๆของ httpd.conf ตรงนี้แล้วเอา # (comment) ออก
# Secure (SSL/TLS) connections
Include etc/apache22/extra/httpd-ssl.conf

เช็ค httpd ก่อน start ด้วยคำสั่ง
/usr/local/sbin/apachectl configtest

นอกนั้นให้ดู errorlog ของ httpd ประกอบในการติดตามแก้ปัญหาการ config ครับ

โปรแกรม httpd.conf อยู่ตรงนี้ครับ
/usr/local/etc/apache22/httpd.conf

ติดตั้ง MySQL Database Server FreeBSD

ติดตั้ง MySQL Database Server


ในที่นี้ผมจะติดตั้ง MySQL เวอร์ชัน 4.1 นะครับ วิธีการดังนี้ครับ

#cd /usr/ports/databases/mysql41-server

#make install WITH_CHARSET=tis620 WITH_COLLATION=tis620_thai_ci WITH_OPENSSL=yes

จากนั้นก็ทำการเพิ่มข้อมูลในไฟล์ /etc/rc.conf เพื่อให้ mysql ทำงานทุกครั้งที่บูตเครื่องใหม่ครับ

mysql_enable="YES"

ปกติ mysql จะมีไฟล์คอนฟิกที่ชื่อ my.cnf (ใน MS Windows เป็น my.ini) โดยพาธจะอยู่ที่ /etc/my.cnf ครับ แต่เราต้องทำสำเนาไฟล์จาก /usr/local/share/mysql ซึ่งจะมีไฟล์ตัวอย่างอยู่ 4 ไฟล์ด้วยกัน ดังนี้


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

my-medium.cnf เหมาะสำหรับ เครื่องที่มีหน่วยความจำ 32-64 MB

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

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

เครื่องที่ผมใช้งานอยู่ มีหน่วยความจำ 512 MB ดังนั้น ผมก็ทำสำเนาไฟล์นี้ ดังนี้ครับ

#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf

จากนั้นก็ทำการสั่งให้ mysql server เริ่มทำงานครับ

#/usr/local/etc/rc.d/mysql.server start

แล้วมันก็จะให้เพิ่มผู้ใช้งานที่ชื่อว่า root เข้าไปนะ

#mysqladmin -u root password '********';

แก้ไขไฟล์ /etc/rc.conf

#vi /etc/rc.conf

เพิ่มข้อมูลข้างล่างเข้าไปครับ

mysql_enable="YES"

อย่าลืมปรับแต่งไฟร์วอลด้วยนะ เปิดพอร์ต 3306 ให้ใช้เฉพาะ localhost ก็ได้ เพิ่มเข้าไปในไฟล์ /etc/ipf.rules

pass in log quick proto tcp from 127.0.0.1 to 127.0.0.1 port = 3306 keep state keep frags group 100

ติดตั้ง PHP5 FreeBSD

ติดตั้ง PHP5

ในปัจจุบัน เว็บเซิร์ฟเวอร์ส่วนใหญ่ จะรองรับภาษา PHP เป็นลำดับแรกๆ เลยก็ว่าได้นะครับ ส่วนวิธีการติดตั้งบนระบบ FreeBSD นั้นก็ทำได้ไม่ยากครับ

#cd /usr/ports/www/mod_php5
#make install WITH_APACHE2=1

จากนั้นจะมีหน้าต่างให้เลือกออฟชันเพิ่มเติมครับ ผมก็เลือก Zend Optimize แล้วก็เลือก OK ครับ
เมื่อติดตั้งเสร็จแล้ว ก็ทำการเพิ่มคอนฟิกให้กับ apache ครับ โดยผมจะสร้างไฟล์คอนฟิกของ php ต่างหากเลย ก็คือ สร้างไว้ที่ /usr/local/etc/apache2/Includes ชื่อไฟล์ว่า php5.conf ครับ

#vi /usr/local/etc/apache2/Includes/php5.conf

แล้วเพิ่มข้อมูลเข้าไปดังนี้

DirectoryIndex index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

จากนั้นก็ทำการรีสตาร์ท apache ครับ ด้วยคำสั่ง

#/usr/local/etc/rc.d/apache2.sh restart

ทดสอบภาษา php โดยการสร้างไฟล์ info.php ขึ้นมา โดยเก็บไว้ที่ /usr/local/www/data/

#vi /usr/local/www/data/info.php

โดยมีข้อมูลดังนี้

<?php
phpinfo();
?>

จากนั้นก็ทำการเปิดเว็บบราวเซอร์เรียกไปที่ http://server/info.php โดย server เป็นหมายเลขไอพี หรือชื่อของเซิร์ฟเวอร์ของเราครับ
ต่อมา ทำการติดตั้ง extensions ของ php5 ครับ ดังนี้

#cd /usr/ports/lang/php5-extensions
#make install

จากนั้นจะมีหน้าต่างให้เลือก extension ต่างๆครับ ซึ่งก็แล้วแต่ใครจะชอบนะครับ ส่วนผมเลือกดังนี้

CALENDAR , CTYPE , DOM , FTP , GD , GMP , IMAGIC , ICONV , IMAP , MSSQL , MYSQL , MYSQLI , OPENSSL , PDF , PGSQL , SNMP , SOAP , SQLITE , XML , XMLRPC , ZLIB

ส่วนอันอื่น ๆ ที่เป็นค่าปริยาย ผมก็คงไว้ครับ ไม่ได้เอาออก



Ports Upgrading FreeBSD

Ports Upgrading

ติดตั้ง cvsup โดยไปที่ /usr/ports/net/cvsup-without-gui และทำการติดตั้งได้เลยครับ
#cd /usr/local/cvsup-without-gui
#make install clean

จากนั้นก็ทำการ synchronize ports index กับเซิร์ฟเวอร์ที่เป็น cvsup server โดยผมเลือก cvsup.jp.freebsd.org เพราะทำการ ping ดูแล้ว ได้เวลาเร็วสุด เมื่อเทียบกับเซิร์ฟเวอร์อื่นๆครับ โดยใช้คำสั่ง

#/usr/local/bin/cvsup -g -L 2 -h cvsup.jp.freebsd.org /usr/share/examples/cvsup/ports-supfile

จากนั้นก็ทำการติดตั้ง portupgrade ครับ

#cd /usr/ports/sysutils/portupgrade
#make install clean

ทำการอัพเดต ports database

#/usr/local/sbin/portsdb -Uu

ทำการค้นหาโปรแกรมที่เคยติดตั้งไปแล้ว แต่ยังไม่ใหม่ล่าสุด เพื่อทำการอัพเดตครับ

#/usr/local/sbin/portversion -l "<"

ทำการอัพเดตโปรแกรมที่เคยติดตั้งแล้ว ให้ใหม่ล่าสุดครับ

#/usr/local/sbin/portupgrade -arR

ถ้าไม่เกิดปัญหาระหว่างการอัพเดต ก็ใช้คำสั่งถัดไปได้เลยครับ

#/usr/local/sbin/pkgdb -F

แต่ถ้าเกิดปัญหาขึ้นมา แบบนี้

campus# /usr/local/sbin/portsdb -Uu
Updating the ports index ... Generating INDEX.tmp - please wait..make: don't know how to make describe. Stop
===> textproc/p5-Sort-PolySort failed
*** Error code 1
1 error

ก็ใช้คำสั่ง

#/usr/local/sbin/pkgdb -fu

แต่ถ้ายังเกิดปัญหาลักษณะแบบนี้ ซึ่งเกิดจากการที่เราเคยติดตั้ง และใช้งาน FreeBSD มานานแล้ว จนเวอร์ชันของ portupgrade นั้นเปลี่ยน ซึ่งลักษณะของ error เป็นดังนี้ครับ

campus# /usr/local/sbin/portsdb -Uu
Updating the ports index ... Generating INDEX.tmp - please wait..make: don't know how to make describe. Stop
===> ftp/lukemftpd failed
*** Error code 1
1 error

********************************************
Before reporting this error, verify that you are running a supported
version of FreeBSD (see http://www.FreeBSD.org/ports/) and that you
have a complete and up-to-date ports collection. (INDEX builds are
not supported with partial or out-of-date ports collections -- in
particular, if you are using cvsup, you must cvsup the "ports-all"
collection, and have no "refuse" files.) If that is the case, then
report the failure to ports@FreeBSD.org together with relevant
details of your ports configuration (including FreeBSD version,
your architecture, your environment, and your /etc/make.conf
settings, especially compiler flags and WITH/WITHOUT settings).

Note: the latest pre-generated version of INDEX may be fetched
automatically with "make fetchindex".
********************************************

*** Error code 1

Stop in /usr/ports.
*** Error code 1

Stop in /usr/ports.
failed to generate INDEX!
portsdb: index generation error

วิธีการแก้ปัญหาก็คือ ให้เอาโปรแกรม portupgrade ออกก่อน แล้วก็ทำการ ติดตั้ง portupgrade ใหม่ครับ

#cd /usr/ports/sysutils/portupgrade
#make deinstall
#make install clean

ติดตั้ง Apache Web Server FreeBSD

ติดตั้ง Apache Web Server


โดยผมจะติดตั้ง Apache2 นะครับ เราสามารถดูออพชันต่างๆ ได้ โดยใช้คำสั่ง

#make show-options


จากนั้นทำการค้นหา mirror ที่ใกล้กับเครือข่ายเราที่สุด โดยใช้คำสั่ง

#make print-closest-mirrors >> /etc/make.conf


เมื่อได้ดังนี้แล้ว ก็ทำการติดตั้งได้เลยครับ

#cd /usr/ports/www/apache2
#make install

เมื่อติดตั้งเสร็จแล้ว ก็ทำการรันโดยใช้คำสั่ง 

#/usr/local/etc/rc.d/apache2.sh start

แล้วก็ลองเปิดเว็บบราวเซอร์ และเรียกไปที่เครื่องเซิร์ฟเวอร์ดูครับ จากนั้นแก้ไขที่ไฟล์ /etc/rc.conf โดยเพิ่มบรรทัด 

apache2_enable="YES" 

เข้าไปครับ เพื่อที่จะให้ Apache ทำงานทุกครั้งเมื่อมีการบูตเครื่องใหม่
เพิ่มเติมให้ apache2 ใช้งานภาษาไทยโดยปริยายนะครับ ทำการแก้ไขที่ไฟล์

/usr/local/etc/apache2/httpd.conf 

จากนั้นทำการเพิ่มข้อความดังนี้

AddDefaultCharset TIS-620 

จากนั้นก็ทำการรีสตาร์ท apache ใหม่ ก็จะสามารถใช้งานภาษาไทยได้โดยปริยายครับ

Ports พระเอก ของ FreeBSD

Ports พระเอก ของ FreeBSD
ตั้งแต่ใช้ FreeBSD มา ผมก็ติดตั้งโปรแกรม ผ่าน ports มาโดยตลอด ความประทับใจครั้งแรก ก็คือ การติดตั้งโปรแกรม gimp ครับ หลังจากที่เข้าไปใน ports ของ gimp ที่ /usr/ports/graphics/gimp ตามเอกสารเขาก็แนะนำให้สั่ง make install clean
เท่านั้นเอง ผมก็ตะลึง...
เพราะเพียงชั่วครู่ ระบบการติดตั้งของ FreeBSD เขาก็แสดงข้อความต่างๆ ออกมา ให้พอเดาได้ว่า เขากำลังไป download ตัว source code จาก internet แล้วก็ดำเนินการ compile ให้ทันที
ทีนี้ก็นั่งดูกันเพลินเลยครับ เพราะอยากจะรู้ว่า เขาจะทำอะไรให้เราบ้าง ก็รอกันอยู่นานพอสมควรครับ แล้ว ระบบการติดตั้งก็แจ้งกลับมาว่า ติดตั้งเรียบร้อย ตอนนั้นก็ตื่นเต้นครับ จำได้ว่า reboot เครื่องใหม่ เพราะยังไม่รู้จัก rehash พอเปิดเครื่องมา ก็เปิด terminal แล้วสั่ง gimp
เท่านั้นเองครับ โปรแกรม gimp ที่ใฝ่ฝันก็ปรากฎอยู่ตรงหน้า สวยงามสมความตั้งใจ
แล้วก็มารู้อีกที เมื่อเห็นว่ามีเมนูเพิ่มมาให้เรียบร้อยแล้ว อยู่ใน เมนู /Applications/Graphics/The Gimp ของ gnome
Packages พระรอง
มีอยู่เพียงบางครั้ง ที่ผมเคยใช้ Packages ในการติดตั้ง จำได้ว่าตอนนั้นต้องการใช้งาน openoffice แต่มีปัญหากับการติดตั้ง java หรืออะไรสักอย่าง ก็ทำให้ติดตั้งจาก ports ไม่สำเร็จ เพราะ ใน ports ของ openoffice เขาต้องให้ติดตั้ง java เสียก่อน (ตอนนั้นก็ยังไม่รู้ว่า เราสามารถกำหนดให้ ไม่เอา java ก็ได้) เลยหาทางออก โดยทดลองติตตั้ง ด้วย Packages แทน ก็ไปเสาะหา ไฟล์ packages ของ openoffice จนได้มา 1 ไฟล์ ทำการทดลองติดตั้ง
ด้วยคำสั่ง pkg_add openoffice.xxxxxx ทำนองนี้ ก็ใช้เวลาอยู่พักใหญ่ครับ
ก็เพียงคำสั่งเดียว กับ ไฟล์เพียงไฟล์เดียว ผมก็ได้ โปรแกรม openoffice มาใช้งานทันที
เริ่มต้น...เราจะเอา ports มาได้จากที่ไหน
ในการติดตั้ง FreeBSD เราจะถูกถามว่าจะติดตั้ง Ports Collection ด้วยหรือไม่ ถ้าเราตอบ Yes เราก็จะมี ports collection อยู่ที่ /usr/ports เป็นที่เรียบร้อย
แต่ในกรณีที่เราไม่ได้ติดตั้ง Ports Collection มาก่อน ให้ทำตามขึ้นตอน ต่อไปนี้ครับ
1. su เปลี่ยนเป็น root
2. สั่ง # /stand/sysinstall
3. เลื่อก Configure กด Enter
4. เลือก Distributions กด Enter
5. เลือก ports กด Space bar
6. เลือก Exit กด Enter
7. เลือก CDROM , FTP, หรือ อื่นๆ ตามต้องการ (ปกติ เลือก CDROM ครับ)
8. เลือก Exit กด Enter
=== รอครู่ใหญ่ ===
9. เลือก X กด Enter เพื่อออกจากโปรแกรม /stand/sysinstall
ภายใน Ports ภายใต้ /usr/ports จะแบ่ง Applications ไว้อย่างเป็นระเบียบ
.cvsignore
astro
finance
mbone
textproc
CHANGES
audio
french
misc
ukrainian
INDEX-5
benchmarks
ftp
multimedia
vietnamese
INDEX.db
biology
games
net
www
LEGAL
cad
german
net-mgmt
x11
MOVED
chinese
graphics
news
x11-clocks
Makefile
comms
hebrew
palm
x11-fm
Mk
converters
hungarian
polish
x11-fonts
README
databases
irc
portuguese
x11-servers
Templates
deskutils
japanese
print
x11-themes
Tools
devel
java
russian
x11-toolkits
UPDATING
distfiles
korean
science
x11-wm
accessibility
dns
lang
security
arabic
editors
mail
shells
archivers
emulators
math
sysutils
ส่วนประกอบของ Ports
ภายใน port ของแต่ละ Application ประกอบไปด้วย
1. ไฟล์ Makefile เป็นไฟล์ ที่จะบอกถึงรายละเอียดการ compile โปรแกรม และ directory ที่ที่จะติดตั้งโปรแกรม
2. ไฟล์ distinfo เป็นไฟล์ที่ แสดง checksums ที่ใช้ตรวจสอบไฟล์ ที่ download มาเพื่อการติดตั้ง
3. files directory เป็น directory ที่ใช้เก็บ patches files
4. ไฟล์ pkg-descr เก็บรายละเอียดคำอธิบาย โปรแกรม
5. ไฟล์ pkg-plist เก็บรายชื่อไฟล์ ที่จะติดตั้ง และ เป็นรายชื่อไฟล์ที่ต้องลบออก หลังการ ยกเลิกการติดตั้งโปรแกรม
6. ในบาง ports อาจจะมีไฟล์อื่นๆ เช่น pkg-message เพื่อให้รายละเอียดบางอย่างหลังเสร็จสิ้นการติดตั้ง
การ ตรวจสอบ Ports ก่อนการติดตั้ง (พี่มะขามแนะนำมา)
ในกรณีที่เราต้องการ ตรวจสอบด้วยตัวเอง ว่า Ports ที่เราจะติตดั้ง เขาจะติดตั้งอะไรที่เกี่ยวข้องบ้าง ก็สามารถใช้คำสั่งนี้ตรวจสอบได้ครับ
cd เข้าไปใน ports ที่ต้องการ เช่น
# cd /usr/ports/www/apache2
# make build-depends-list
/usr/ports/converters/libiconv
/usr/ports/devel/autoconf259
/usr/ports/devel/libtool15
/usr/ports/lang/perl5.8
/usr/ports/textproc/expat2
ทั้งนี้ ทั้งนั้น FreeBSD เขาจะตรวจสอบและติดตั้ง โปรแกรมที่เกี่ยวข้องให้เรา อย่างอัติโนมัติอยู่แล้วครับ
เริ่มการติดตั้งโปรแกรมด้วย Ports
เมื่อเราเลือกโปรแกรมที่จะติดตั้งได้แล้ว
su เพื่อเปลี่ยนเป็น root
# cd /usr/ports/www/apache2
make install clean
#
นอกจากนั้น ก็เพียงนั่งรอ และคอยติดตามตอบคำถามบางอย่าง หรือ แก้ไขปัญหาบางอย่าง เท่านั้น ถ้าไม่ติดขัดอะไร การติดตั้งโปรแกรมทั่วๆไป ก็สั่งเพียงเท่านี้ครับ
source code ของโปรแกรมที่เราติดตั้งด้วย ports จะถูกเก็บไว้ที่ /usr/ports/distfiles ครับ เราสามารถ นำไฟล์นี้ไปใช้กับเครื่องอื่นๆได้ ถ้าต้องติดตั้ง โปรแกรมเดียวกัน โดย copy ไปเก็บไว้ใน /usr/ports/distfiles ของเครื่องนั้นๆ แล้วสั่งติดตั้งจาก ports ตามปกติ จะทำให้การติดตั้งเร็วขึ้น เพราะไม่ต้องไป download source code มาอีก
การยกเลิกโปรแกรมที่ติดตั้งด้วย Ports
su เพื่อเปลี่ยนเป็น root
# cd /usr/ports/www/apache2
make deinstall clean
#
การยกเลิกมักจะใช้เวลาในการทำงานเร็วกว่าการติดตั้งมาก
ด้วยระบบการติดตั้งโปรแกรมด้วย Ports นี้ เราจะติดตั้งและยกเลิก ซะกี่ครั้งก็ทำได้ดังใจปราถนาครับ ระบบจะทำซ้ำให้อย่างเป็นระบบ ดังนั้นจึงปลอดภัย เหมาะสำหรับมือใหม่ใช้ ทดลองติดตั้งโปรแกรม และเหมาะสำหรับ มือเก่า ใช้ในการเรียนรู้ การติดตั้งที่หลากหลาย
การค้นหาโปรแกรม จาก Ports
ในกรณีที่เรารู้ชื่อ Application หรือ ชื่อโปรแกรม ก็สามารถค้นหาได้ด้วยวิธีง่ายๆ whereis ครับ
# whereis apache2
apache2: /usr/ports/www/apache2
ด้วยคำสั่งนี้เราก็รู้ได้ทันทีว่า apache2 พร้อมติดตั้งได้จาก ports อยู่ใน directory /usr/ports/www/apache2 ครับ
FreeBSD ยังมีคำสั่งสำหรับค้นหาโปรแกรมที่ต้องการ ที่ทำขึ้นมาใช้กับระบบ ports โดยเฉพาะครับ
เริ่มจากเข้าไปอยู่ใน directory ports เสียก่อนครับ
# cd /usr/ports
สั่ง ค้นหาโปรแกรมที่ต้องการ เช่น gimp
make search name=gimp | less
เราก็จะได้ข้อมูลมากมาย 
Port: gimp-1.2.5_1,1
Path: /usr/ports/graphics/gimp1
Info: The GNU Image Manipulation Program
Maint: gnome@FreeBSD.org
B-deps: aalib-1.4.r5_1 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-2.1.10_1 gettext-0.14.5 gimp-print-4.2.7_1 glib-1.2.10_11 gmake-3.80_2 gtk-1.2.10_13 jpeg-6b_3 libiconv-1.9.2_1 libijs-0.35 libtool-1.3.5_2 perl-5.8.7 pkgconfig-0.17.2 png-1.2.8_2 tiff-3.7.3 xorg-libraries-6.8.2
R-deps: aalib-1.4.r5_1 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-2.1.10_1 gettext-0.14.5 gimp-print-4.2.7_1 glib-1.2.10_11 gtk-1.2.10_13 jpeg-6b_3 libiconv-1.9.2_1 libijs-0.35 perl-5.8.7 pkgconfig-0.17.2 png-1.2.8_2 tiff-3.7.3 xorg-libraries-6.8.2
WWW: http://www.gimp.org/
Port: gimp-print-4.2.7_1
Path: /usr/ports/print/gimp-print
Info: GIMP Print Printer Driver
Maint: ports@FreeBSD.org
B-deps: gettext-0.14.5 gmake-3.80_2 libiconv-1.9.2_1 libijs-0.35 libtool-1.5.18 pkgconfig-0.17.2
R-deps: gettext-0.14.5 libiconv-1.9.2_1 libijs-0.35 pkgconfig-0.17.2
WWW: http://gimp-print.sourceforge.net/
การ update Ports
FreeBSD มีทีมงานสำหรับการทำงานกับ Ports โดยเฉพาะครับ และทีมนี้ก็ทำงานกันตลอดเวลา จึงมีการปรับปรุง และ upgrade โปรแกรมใน Ports อยู่เสมอ สำหรับผู้ที่ต้องการ Applications version ใหม่สด เสมอๆ ก็ต้องทำการ update ports ครับ
วิธีที่ผมชอบใช้มาก ก็สั่งเพียง 3 คำสั่ง ดังนี้ครับ
# cvsup /usr/share/examples/cvsup/ports-supfile -h cvsup.freebsd.org
# cd /usr/ports
#
 make fetchindex
เพียงเท่านี้ ผมก็จะได้ ports ชุด update ล่าสุดไว้ใช้งานแล้วครับ และมีความจำเป็นนะครับ ที่ต้องไปอ่าน ไฟล์ UPDATING ใน /usr/ports ทุกครั้งที่ update ports
การตรวจสอบโปรแกรม ที่ติดตั้งไปแล้ว ว่า update หรือไม่
ให้ใช้คำสั่ง pkg_version -v
.....
teTeX-3.0
= up-to-date with port
teTeX-base-3.0_4
< needs updating (port has 3.0_5)
teTeX-texmf-3.0_3
= up-to-date with port
tex-texmflocal-1.9
= up-to-date with port
texi2html-1.76_1,1
= up-to-date with port
thumbnail_index-1998.08.10_2
= up-to-date with port
thunderbird-1.0.7_1
< needs updating (port has 1.0.7_5)
tiff-3.7.4
= up-to-date with port
totem-gstreamer-1.2.0_1
< needs updating (port has 1.2.0_2)
transcode-1.0.1
< needs updating (port has 1.0.1_1)
transfig-3.2.4_1
= up-to-date with port
twolame-0.3.3
= up-to-date with port
unzip-5.52_2
= up-to-date with port
urwfonts-1.0
= up-to-date with port
vcdimager-0.7.23
= up-to-date with port
vino-2.12.0_1
= up-to-date with port
vlc-0.8.2_5
< needs updating (port has 0.8.4)
vte-0.11.15_2
= up-to-date with port
vtiger-4.2p2
= up-to-date with port
.....
จากตัวอย่าง จะเห็นว่า โปรแกรม thunderbird , totem-gstreamer และ vlc สามารถ update ใหม่ ได้หากต้องการ เพราะมี version ใหม่กว่า ที่ได้จากการ update ports


การใช้ภาษาไทย กับ FreeBSD

การใช้ภาษาไทย กับ FreeBSD

หากเราจะใช้ภาษาไทยกับ FreeBSD สิ่งที่เราต้องทำมีอยู่ 2 อย่าง คือ การติดตั้ง ตัวอักษรไทย เพิ่มเติมให้กับ FreeBSD และ การกำหนด keyboard ให้สามารถพิมพ์ภาษาไทยได้

การติดตั้ง ตัวอักษรไทย ให้ FreeBSD
1.su เปลี่ยนเป็น root
2.เข้าไปใน directory ที่เก็บ fonts ของ x-windows
# cd /usr/X11R6/lib/X11/fonts/

ให้สร้าง Folder ขี้นมาใหม่ ผมให้ชื่อว่า TrueType
# mkdir TrueType
# ls (เพื่อขอดูข้อมูล)



3.copy TrueType fonts มาจากที่ใดก็ได้ที่พอหาได้
ผมใช้ fonts จาก ms windows ครับ เอามาเก็บไว้ในนี้

4.แก้ไข files ชื่อ fonts.cache-1 ที่อยู่ใน /usr/X11R6/lib/X11/fonts/
# cd /usr/X11R6/lib/X11/fonts/
# vi fonts.cache-1 (หรือจะใช้ editor ตัวอื่นก็ได้ครับ)
เพิ่มบรรทัดสุดท้ายเข้าไป เข้าใจว่าเพื่อแจ้งให้ x-window ทราบ
"100dpi" 0 ".dir"
"75dpi" 0 ".dir"
"CID" 0 ".dir"
"PEX" 0 ".dir"
"Speedo" 0 ".dir"
"TTF" 0 ".dir"
"Type1" 0 ".dir"
"cyrillic" 0 ".dir"
"encodings" 0 ".dir"
"latin2" 0 ".dir"
"local" 0 ".dir"
"misc" 0 ".dir"
"util" 0 ".dir"
"bitstream-vera" 0 ".dir"
"TrueType" 0 ".dir" <---- บรรทัดสุดท้ายที่เพิ่มเข้ามา
5. เท่านี้ครับ FreeBSD ของเราก็อ่านไทยได้แล้วครับ
สำหรับบาง Application จะอ่านไทยได้ทันที
บาง Application ก็ต้องปรับปรุงเพิ่มเติมครับ