一、安裝apache2.2.8
首先去http://www.apache.org 網站上下載apache2.2.8源碼包
解壓縮
#tar zxvf httpd-2.2.8.tar.gz
得到 httpd-2.2.8文件夾
#cd httpd-2.2.8
配置
#./configure --prefix=/usr/local/apache --enable-so --enable-module=rewrite
編譯
#make
安裝
#make install
安裝完成
測試一下安裝效果
#cd /usr/local/apache
#cd bin
# ./apachectl start
httpd: apr_sockaddr_info_get() failed for
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Thu Apr 03 09:37:41 2008] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
出現上述提示
#vi /usr/local/apache/conf/httpd.conf
修改SeverName一項即可解決(1)錯誤提示
產生(2)的原因是:FreeBSD 系統還提供了http filter,會自動過濾掉不完整的HTTP請求。
解決方法:
kldload accf_http
修改/boot/defaults/loader.conf中,以便下次啟動自動裝載模塊
accf_http_load="YES"
在浏覽器是輸入http://serverip
出現 "It works!" 表明apache安裝成功
二、安裝MySQL
下載MySQL源碼包
# ls
httpd-2.2.8.tar.gz mysql-5.0.51.tar.gz
解壓縮
#tar zxvf mysql-5.0.51.tar.gz
# cd mysql-5.0.51
配置
#./configure --prefix=/usr/local/mysql
編譯
#make
編譯時間可能需要較長時間,請耐心等待。
安裝
#make install
創建MySQL組
# pw groupadd mysql
創建MySQL用戶
# pw useradd mysql -g mysql -d /usr/local/mysql/ -m mysql
修改MySQL用戶密碼
#passwd mysql
建立用戶後我們就初始化表 (注意:必須先執行本步驟後才能進行以下步驟)
# ./scripts/mysql_install_db --user=mysql #初試化表並且規定用mysql用戶來訪問
初始化表以後就開始給mysql和root用戶設定訪問權限, 我們先到安裝mysql的目錄:
# cd /usr/local/mysql
然後設置權限
# chown -R root . #設定root能訪問/usr/local/mysql
# chown -R mysql var #設定mysql用戶能訪問/usr/local/mysql/var ,裡面存的是mysql的數據庫文件
# chown -R mysql var/. #設定mysql用戶能訪問/usr/local/mysql/var下的所有文件
# chown -R mysql var/mysql/. #設定mysql用戶能訪問/usr/local/mysql/var/mysql下的所有文件
# chgrp -R mysql . #設定mysql組能夠訪問/usr/local/mysql
設置完成後,基本上就裝好了,好了,我們運行一下我們的mysql:
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
出現如下提示:
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[2] 7022
# Starting mysqld daemon with databases from /usr/local/mysql/var
# ps -ef
ps: Process environment requires procfs(5)
PID TT STAT TIME COMMAND
1040 v0 Is+ 0:00.00 /usr/libexec/getty Pc ttyv0
723 v1 Is+ 0:00.00 /usr/libexec/getty Pc ttyv1
724 v2 Is+ 0:00.00 /usr/libexec/getty Pc ttyv2
725 v3 Is+ 0:00.00 /usr/libexec/getty Pc ttyv3
726 v4 Is+ 0:00.00 /usr/libexec/getty Pc ttyv4
727 v5 Is+ 0:00.00 /usr/libexec/getty Pc ttyv5
728 v6 Is+ 0:00.00 /usr/libexec/getty Pc ttyv6
729 v7 Is+ 0:00.00 /usr/libexec/getty Pc ttyv7
7022 p0 S 0:00.01 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
7038 p0 R+ 0:00.00 ps -ef
上述信息表明MySQL安裝成功
為了每次系統重啟後都能運行mysql,可以寫一個腳本放到 /etc/rc.d目錄下,用來運行mysql,我們寫一個腳本mysql_start.sh
#! /bin/sh
/usr/local/mysql/bin/mysqld_safe&
然後保存到/etc/rc.d目錄下,那麼以後reboot系統後都能啟動mysql了.
MySQL的安裝是最順利的一個
三、安裝PHP
去http://www.php.net網站上去下載php-5.2.5的源碼包
解壓縮
#tar zxvf php-5.2.5.tar.gz
#cd php-5.2.5
配置
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
出現如下錯誤提示:
Sorry, I cannot run apxs. Possible reasons follow:
1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)
The output of /usr/local/apache/bin/apxs follows:
./configure: /usr/local/apache/bin/apxs: not found
configure: error: Aborting
表明沒有安裝perl
下載perl進行安裝(去http://www.perl.com下載最新版本,我從別的網站下載了個5.8版本make時死活過不去)
#tar xzvf perl-5.10.0.tar.gz
#sh Configure -de
#make
#make test
#make install
安裝完perl後還是提示上述錯誤,
我就去apche的源程序中又來了一次下面的動作
配置
#./configure --prefix=/usr/local/apache --enable-so --enable-module=rewrite
編譯
#make
安裝
#make install
後重新configure php時出現如下錯誤:
configure: error: xml2-config not found. Please check your libxml2 installation.
安裝libxml2
#tar zxvf libxml2-2.6.31.tar.gz
#cd libxm2-2.6.31
#./configure
#make
#make install
安裝libxml2後,重新configure php 出現如個錯誤提示:
configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>
#tar zxvf libiconv-1.10.tar.gz
#cd libiconv-1.10
#./configure
#make
#make install
注意:我開始的時候安裝的 libiconv-1.11結果安裝完成後,重起啟動時出現問題(用戶就是登錄不去,不是是系統的bug還是軟件的兼容性不好,後來用單用戶進入,刪除了/usr/local/下的libiconv相關文件才得以登錄系統,從出現這個問題到解決這個問題花了我半天的時間,大家一定要記住這個教訓)
安裝完libxml2後重新configure php
這樣再configure php時結果還提示錯誤,具體的信息忘記記下來了,大體的意思是說沒有找到iconv和libiconv請reinstall iconv,這時候已經是晚上10點多了,我怒了,決定試一下ports安裝iconv和libiconv.(這下子我是實在沒有耐心了)
#whereis iconv
根據提示到相應的目錄下iconvpath指相應的目錄(當時系統提示的信息具體是什麼我記不清了)
#cd iconvpath
然後開始安裝
#make install clean
執行上述命令時出/usr/ports/distfiles下沒有找到文件,然後出現一個連接到ftp下載的信息,沒辦法我這個機器不能上外面,我只能用另一台機器上那個ftp上下載軟件然後再放到/usr/ports/distfiles這裡,重新make install clean 結果又提示缺少什麼軟件,我就這樣一個一個的下載下來放到/usr/ports/distfiles裡面
按照上述的方式又安裝了libiconv
本已經編譯安裝了perl 後來一想反正是要ports,就再ports一下這個perl吧
就這樣又ports安裝了perl一次.
這一切准備完畢
再重新開始的信息configure PHP
這一次沒問題了
過幾分鐘後出現如下提示:
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you d#loadModule php4_module modules/libphp4.so not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
這次終於沒有錯誤了
繼續一口氣做完吧
編譯php
#make
#make test
#make install
#cp php.ini-dist /usr/local/php/lib/php.ini
上述這幾步就是有些耗時間,不過再也沒有出現這樣的那樣的錯誤,這一點讓我很欣慰.
安裝完成
接下來的事情就簡單了
四、整合apache和php
為了讓Apache能夠直接解析php,我們還要進行一些配置
首先進入apache的配置文件目錄:
# cd /usr/local/apache/conf
# vi httpd.conf
在httpd.conf文件中,添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
應該將以上兩句添加在其他AddType之後。
確保文件中有以下一句話,沒有就自己添加在所有LoadModule之後。
LoadModule php5_module modules/libphp5.so
若存在loadModule php4_module modules/libphp4.so請將此句注釋掉因為我們安裝的是php5
在下面中添加index.php
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
至此,配置結束!
在/usr/local/apache/htdocs中新建一個頁面info.php
<?php
phpinfo();
?>
在浏覽器中中輸入http://serverip/info.php
看一下輸出,看看是否是自己想要的結果
配置完成!