apache|mysql|編譯|原始碼 記錄一下我在fedora core 1下通過原始碼編譯出來的apache+mysql+php開發環境的全部過程
通常安裝一台伺服器當然使用rpm是最方便的,不需要考慮太多配置的問題,就可以輕鬆獲得需要的環境了。不過rpm包互相關聯的問題也不是這麼容易解決。 apache,mysql,php這三個應用從原始碼編譯安裝還是比較簡單的,配置參數不算複雜,而且沒有太多的依賴關係,從源碼編譯出來的系統也比較穩定一些,方便未來打補丁和升級工作。
編譯安裝的前提是,系統已經安裝了相應的編譯工具,一般我的習慣是在安裝系統的時候,選擇自訂系統並且只選擇開發套件這一項,其他所有軟體包均不安裝。如果您沒有選擇安裝所有的開發工具,那麼之前您至少需要安裝下面的rpm包
autoconf-2.57-3.noarch.rpm
automake-1.7.8-1.noarch.rpm
binutils-2.14.90.0.6-3.i386.rpm
bison-1.875-5.i386.rpm
byacc-1.9-26.i386.rpm
cpp-3.3.2-1.i386.rpm
flex-2.5.4a-30.i386.rpm
gcc-3.3.2-1.i386.rpm
gcc-c++-3.3.2-1.i386.rpm
glibc-devel-2.3.2-101.i386.rpm
glibc-headers-2.3.2-101.i386.rpm
glibc-kernheaders-2.4-8.36.i386.rpm
libstdc++-devel-3.3.2-1.i386.rpm
m4-1.4.1-14.i386.rpm
下面介紹步驟
1、mysql安裝
下載一個目標版本
tar -xzvf mysql-4.0.xx.tar.gz
cd mysql-4.0.xx
./configure --prefix=/usr/local/mysql <--這個路徑是我比較習慣的,您也可以選擇其它安裝路徑
make
make install
在support-files目錄中,選擇一個適當的.cnf檔案,cp到/etc/my.cnf
cd /usr/local/mysql/bin
./mysql_install_db
../share/mysql/mysql.server start
./mysqladmin -uroot password 'xxxx' <--修改預設的密碼
./mysql -uroot -p 嘗試登陸mysql,應該是沒有問題的了
mysql.server這個檔案可以copy到/etc/rc.d/init.d目錄下,設定系統啟動的時候自動啟動mysql服務
2、apache安裝
下載一個目標版本
tar -xzvf httpd-2.0.xx.tar.gz
cd httpd-2.0.xx
./configure --prefix=/usr/local/apache --enable-so <--模組化
make
make install
cd /usr/local/apache/conf
修改httpd.conf,因為一會兒還要配置php,這裡可以暫時簡單設定一下,主要配置User,Group,ServerName,DocumentRoot,DirectoryIndex這些參數就可以了
cd /usr/local/apache/bin
./apachectl start 啟動apache服務,這時候在用戶端瀏覽器裡面輸入ip,因該可以看到apache預設的頁面出現
apachectl這個檔案也可以copy到/etc/rc.d/init.d目錄下,設定系統啟動的時候自動啟動apache服務
3、php安裝
下載一個目標版本
tar -xzvf php-4.3.xx.tar.gz
cd php-4.3.xx
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs <--這裡需要找到apache安裝路徑的apxs這個檔案,如果是apache 1.3版本的話,參數是--with-apxs=
make
make install
將源碼目錄中php.ini-recommended這個檔案copy到/usr/local/php/lib/下,改名為php.ini
回到apache的設定檔中,確認是否自動添加了LoadModule php4_module modules/libphp4.so這一行。然後再添加下面的代碼,我一般習慣添加在#AddHandler cgi-script .cgi這一行後面。
AddType application/x-httpd-php .php
使用apachectl重新啟動apache服務
./apachectl restart
在設定的DocumentRoot目錄下,添加一個phpinfo.php的檔案來測試系統,程式碼如下:
<?
//filename: phpinfo.php
phpinfo();
?>
這時候在用戶端瀏覽器中訪問http://serverip/phpinfo.php應該出現php的參數表,至此所有系統安裝完畢。
當然還有一些細節需要考慮,比如將
/usr/local/mysql/bin
/usr/local/apache/bin
/usr/local/php/bin
三個目錄加入到系統的PATH裡面,這樣所有的操作指令在任何路徑都可以執行了
配置php.ini檔案,將include_path設定成include_path = ".:/usr/local/php/lib/php",這樣就可以在代碼裡面使用pear程式碼程式庫了。
上述是這三個應用的基本最簡配置,如果需要額外的擴充功能,就要在./configure後面的參數中進行配置了,具體配置的格式可以參考各自的./configure --help協助菜單。
建議保留原始碼的目錄,這樣在需要添加擴充的時候,只需要修改configure參數,並且make, make install一下,重新啟動服務,就可以更新了。