機器環境rhel3,在安裝系統時安裝了一些相關開發的rpm包,如gcc,make等
一、Apache安裝
1.下載apache
2.解壓
tar -xzvf httpd-2.0.63.tar.gz
3.進入目錄
cd httpd-2.0.63
4.配置
一些選項
--prefix 安裝目錄
--enable-modules 開啟dso(動態模組)配置(--enable-so相當於--enable-module=so)
--enable-rewrite 開啟url重寫
--enable-dav
svn需要此選項:否則報錯
httpd: Syntax error on line 58 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
(--enable-dav --enable-so --prefix svn至少需要這幾項)
--enable-maintainer-mode 開啟擴充的倚賴性檢查和編譯警告
執行命令進入配置
./configure --prefix=/usr/local/apache --enable-rewrite --enable-dav --enable-so --enable-maintainer-mode
5.編譯並安裝
make
make install
6.相關目錄
/usr/local/apache為基目錄
bin/ 一些命令
cgi-bin/ cgi檔案
htdocs/ 網頁檔案
conf/httpd.conf 設定檔
logs/ 記錄檔
7.啟動、停止
/usr/local/apache/bin/apachectl start/stop/restart
8.自動啟動
vi /etc/rc.d/rc.local
加入
/usr/local/apache/bin/apachectl start
二、安裝PHP
1.下載
2.解壓
tar -xzvf php-5.2.8.tar.gz
cd php-5.2.8
3.配置
php除準系統外,一些擴充功能是由分別獨立的模組提供的,要使php支援這些功能,在編譯時間要加入相關選項(見http://cn.php.net/manual/en/funcref.php中相應模組的install頁)
如:
mysql:訪問mysql資料庫的函數
curl: http訪問庫
ibxml2: xml解析庫
zlib: 開源壓縮庫
pcntl:進程式控制制庫
iconv:字元編碼轉換函式
shmop:共用記憶體操作函數
sysvsem:訊號量相關函數
sysvmsg:訊息交換函數
執行如下命令:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-curl=/usr/local/curl --enable-ftp --with-libxml-dir=/usr/local/libxml2 --with-expat-dir=/usr/lib --enable-soap --with-zlib-dir=/usr/lib --enable-mbstring --with-iconv=/usr/local/iconv --enable-shmop --enable-sysvsem --enable-sysvmsg
4.編譯並安裝
make
make install
5.拷貝設定檔
由於php.ini檔案不會自動產生,所以應當拷貝過去
cd php-5.2.8
cp php.ini-dist /usr/local/php/lib/php.ini
6.配置httpd.conf
vi /usr/local/apache/conf/httpd.conf
php安裝完後會自動在httpd.conf加上下面一行(若無,請手動添加):
LoadModule php5_module modules/libphp5.so
找到AddType application/x-gzip .gz .tgz 在其下添加如下內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
重啟apache
/usr/local/apache/bin/apachectl restart
7.安裝過程中的一些問題
(1)configure: error: libxml2 version 2.6.11 or greater required.
libxml2的版本過低,下載更高的版本並更新
rpm -ivh --force libxml2-2.6.16-1.1.el3.rf.i386.rpm
libxml2-python-2.6.16-1.1.el3.rf.i386.rpm
libxml2-devel-2.6.16-1.1.el3.rf.i386.rpm
(2)無一些相關的庫,如libiconv
下載,並安裝,如:libiconv-1.12.tar.gz
./configure --prefix=/usr/local
make
make install
(3)/usr/lib/mysql/libmysqlclient.so: No such file or directory
是因為在/usr/lib/mysql下找不到libmysqlclient.so檔案,可能原因是:
1.MySQL-shared-community(mysql共用庫沒裝)
rpm -ivh MySQL-shared-community-5.1.35-0.rhel3.i386.rpm
2.如果裝了後還找不到,則尋找libmysqlclient.so檔案,一般在/usr/lib下,建立符號連結
ln -s /usr/lib/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so,即可解決
8.測試
隨便寫一個test.php放到/usr/local/apache/htdocs中,在瀏覽器中訪問