程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> apache+mysql+php for linux全攻略

apache+mysql+php for linux全攻略

編輯:關於MYSQL數據庫

下載 MySQL, PHP, apache 套件
要架設這樣的一個主機需要哪些套件呢?不就是: apache、MySQL及 PHP 啰!


Apache:目前 Apache 已經出到了 2.0.X 版,但是最廣泛使用的還是屬於 1.3.X 版本,這一版本目前出到最新的 1.3.20 版,你可以上 apache 主網頁去看看相關的信息:
apache 主頁(英文):
apache 套件(由主頁下載):
PHP:你可以上 PHP 的主網頁去看看一些相關的咚咚喔!
PHP 主頁(英文):
PHP 主頁下載:
MySQL:目前最新的版本是 3.23.41,同樣的,你也可以上 MySQL 官方網頁去看看喔!
MySQL 主頁(英文):
MySQL 主頁下載:
也就是說,我們需要的檔案有三個,分別是:
apache-1.3.20.tar.gz
PHP-4.0.6.tar.gz
MySQL-3.23.41.tar.gz

安裝 MySQL,PHP 與 apache
安裝這三個套件比較需要小心,因為使用 RPM 升級的話,可能沒有辦法取得最新的套件版本,所以這裡我們使用最原始的原始碼升級方法。安裝的方法如下:
去除舊版的咚咚與解壓縮:
去除相關的舊版資料,如果你是 RedHat 6.1 的話,則下面的套件你可以先去除喔!

[root@tsai /root]# rpm -e mod_perl
[root@tsai /root]# rpm -e PHPfi
[root@tsai /root]# rpm -e apache
當然啰,如果你之前安裝了舊版的 apache 、 PHP、或 MySQL,那你也可以移除。其實這是個人習慣,有的人喜歡保存兩種版本在他們的系統中,若你也想安裝兩種版本在你的系統中,那你也不需要移除 rpm 的安裝套件喔!不過,為了怕系統沖突,你必須要以 setup 的程序來取消 httpd, PHP 及 MySQL 的服務喔!
解壓縮:
假如你將 apache, MySQL 及 PHP 三個檔案放置在 /home/test 這個目錄中,而要將資料解壓縮到 /usr/local 當中,則可以這樣下指令:

[root@tsai /root]# cd /usr/local
[root@tsai local]# tar -zxvf /home/test/apache_1.3.20.tar.gz
[root@tsai local]# tar -zxvf /home/test/MySQL-3.23.41.tar.gz
[root@tsai local]# tar -zxvf /home/test/tar -zxvf /test/PHP-4.0.6.tar.gz
則在 /usr/local 中會多出三個目錄,分別是:apache_1.3.20, MySQL-3.23.41, PHP-4.0.6。
安裝 MySQL 套件:
如果你英文夠好的話,你可以到 /usr/local/mysql-3.23.41 這個目錄中察看一下 INSTALL-SOURCE 這個檔案,裡面對於如何安裝適合你的 MySQL 有很詳盡的說明。如果你要照我的步驟作的話,請往下看吧!

[root@tsai /root]# cd /usr/local/MySQL-3.23.41
[[email protected]]#./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/MySQL/var
上面這個步驟在檢查你的系統,以設定適合你的系統的資料!
其中, --prefix 後面接你要安裝的 MySQL 目錄所在,而 --localstatedir
後面則是接你要將數據庫放置的地方,通常我們都會設定在 var 裡面。
[root@tsai MySQL-3.23.41]# make
[root@tsai MySQL-3.23.41]# make install
上面兩個步驟在安裝 mysql 到你剛剛設定的 /usr/local/MySQL 路徑中。
注意啰,上面的步驟按你的 CPU 而可以耗掉很長的時間!
[root@tsai mysql-3.23.41]# ./scripts/MySQL_install_db
如果你之前已經安裝過 MySQL 的話,這一步驟就不用安裝了,
這個步驟在產生 grant tables 這個東西!也就是數據庫啦!
這個步驟很是重要,如果沒有此步驟,則你的 MySQL 是不會動作的!
[root@tsai mysql]# adduser MySQL
[root@tsai mysql]# chown -R mysql:mysql /usr/local/MySQL
上面這個步驟在產生 MySQL 這個帳號及群組名稱,另外,
將 /usr/local/mysql 這個剛安裝完畢的咚咚指定為 MySQL 的所有,
這是為了安全性的考量,因為 MySQL 的帳號與你原本 Linux 的帳號是不同的喔!
[root@tsai mysql]# cd /usr/local/mysql/share/MySQL
[root@tsai mysql]# chmod 777 MySQL.server
上面這個步驟再將你的 mysql.server 這個激活 MySQL 的執行檔,
設定成大家都可以使用的格式。
[root@tsai mysql]# /usr/local/mysql/bin/safe_mysqld --user=MySQL &
上面這一行在以 mysql 這個人來激活 MySQL 的服務喔!
[root@tsai mysql]# /usr/local/mysql/bin/MySQLadmin -u root passWord abcde
上面這一行在設定 root 的 MySQL 密碼,其中 abcde 是密碼,你可以自行設定喔!
上面這樣就安裝完畢了!完成安裝後就要開始測試你的 MySQL 啰!
增加 PHP 模塊:
基本上,PHP 可視為 Apache 的一個模塊,由於是屬於 apache 的一個模塊,因此我們必須先針對 apache 進行一次 configure 的設定偵測,這樣才能將 PHP 增加至 apache 當中,詳細步驟如下:

