這裡把我在 Linux 上安裝 PHP 5.3 測試環境的步驟記錄下來,所有內容都是參考以前寫的「在 Linux 上建構 PHP5 開發與測試環境 」 一文。
安裝目標
以下就是我這次要安裝的平台:
- Linux 平台 (採用 CentOS)
- Apache 2.2.x
- MySQL 5.1.x
- PHP 5.3.x
目錄配置
以下依照一些先進的經驗,加上個人的喜好,將平台中相關目錄配置如下:
| 原始碼存放位置 | /usr/local/src |
|---|---|
| Apache 網站根目錄 | /home/www/wwwroot |
| MySQL 數據庫位置 | /var/mysql/data |
| MySQL 設定檔 | /etc/my.cnf |
| PHP 設定檔 | /etc/php.ini |
建立 Linux 平台
下載 CentOS
我選擇的 Linux 平台是 CentOS ,目前其穩定的版本為 5.4 (2010-12) 。可以透過以下網址,下載 ServerDVD ISO 檔:
1
| |
下載回來後,我將它燒錄成 DVD 光碟以便安裝。
安裝簡述
基本上安裝步驟就是參考鳥哥的網站,而詳細的步驟就按照安裝畫面一一設定即可。但特別要注意 SELinux 要先關掉,免得到時候遇到一堆網路問題。
由於這是測試用的環境,所以其實也不用安裝太多不必要的服務。不過有兩個服務要預先安裝,那就是 vsftpd 和 sshd 。這樣後面要操作系統及存取檔案時,會比較容易一些。
另外就是 httpd 、 mysql 和 php 也都不要勾選,因為後面我們要採用 tarball 的方式來安裝。
註:另外也要注意防火牆有沒有擋掉 WWW 服務。
定時校正伺服器時間
接下來要定時將伺服器的時間做校正動作,這裡要先安裝 ntp 套件:
1
| |
安裝好後,我們要修改排程表:
1
| |
加入以下這行:
1
| |
完成後存檔,這樣伺服器就會在每天的 23:00 根據國家時間與頻率標準實驗室的 NTP 伺服器來自動校準時間。
註:以上設定 CentOS 的步驟也可以參考學生用伺服器建置流程(CentOS 5 版),這篇教學在 CentOS 的設定上寫的比較完整。
設定 FTP 伺服器
首先要建一個 www 帳號,專門用來上傳 web 程式:
1
| |
然後編輯 /etc/vsftpd/vsftpd.conf ,參考鳥哥的 vsFTPd 檔案伺服器,我將設定調整如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
安裝編譯套件
因為後面需要編譯 Tarball 原始碼,因此這裡我們需要先把編譯所需要的相關套件用 yum 指令來安裝好:
1 2 3 4 5 6 | |
這些套件因為較無版本問題,而且如果自行編譯會比較麻煩;因此這裡採用 yum 安裝會快一點。
小提示:以 xxx-devel 為名的,就是用來協助編譯的套件,它們通常會包含一些編譯用的表頭檔。
編譯安裝目標套件
編譯 Tarball 可以參考鳥哥網站裡的原始碼與 Tarball 套件管理員,大致的步驟如下:
- 下載套件原始檔,並放到 /usr/local/src 底下。
- 解開套件原始檔,然後進到解開後的目錄。
- 設定套件相關選項。
- 編譯與安裝。
特別要注意設定套件相關選項時,一定要仔細考慮清楚自己所要的配置。如果有任何不清楚的地方,可以在設定前輸入以下指令來瞭解各個選項的意義:
1
| |
編譯與安裝 MySQL 5.1.x
MySQL 5.1 也是要在 PHP 5.3 之前安裝,這裡參考的是官方的安裝說明。首先要先建立執行 MySQL 時所需要的帳號:
1 2 | |
然後就按照標準程序安裝:
1 2 3 4 5 6 7 8 9 | |
有關 configure 選項的說明如下: (參考自官方網站的 2.3.2. Typical configure Options)
| 選項 | 說明 |
|---|---|
| –prefix=/usr/local | MySQL 的安裝目錄 |
| –localstatedir=/var/mysql/data | 資料庫的存放路徑 |
| –enable-thread-safe-client | 啟用 thread safe 的用戶連結方式 |
註:我在參考對岸網友的安裝心得時,到最後都一直無法成功安裝預設資料庫。後來在 ./configure 中使用以上的選項後,才順利把 MySQL 安裝起來。
編譯安裝完成後,接下來要將 MySQL 設定檔複製到預設的位置:
1
| |
然後安裝預設的資料庫,這裡要特別注意權限的設定:
1 2 3 4 | |
安裝好預設資料庫後,我們要將 MySQL 加入伺服器的啟動服務項目裡:
1 2 3 4 | |
接下來啟動 MySQL ,並設定 root 的密碼:
1 2 3 | |
編譯與安裝 Apache 2.2.x
因為後面的套件在安裝時需要夠知道 Apache 安裝的目錄,所以這裡要先安裝 Apache 。 Apache 的安裝基本上也是採用標準步驟:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
有關 configure 選項的說明如下: (參考自 Apache HTTP Server Documentation::configure - Configure the source tree)
| 選項 | 說明 |
|---|---|
| –prefix=/usr/local | Apache 的安裝目錄 |
| –enable-module=so | 啟用 so 模組,可以讓 Apache 支援 DSO |
| –enable-dav=shared | 啟用 WebDAV ,Subversion 需要用到 |
| –enable-deflate=shared | 啟用網頁壓縮 |
| –enable-expires=shared | 啟用 HTTP 控制 |
| –enable-rewrite=shared | 啟用網址重寫 |
| –enable-cache | 啟用快取 |
| –enable-file-cache | 啟用檔案快取 |
| –enable-mem-cache | 啟用記憶體快取 |
| –enable-disk-cache | 啟用磁碟快取 |
| –enable-static-support | 啟用靜態支援 |
| –enable-static-htpasswd | 編譯 htpasswd - 管理採用基本認證的檔案 |
| –enable-static-htdigest | 編譯 htdigest - 管理採用摘要認證方式的檔案 |
| –enable-static-rotatelogs | 編譯 rotatelogs - 輪替 Apache 紀錄的管道日誌程序 |
| –enable-static-logresolve | 編譯 logresolve - 解析 Apache 紀錄中的 IP 地址為主機名 |
| –enable-static-htdbm | 編譯 htdbm - 操作 DBM 密碼數據庫 |
| –enable-static-ab | 編譯 ab - Apache HTTP 服務器性能測試工具 |
| –enable-static-checkgid | 編譯 checkgid |
接下來要將 Apache 設為伺服器的啟動服務項目,首先把 Apache 的控制程式複製成伺服器的服務項目:
1
| |
然後編輯這個服務項目:
1
| |
然後在 #!/bin/sh 下面加入以下兩行:
1 2 | |
註:能讓 chkconfig 辨認出 httpd 的關鍵在是 chkconfig: 2345 10 90 這一行,第一個數字 2345 表示讓 Apache 在 2345 這四個級別都自動運行;第二個數字 10 表示程序啟動的優先級;第三個數字 90 表示程序停止的優先級。
然後就可以把 Apache 加到系統的啟動服務裡面:
1 2 | |
編譯與安裝 PHP 5.3.x
PHP5 的安裝也是採用標準模式,然後也要記得將 php.ini-recommend 複製成 /etc/php.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
有關 configure 選項的說明如下:
| 選項 | 說明 |
|---|---|
| –prefix=/usr/local | PHP 的安裝目錄 |
| –with-apxs2=/usr/local/bin/apxs | 指定 Apache2 的執行檔路徑 |
| –with-zlib | 啟用 zlib 支援 |
| –with-bz2 | 啟用 bz2 支援 |
| –with-libxml-dir | 啟用 libxml 支援 |
| –with-gd | 啟用 gd2 支援 |
| –with-freetype-dir | 啟用 freetype 支援 |
| –with-jpeg-dir | 啟用 jpeg 支援 |
| –with-png-dir | 啟用 png 支援 |
| –with-mysql | 啟用 mysql 支援 |
| –with-mysqli | 啟用 mysqli 支援 |
| –with-pdo-mysql | 啟用 pdo_mysql |
| –with-config-file-path=/etc | 指定設定檔 php.ini 的路徑 |
| –with-iconv | 啟用 iconv 支援 |
| –disable-ipv6 | 關閉 ipv6 支援 |
| –enable-mbstring | 啟用 mbstring 支援 |
| –enable-ftp | 啟用 ftp 支援 |
接下來要把 PHP 整合到 Apache 裡,先編輯 Apache 的設定檔:
1
| |
找到:
1 2 | |
改為:
1 2 | |
在最後一行或是 AddType 區段加上:
1
| |
然後要設定預設文件,一樣在 httpd.conf 中尋找:
1
| |
改為:
1
| |
然後修改網站根目錄,找到:
1
| |
改為:
1
| |
然後再找到:
1
| |
改成:
1
| |
接下來要讓 .htaccess 可以作用,在上面的 <Directory "/home/www/wwwroot"> 往下幾行可以找到:
1
| |
將它更改為:
1
| |
最後將 httpd.conf 存檔並退出 vi 編輯器。
接著要更改 php.ini 的時區:
1
| |
找到:
1
| |
改為:
1
| |
儲存後離開。
測試開發環境
在最後的步驟裡,我們要測試剛剛建立的環境是否能正常動作。
首先要建立網站根目錄位置:
1 2 3 | |
接著再建立一個測試檔:
1
| |
內容為:
1 2 3 4 | |
再把伺服器啟動:
1 2 | |
然後開啟瀏覽器,在網址列輸入:
1
| |
查看是否會正常出現 phpinfo 的內容即可。