目前Web開發人員常使用的開發語言是PHP、ASP和JSP。這三種語言各有所長,也各自擁有一大批忠實的開發者和使用者。對於使用PHP做Web開發的人員來說,很多人選擇了在Windows下進行開發,而最終開發出的程序則運行在Unix類(如Linux/FreeBSD)的操作系統上。開發環境和實施環境的不同,使得許多開發人員的系統知識稍顯欠缺。作為一個使用PHP進行Web開發的人員而沒有用過Linux,這種現象並不少見。更不要說具備一些簡單的Linux系統知識,能夠自己安裝開發環境了。一個開發人員了解一些系統知識是很有必要的,對於開發也是很有幫助的。下面介紹一下如何構架Linux下的PHP+MySQL開發環境。
在Linux下開發Web應用,一定要有一個HTTP Server,這就是著名的Apache。當然數據庫是一定少不了的,Linux支持多種數據庫,包括像Oracle、DB2等這樣大型的數據庫。不過與PHP最為相配、也是運用最多的數據庫當屬MySQL了。另外PHP語言本身也是必不可少的。下面是它們相應的網站:
Apache http://www.apache.org
MySQL http://www.mysql.com
PHP http://www.php.net
Linux上的軟件通常有著很快的升級速度,這可能是開放源碼軟件的優點之一吧。就Apache而言,有1.3.X版本與2.X版本兩個分支。由於2.X是在1.3.X上進行重寫,因此在結構和功能上都有很大的改進。關於Apache 1.3.X的安裝介紹比較多,故本文選用了Apache 2.X版本。同樣,也選用了支持Apache 2.X版本的PHP版本。大家可以從其各自的網站上去下載Apache、MySQL、PHP的最新版本。以下是2003年9月16日下載到的軟件包:
mysql-4.0.15.tar.gz
php-4.3.3.tar.gz
httpd-2.0.47.tar.gz
有了這三個軟件包,就可以開始在Linux下構建一個支持PHP+MySQL的Web服務器了。這也正是目前常用的Web應用環境。
我們把下載的三個軟件包放到/var/local目錄下(這是筆者個人的習慣),它們都是tar.gz包,可以用命令tar -xzpvf 包名,把它們在當前目錄(/var/local/)中解開:
cd /var/local
tar -xzpvf mysql-4.0.15.tar.gz
tar -xzpvf php-4.3.3.tar.gz
tar -xzpvf httpd-2.0.47.tar.gz
解包後可以開始進入正式安裝。
安裝MySQL
1.編譯
cd mysql-4.0.15/
../configure --prefix=/usr/local/mysql
make
make install
cd ..
2.增加用戶
adduser -s /bin/false mysql
3.初始化並設置目錄權限
/usr/local/mysql/bin/mysql_install_db
chown -R root /usr/local/mysql/
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/
4.加入庫
echo /usr/local/mysql/lib/mysql/lib >>/etc/ld.so.conf
ldconfig
5.使之啟動時自動運行
echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.d/rc.local
6.啟動MySQL
/usr/local//mysql/bin/mysqld_safe &
7.安全性設定
修改MySQL的root密碼:
/usr/local/mysql/bin/mysqladmin -uroot password abcdefg
8.測試
[root@terry bin]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.0.15
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> delete from user where user=''; (刪除所有用戶名為空的用戶,可以提高安全性)
Query OK, 2 rows affected (0.00 sec)
mysql> quit
Bye
安裝Apache
cd httpd-2.0.47/
../configure --prefix=/usr/local/httpd --enable-so
make
make install
cd ..
現在已經將Apache 2.0.47安裝到 /usr/local/httpd目錄中,安裝好的Apache支持可裝載模塊和標准的MPM prefork。如果安裝過程中沒有出現錯誤,便可以使用如下命令啟動Apache服務:
/usr/local/httpd/bin/apachectl start
如果啟動成功,將啟動命令加入rc.local,使之在系統啟動時自動運行:
echo "/usr/local/httpd/bin/apachectl start &" >>/etc/rc.d/rc.local
停止Apache服務,並繼續安裝PHP:
/usr/local/httpd/bin/apachectl stop
安裝PHP
cd php-4.3.3
../configure --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql
make
make install
cp php.ini-dist /usr/local/lib/php.ini
這種安裝方式是將PHP作為Apache的SAPI模塊來進行安裝,它僅是其中的一種安裝方式,更多的方法請參閱相關文檔。