[root@tsai /root]# cd /usr/local/apache_1.3.20
[root@tsai apache_1.3.20]# ./configure --prefix=/usr/local/apache
上面的指令是要將 apache 安裝在 /usr/local/apache 的意思,
請注意,要先針對 apache 設定偵測一次才行安裝 PHP 喔!
[root@tsai apache_1.3.20]# cd /usr/local/PHP-4.0.6
[root@tsai PHP-4.0.6]# ./configure --with-apache=/usr/local/apache_1.3.20
> --with-mysql=/usr/local/MySQL
> --enable-track-vars
請注意上面的指令,中間那三行後面都要接一個 的符號,這是指令繼續的意思,
也就是說,其實上面最後四行視為同一行的指令!你也可以將上面的指令寫成一長串
另外,要注意的是,apache 需要指向剛剛偵測過設定的目錄,而 MySQL 則指向
已經安裝完畢的目錄!千萬不要搞錯啰!
[root@tsai PHP-4.0.6]# make
[root@tsai PHP-4.0.6]# make install
開始安裝啰!安裝完畢之後,會在 /usr/local/apache_1.3.20/src/modules 中
多一個 php4 的子目錄,裡面就存在了 PHP4 的主要鏈接庫啰!
[root@tsai php-4.0.6]# cp /usr/local/php-4.0.6/php.ini-dist /usr/local/lib/PHP.ini
將主要的 php 設定檔 php.ini-dist 拷貝成 /usr/local/lib/PHP.ini 這個檔案,
這是因為 apache 或其它程序執行 PHP 時需要到 usr/local/lib/ 中去使用這檔案,
如果您對 php 熟悉的話,可以修改 /usr/local/lib/PHP.ini 這個檔案,以符合你的設定。
上面這樣就安裝完 PHP 套件啰!
安裝 apache 套件:
再來就是重頭戲啦,開始安裝 apache 啰!由於已經安裝了 php ,所以在 /usr/local/apache_1.3.20/src/modules 中就會存在 PHP4 的目錄!

[root@tsai /root]# cd /usr/local/apache_1.3.20
[root@tsai apache_1.3.20]# ./configure --prefix=/usr/local/apache
>--activate-module=src/modules/php4/libPHP4.a
上面這兩行是同一行啦,要注意的是 --activate-module 這一行,這個得先
安裝過 PHP 才能使用這一個模塊!
[root@tsai apache_1.3.20]# make; make install
這樣就安裝完畢啦!開始來設定 WWW 與測試相關的模塊啦!

