ports 是 FreeBSD 裡面我最喜歡用的一樣功能,我認為它比 rpm 好用多了 (FreeBSD 的 ports 裡面也有 rpm,但是應該沒什麼人在用才對 :Q)
底下是個小小的示範用 ports 把 Apache, PHP, MySQL 三個現在架網頁伺服器常用的軟體安裝過程。範例裡面用到的軟體版本只供參考,要安裝不同的版本換個目錄名稱就可以了。例如想安裝 Apache 2.2.2 的話就到 www/apache22/ 而不是範例中的 www/apache20/。
執行下列指令前請先切換成 root 或是使用 sudo,sudo 如果沒有裝的話要自己先裝好 (security/sudo) 並且設定過才行。
- 安裝 MySQL 5.0
cd /usr/ports/database/mysql50-server/
make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes install clean裝完以後在 /etc/make.conf 加上
mysql_enable="YES"然後執行
/usr/local/etc/rc.d/mysql-server start就可以了 - 安裝 Apache 2.0
cd /usr/ports/www/apache20
make install clean - 安裝 PHP5
cd /usr/ports/lang/php5
make config install clean選單中選取 Apache module,選完以後按 OK 繼續。
cd /usr/ports/lang/php5-extensions
make config install clean選擇要安裝的 extension,選完以後按 OK 繼續。
- 開始手動編輯 /usr/local/etc/apache/httpd.conf
#至少要加下面這行:AddType application/x-httpd-php .php下面的這些加不加隨便你:
#這個好像很多人沒加,要加的話就加在上面那行的下面AddType application/x-httpd-php-source .phps#雖然說
DirectoryIndex可以不要加沒關係,但是我還沒看過有哪台機器裝了 php 不加這個的 :Q
#用 ports 裝 apache13 系列的你會發現 DirectoryIndex 已經有加上去了,所以就不需要自己加DirectoryIndex index.php - 在 /etc/rc.conf 裡面加上:
apache20_enable="YES" - 執行
/usr/local/etc/rc.d/apache20 start看看有沒有出現錯誤訊息,有時候錯誤訊息不會出現在螢幕上而是會寫在 /var/log/http-error.log 裡面,所以這個也要看。
以上就是全部安裝的過程。下面是一些需要注意的地方:
- 移除 php5-extensions 要用
pkg_deinstall -r php5-extensions這樣子才會把 php5-extensions 下面那些散落在各個目錄的 extensions 移除。php5-extensions 只是個用 dependency 導到各個目錄去裝 extension 的 meta port 而已。
- 裝 www/apache22 的話 rc.conf 除了加上
apache22_enable="YES"之外另外加上
apache22_http_accept_enable="YES"這樣就會在跑起來的時候幫你 load accf_http 這個需要的 kernel module 了。
http404error said
受益良多
感謝chiouss的文:p
…
Bojack said
感謝您的文章,小弟參考也記錄下來了!
http://blog.pixnet.net/bojack/post/12983723
Apache + mpm_worker + mod_fastcgi + php-cgi « Only gossips and gossips only said
[...] 也說他做作業也跑起來了,我今天早上又試了一下終於成功了 :Q 基本上和這篇差不多,不過編 www/apache22 的時候加上 WITH_MPM=worker 讓它用 [...]