LAMP - Linux + Apache + MySQL + PHP

參考書籍:

  • PHP 與 MySQL 應用實務 (O'Reilly, ISBN: 986-7794-680)

大部份的系統管理者都己習慣使用各套件廠商所準備的套件式,因為它們都很貼心的為客戶們設想週到,把所有套件的功能都附加上去,但是我想應該也會有像小弟一樣想要一個簡單的環境,而不是需要所有的功能,此時就只能拿 source code 來編譯了。

這次,小弟所寫的是 Apache 2、MySQL 5 和 PHP 5 的編譯筆記,小弟的需求不多,所以很多額外的進階選項都沒有加進去,如此對我來說也算是減少付擔 :)

以下就是這次安裝的過程:

安裝 Apache 2:

在安裝之前,請先確認你的 apache 要裝在那裡,在這裡是安裝到 /usr/local/httpd 這個目錄,並使用了一些選項,在 configure 好了之後,就可以開始編譯。

開始 configure

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
root # ./configure --prefix=/usr/local/httpd --enable-isapi --enable-file-cache 
> --enable-echo --disable-charset-lite 
> --enable-charset-lite --enable-cache --enable-disk-cache --enable-mem-cache 
> --enable-example --enable-case-filter --enable-case-filter-in --enable-dumpio 
> --enable-ldap --enable-auth-ldap --enable-ext-filter --enable-deflate --enable-log-forensic 
> --enable-logio --enable-mime-magic --enable-headers --enable-proxy --enable-proxy-connect 
> --enable-proxy-ftp --enable-proxy-http --enable-ssl --enable-optional-hook-export 
> --enable-optional-hook-import --enable-optional-fn-import --enable-http --enable-cgi 
> --enable-cgid --enable-speling --enable-rewrite --enable-so --with-suexec-uidmin 
> --with-suexec-gidmin --with-suexec-logfile --with-suexec-safepath --enable-static-htpasswd 
> --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve 

configure 無誤的話就開始編譯:

root # make

安裝:

root # make install

啟動 Apache:

root # /usr/local/httpd/bin/apachectl start

安裝 MySQL 5:

跟 Apache 一樣,我們需要先 configure 一次,建立 Makefile 檔案,然後才可以編譯。

configure MySQL 並加入對中文 big5 的支援:

root # ./configure --prefix=/usr/local/mysql --with-charset=big5 --with-extra-charsets=all

編譯無誤後安裝:

root # make && make install

建立 mysql 使用者:

root# useradd -s /bin/false -d /usr/local/mysql mysql

初始化 MySQL 資料庫並設定權限:

root # cd /usr/local/mysql
root # bin/mysql_install_db --user=mysql
root # chown -Rf mysql var; chgrp -Rf mysql .

啟動 MySQL:

root # bin/mysqld_safe --user=mysql &
廣 告

安裝 PHP 5 模組:

安裝 PHP 模組時,需要先知道 Apache 和 MySQL 的安裝目錄,這樣才可以被支援,在本例中,Apache 是安裝在 /usr/local/httpd,而 MySQL 是安裝在 /usr/local/mysql 裡。

root # ./configure --with-apxs2=/usr/local/httpd/bin/apxs --enable-debug \
> --enable-magic-quotes
--enable-libgcc --enable-ftp --enable-mbstring \
> --with-mysql=/usr/local/mysql --enable-sockets --with-gnu-ld

編譯無誤後安裝 PHP 5

root # make && make install

設定 httpd.conf:

root # /usr/local/httpd/conf/httpd.conf
___________________________________
#加入 php 模組
LoadModule php5_module modules/libphp5.so
#加入 php 類別
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
___________________________________

root #

更新 PEAR 套件:

root # pear install HTML_Template_IT
root # pear upgrade PEAR
root # pear upgrade Date
root # pear upgrade DB
root # pear upgrade Mail

重新啟動 Apache:

root # /usr/local/httpd/bin/apachectl stop
root # /usr/local/httpd/bin/apachectl start

注意事項:

以上範例為安裝 Apache 2 和 PHP 5 的結合,並不適用於 PHP 4 或其它版本的設定,而在 PHP 5 裡,更新了 PEAR 這個套件,所以在安裝完成之後還需要設定 PEAR 才可以使用 PEAR 的功能(最明顯的地方在於 DB 的連線)。而編譯 PHP 時,記得是要使用 --with-apxs2 而不是 --with-apxs,因為我們是使用 Apache 2 版本。

要得知 configure 有那一些選項可以使用,請使用 --help 選項即可:

root # ./configure --help

測試:

要測試 Apache 是否已和 PHP 整合在一起,只要寫一下 PHP 程式就可以了。

root # touch /usrc/local/httpd/htdocs/phpinfo.php
root # vi /usrc/local/httpd/htdocs/phpinfo.php
----------------------------
<? phpinfo(); ?>
----------------------------
root #

之後,請選擇任一 Browser 開啟就好了。

04/09/2006

首頁