簡易設定 apache
要來激活 Apache 啰,在這一版(1.3.20)當中,已經只剩下一個參數設定檔『httpd.conf』這個檔案。如果你是使用 RedHat6.1 原本的 apache 則有三個檔案,分別是:
httpd.conf
Access.conf
srm.conf
以下將以 apache_1.3.20 版進行說明,如果你是以舊版的 apache 安裝的話,請在其它兩個檔案中找尋相關的設定吧!
apache 的主要目錄型態:
這是蠻重要的一個地方,因為不同版本的 Redhat 及不同的安裝方法,會產生蠻大差異的目錄型態,以下以 Redhat6.1, RedHat7.0+CLE0.9, 及使用原始碼安裝 1.3.20 的目錄型態:
Redhat 6.1:若使用原始的 apache 1.3.9 的話,則你的參數設定檔會在 /etc/httpd/conf 當中,而主機的網頁放置於 /home/httpd/Html 中,至於 cgi 的咚咚則放在 /home/httpd/CGI-bin 當中;
RedHat7.0 + CLE 0.9:同樣的,這個系統的預設 apache 的參數檔,放置在 /etc/httpd/conf 中,不過主機網頁移至 /var/www/Html 當中,cgi-bin 則放置在 /var/www/CGI-bin 中;
原始碼安裝:若使用原始碼安裝,且將預設的路徑設置在 /usr/local/apache 時,你的參數設定檔會在 /usr/local/apache/conf 中,而更動較大的是主機網頁的放置目錄,更改成 /usr/local/apache/htdocs 這個目錄中,至於 cgi 也是放置在 /usr/local/apache/CGI-bin 當中。
底下將以原始碼安裝的方法所產生的檔案來介紹 apache 的設定。
基本設定:
1. 激活 apache 服務:基本上,只要你激活 apache 之後,應該就可以在客戶端的浏覽器程序上看到你的主機預設的網頁了!激活的方式為:
[root @tsai /root]# /usr/local/apache/bin/apachectl start <=激活
同時, apachectl 還有其它的參數如下:
apachectl stop:停止 WWW 的服務;
apachectl restart:重新激活 WWW 的服務,這個指令比較常用在你修改了 apache 的參數後,重新激活用的。
apachectl status:偵測 WWW 的狀態。
2. 更改中文首頁:由於 WWW 的原始設定中,指定你的首頁名稱為 index.Html 或者是 index.htm ,然而這一版的首頁支持比較多的語言,因此你必須將首頁文件名稱修改一下:

[root @tsai /root]# cd /usr/local/apache/htdocs/
在設定你的首頁 你可以先到win98用dreamweaver寫好index.Html再傳到Linux 上面那個目錄裡,現在你應該可以在其它的客戶端機器上連進來了!你現在可以開啟 IE 或其它浏覽器,然後在你的網址上打入你的DNS名稱(如果有的話),或者是你的 IP 號碼,就可以看到你自己主機的首頁啰!
3. 設定使用者權限:由於你是以 root 的身份安裝 Apache 這個套件,所以如果無法連上你的主機首頁,有可能是 WWW 的首頁放置的地方可能會有權限上的問題,需要設定權限的地方在 /usr/local/apache/htdocs 及 /usr/local/apache/CGI-bin 這兩個目錄,你可以這樣設定:

[root @tsai apache]# chmod 755 /usr/local/apache/CGI-bin
[root @tsai apache]# chmod 755 /usr/local/apache/htdocs
你也可以設定成 744 的權限喔!
4. 設定自動執行:另外,為了讓你的 WWW 及 MySQL 服務可以一開機就執行,所以你可以將下面兩行激活的 scripts 寫在你的 /etc/rc.d/rc.local 的最後面:

[root @tsai /root]# vi /etc/rc.d/rc.local
/usr/local/apache/bin/apachectl start
/usr/local/mysql/share/mysql/MySQL.server start
這樣一來,每次你開機時, Linux 就會自動去執行 apache 及 MySQL 啰!
開始設定 httpd.conf 檔案:
說了一些拉拉雜雜的話後,終於要來實際設定 httpd.conf 這個檔案啰,請以 vi 來編輯吧。

[root @tsai /root]# cd /usr/local/apache/conf
[root @tsai conf]# vi httpd.conf
1. 基礎環境設定:以下這些在 httpd.conf 中的選項分別代表的意義為:

ServerType standalone
上面在設定激活 apache 的狀態,如果是 standalone 表示開機即執行,
通常我們都是選擇 standalone 這個(默認值),不過,若選擇:
ServerType inetd :則表示使用網際網絡的服務來聯機時才激活!
ServerRoot "/usr/local/apache"
表示 apache 的目錄所在地
Timeout 300
這是用來設定連接到你這部主機的客戶端,當超過 300 秒客戶端還沒有
辦法連上你的主機時,就予以斷線處理!
MinSpareServers 5 <=若是小站或是一般小型個人網站,可以改成 3
MaxSpareServers 10 <=若是小站或是一般小型個人網站,可以改成 5
StartServers 5
MaxClIEnts 150 <=若是小站或是一般小型個人網站,可以改成 100
上面兩個是開啟 httpd 服務數目的地方,當你執行 httpd 之後,
在 shell 下執行 ps -aux|grep httpd 就可以看到 httpd 的數目量,
通常這與你的 RAM 有關,如果是小站的話,可以設小一點,
例如最小設 3 最大設 5 即可!而 StartServers 則設與 Min 相同即可!
至於 MaxClIEnts 則可以設小一點,因為設定太大很耗系統資源,
而太小則無法讓很多人連上來!所以可以設成例如 100。
Port 80
這東西盡量不用動,因為 www 服務的預設通訊口(port)就是 80,
除非你要自己架一個別人連不進來的網站(內部網站),
User nobody
Group nobody
將 apache 預設為 nobody 這個人及群組!意即所有人皆可以使用
ServerAdmin
[email protected]
這個是設定你的機器的 httpd 管理員帳號!設成你的帳號吧!
ServerName
http://www.uc88.domain/
這是你主機的名稱,先將前面的批注符號拿掉吧!
請設定吧,如果你沒有主機名稱,就選 localhost 吧!
BindAddress *
這是用來允許你的 WWW 接受虛擬 IP 的機器的項目,例如你的虛擬網域為
192.168.1.0 ,則可以將 * 改成 192.168.1.0 喔!通常如果要接受虛擬 IP 的話,
直接打 * 就好了!
2. 路徑設定:以下的參數在設定每一個網頁或者是服務的路徑所在!(舊版在 Access.conf 中)

DocumentRoot "/usr/local/apache/htdocs"
上面這個在設定你的主機的主要首頁所在,由於我們設定主機名稱
為:
http://www.uc88.domain/ ,則當別人在網址列上打入 http://www.uc88.domain/ 時,
系統將會把 /usr/local/apache/htdocs 這個路徑下的首頁檔案傳出去!
你也可以自行改變這個路徑!
<Directory "/usr/local/apache/htdocs">
Options Indexes ExecCGI FollowSymLinks MultiVIEws
AllowOverride None
Order allow,deny
Allow from all
</Directory>
上面顯示在主機主網頁放置的目錄下 WWW 所可以進行的事情!
options 為網頁可以進行的工作,可以復選,有以下的幾個項目:
ExecCGI:表示可以在這個目錄中執行 CGI 程序;
FollowSymLinks:表示可以連結至他處;
MultiVIEws:表示可以執行動畫、音樂等項目
AllowOverride None 表示任何人都可以讀取資料;
至於Allow from all 則表示你的主機接受任何位置來源的連接。
<IfModule mod_userdir.c>
UserDir public_Html
</IfModule>
上面這個選項需要開啟,那樣你的用戶帳號才可以有首頁!
而你用戶的首頁放置在 /home/user/public_Html 下,你可以將
public_Html 改成 WWW ,則用戶的首頁就需要放在
/home/user/www,若以上面的設定,則以我為例,我的首頁需要放在
/home/frank/public_Html 底下才行!
<IfModule mod_dir.c>
DirectoryIndex index.Html index.htm index.PHP
</IfModule>
這個是用來說明首頁的文件名稱,通常默認值是 index.Html,但是有些
網頁編輯器的附檔名是 index.htm ,所以你可以加上後面的幾個檔名,
如此一來,你的首頁就可以支持多種檔名了!
基本上均使用默認值也就可以了!
3. 開啟 PHP 與其它模塊:由於我們需要可以支持 PHP 模塊的 apache ,所以需要將這個模塊開啟喔!

AddType application/x-httpd-php .PHP
AddType application/x-httpd-php-source .PHPs
將這兩個模塊的批注取消,請注意,這個是 php4 的模塊,不要與 PHP3 模塊搞混了!
因為我們是安裝 PHP4 版的幽!
AddHandler cgi-script .CGI
上面這一行的批注也可以拿掉,這樣客戶端才能使用 CGI 程序!
4. 開啟 Apache 狀態列:我們可以透過 IE 等浏覽器來觀看主機的 apache 執行情況,若你需要這個服務,就要將下面的批注取消掉:

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .your_domain.com
</Location>
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from .your_domain.com
</Location>
將上面的 .your_domain.com 改成你的 DNS ,
例如我可以改成 .uc88.domain 喔!這樣一來,
只有 uc88.domain 的機器可以看到你的 apache 的執行狀態!
如何觀看,以我為例,只要在網址列輸入
http://www.uc88.doamin/server-status
http://www.uc88.domain/server-info
則來自 uc88.domain 的用戶即可看到我的主機狀態!
5. 重新激活:只要下達 /usr/local/apache/bin/apachectl restart 即可執行 httpd 啰!到這裡就設定完畢了,執行你的 IE 連上你的網絡看看吧!(如果有問題的話,請重新激活 Linux 吧!)

測試 MySQL 及 PHP 套件
要測試這兩個套件前請先確定 MySQL 及 apache 已經被激活了!OK,來做測試吧!
PHP 測試:
你可以編輯一個檔案,文件名稱可以為 test.PHP ,然後將這個檔案放置在 /usr/local/apache/htdocs 當中(就是你的主機的網頁所在地喔!)

[root @tsai /root]# vi /usr/local/apache/htdocs/test.PHP
<?
PHPinfo( );
?>
然後連上你的主機,以我為例,我就要輸入 http://www.uc88.domain/test.php 這樣就可以看到你的 php 狀態啰!也就是你的 PHP 就可以執行了!
MySQL 測試:
同樣的, MySQL 也是編輯一個檔案,執行看看可不可以即可:

[root @tsai /root]# vi /usr/local/apache/htdocs/MySQLtest.Html
<Html>
<body>
<?
$link=MySQL_connect('localhost','root');
mysql_select_db('MySQL');
$str="select * from user;";
$result=MySQL_query($str,$link);
$show=MySQL_num_rows($result);
MySQL_close($link);
for ($i=0;$i < $show;$i++)
{
$arr[$i]=MySQL_fetch_array($result);
};
?>
<table align=center border=1>
<tr align=center>
<td>Host</td>
<td>User</td>
<td>PassWord</td>
</tr>
<?for ($i=0;$i<$show;$i++){?>
<tr>
<td><?echo $arr[$i][Host]?></td>
<td><?echo $arr[$i][User]?></td>
<td><?echo $arr[$i][PassWord]?></td>
</tr>
<?};?>
</body>
</Html>
然後同樣的執行 http://www.uc88.domain/MySQLtest.Html 即可知道你的 MySQL 是否可以執行!

寫入第一個個人首頁
如果你的網站支持給用戶放置個人網頁的話,那你的個人網頁在哪裡呢?剛剛我們有提到在 httpd.conf 的設定中,有一項關於個人首頁的設定,通常如果你不設定 httpd.conf 檔案的話,他的默認值都是 public_Html ,好了,那要如何設定個人網頁呢?假設以 frank 這個帳號為例,我們可以這樣進行:

[frank @frank frank]$ mkdir public_Html
[frank @frank frank]$ chmod 755 public_Html
[frank @frank frank]$ chmod 755 /home/frank
在你的客戶端家目錄中建立了一個 public_Html 的目錄,
並將此目錄的權限改成可以讓其它人觀看,注意喔, apache
預設是 public_Html ,但是如果你在 httpd.conf 這個檔案中
改變了目錄名稱,則必須作適當的修正喔!
然後在你的目錄中,亦即 /home/frank/public_html 當中,建立一個檔名為 index.html 的 HTML 檔案,例如我們剛剛測試的 php 的檔案,然後在 IE 的網址列打入 http://你的網站名稱/~frank/ 則 apache 會自動將 IE 的訊息傳到 /home/frank/public_html 這個目錄中,並搜尋文件名為 index.html 或 index.htm 或 index.PHP 的檔名!所以說, index.Html 是 apache 第一個找尋的檔名喔!這就是你的首頁啦!
然後你就可以經由 PHP 寫你的網頁資料,並將之放置在 public_Html 這個目錄下,就好了!不過用這個方法寫網頁時,需要注意的是,附檔名是 php3 的檔案將不會被執行,所以你要將 php3 改成 PHP 比較妥當!

 

就是這個
[root@tsai /root]# cd /usr/local
[root@tsai local]# tar -zxvf /home/test/apache_1.3.20.tar.gz
[root@tsai local]# tar -zxvf /home/test/MySQL-3.23.41.tar.gz
[root@tsai local]# tar -zxvf /home/test/tar -zxvf /test/PHP-4.0.6.tar.gz(這個看到了沒有?)
則在 /usr/local 中會多出三個目錄,分別是:apache_1.3.20, MySQL-3.23.41, PHP-4.0.6。
應該是這樣
[root@tsai local]# tar -zxvf /home/test/PHP-4.0.6.tar.gz

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved