安裝PHP
在安裝PHP之前,你必需要知道你要以何種方式去使用PHP。PHP主要使用在以下這三個部份:一個是伺服器端的程式語言,另一個是Command line scripting,最後一個是撰寫client端GUI應用程式。當你能明確的了解要以何種方式去使用PHP時,就到PHP的首頁中下載你所需的PHP版本,然後進行安裝的程序。
一、安裝在Unix/Linux系統
許多的Linux distributions系統有一些套件安裝程式,像是RPM等等。這些套件安裝程式能幫助你快速的完成安裝,但假如你需要增加其它的功能,你就必需要重新編譯PHP及(或)網站伺服器,如果你對軟體編譯的過程不熟悉,那麼你只好到網路上找看看,是否有熱心的網友己經將套件編譯好了,且符合你的需求。
二、安裝在Unix系統
首先你必需具備下列軟體。
Basic UNIX skills (being able to operate "make" and a C compiler, if compiling)
An ANSI C compiler (if compiling)
flex (for compiling)
bison (for compiling)
A web server
Any module specific components (such as gd, pdf libs, etc.)
下列是將PHP安裝成Apache模組的快速安裝步驟。
1. gunzip apache_1.3.x.tar.gz
2. tar xvf apache_1.3.x.tar
3. gunzip php-x.x.x.tar.gz
4. tar xvf php-x.x.x.tar
5. cd apache_1.3.x
6. ./configure --prefix=/www
7. cd ../php-x.x.x
8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9. make
10. make install
11. cd ../apache_1.3.x
12. ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
15. cd ../php-x.x.x
16. cp php.ini-dist /usr/local/lib/php.ini
17. 編輯httpd.conf或srm.conf,加入下面這行:
AddType application/x-httpd-php .php
18. 以正常的程序重新啟動Apache(必需以stop及start的方式重新起動伺服器)
三、安裝在Windows系統
要將PHP安裝在Windows系統,主要有二個方式。一個是以手動的方式來安裝,另一個是以安裝精靈帶領你完成整個完裝過程。當你決定要使用何種方式來安裝後,可以到PHP的首頁下載你所需要的檔案。
下載完後,執行你所下載的檔案,然後安裝精靈會指導你如何安裝。安裝精靈提供二種安裝的方式(如圖),一個是standard,它會採用預設的設定值。另一種是advanced,使用這種方式你必需在每個步驟回答它的問題。
Windows版的PHP有二種型式,一個是CGI executable (php.exe)以及SAPI模組(例如php4isapi.dll)。SAPI模組是PHP4所引進的新型式,並且能提供改進後的顯著效能及一些新的功能。如果你是使用Windows95系統並選擇使用SAPI模組,你必需到微軟DCOM page下載DCOM。
首先到PHP首頁下載.zip二進位檔,然後照下列動作進行安裝即可。
| Extension | Description | Notes |
|---|---|---|
| php_bz2.dll | bzip2 compression functions | None |
| php_calendar.dll | Calendar conversion functions | Built in since PHP 4.0.3 |
| php_cpdf.dll | ClibPDF functions | None |
| php_crack.dll | Crack functions | None |
| php3_crypt.dll | Crypt functions | unknown |
| php_ctype.dll | ctype family functions | None |
| php_curl.dll | CURL, Client URL library functions | Requires: libeay32.dll, ssleay32.dll (bundled) |
| php_cybercash.dll | Cybercash payment functions | None |
| php_db.dll | DBM functions | Deprecated. Use DBA instead (php_dba.dll) |
| php_dba.dll | DBA: DataBase (dbm-style) Abstraction layer functions | None |
| php_dbase.dll | dBase functions | None |
| php3_dbm.dll | Berkeley DB2 library | unknown |
| php_domxml.dll | DOM XML functions | Requires: libxml2.dll (bundled) |
| php_dotnet.dll | .NET functions | None |
| php_exif.dll | Read EXIF headers from JPEG | None |
| php_fbsql.dll | FrontBase functions | None |
| php_fdf.dll | FDF: Forms Data Format functions. | Requires: fdftk.dll (bundled) |
| php_filepro.dll | filePro functions | Read-only access |
| php_ftp.dll | FTP functions | Built-in since PHP 4.0.3 |
| php_gd.dll | GD library image functions | None |
| php_gettext.dll | Gettext functions | Requires: gnu_gettext.dll (bundled) |
| php_hyperwave.dll | HyperWave functions | None |
| php_iconv.dll | ICONV characterset conversion | Requires: iconv-1.3.dll (bundled) |
| php_ifx.dll | Informix functions | Requires: Informix libraries |
| php_iisfunc.dll | IIS management functions | None |
| php_imap.dll | IMAP POP3 and NNTP functions | PHP 3: php3_imap4r1.dll |
| php_ingres.dll | Ingres II functions | Requires: Ingres II libraries |
| php_interbase.dll | InterBase functions | Requires: gds32.dll (bundled) |
| php_java.dll | Java extension | Requires: jvm.dll (bundled) |
| php_ldap.dll | LDAP functions | Requires: libsasl.dll (bundled) |
| php_mhash.dll | Mhash Functions | None |
| php_ming.dll | Ming functions for Flash | None |
| php_msql.dll | mSQL functions | Requires: msql.dll (bundled) |
| php3_msql1.dll | mSQL 1 client | unknown |
| php3_msql2.dll | mSQL 2 client | unknown |
| php_mssql.dll | MSSQL functions | Requires: ntwdblib.dll (bundled) |
| php3_mysql.dll | MySQL functions | Built-in in PHP 4 |
| php3_nsmail.dll | Netscape mail functions | unknown |
| php3_oci73.dll | Oracle functions | unknown |
| php_oci8.dll | Oracle 8 functions | Requires: Oracle 8 client libraries |
| php_openssl.dll | OpenSSL functions | Requires: libeay32.dll (bundled) |
| php_oracle.dll | Oracle functions | Requires: Oracle 7 client libraries |
| php_pdf.dll | PDF functions | None |
| php_pgsql.dll | PostgreSQL functions | None |
| php_printer.dll | Printer functions | None |
| php_xslt.dll | XSLT functions | Requires: sablot.dll (bundled) |
| php_snmp.dll | SNMP get and walk functions | NT only! |
| php_sybase_ct.dll | Sybase functions | Requires: Sybase client libraries |
| php_yaz.dll | YAZ functions | None |
| php_zlib.dll | ZLib compression functions | None |
四、在Unix系統上安裝Apache及PHP的細部設定
1. gunzip apache_xxx.tar.gz
2. tar xvf apache_xxx.tar
3. gunzip php-xxx.tar.gz
4. tar xvf php-xxx.tar
5. cd apache_xxx
6. ./configure --prefix=/www --enable-module=so
7. make
8. make install
9. cd ../php-xxx
10. ./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install
你如果在安裝完成之後,想要將PHP重新編譯加入某些選項,你只需要重複最後三個步驟,然後重新起動Apache就可以了,不需重新再去編譯Apache。
11. cp php.ini-dist /usr/local/lib/php.ini
你可以去編輯php.ini裡面的選項,如果你想要將php.ini放在其它位置,你可以使用--with-config-file-path=/path來加以設定。
12. 編輯httpd.conf或srm.conf,並確定下列這幾行有在檔案裡面而且沒有被註解起來:
AddType application/x-httpd-php .php
LoadModule php4_module
libexec/libphp4.so
你可以選擇任何其它的副檔名,像是.html .php3等等,.php是較簡單的方式,而且我們也建議採用這種副檔名。LoadModule右手邊的路徑必需正確的指到PHP
module的路徑。
13. 以正常的程序重新啟動Apache(必需以stop及start的方式重新起動伺服器)
五、在Windows系統上安裝PHP的細部設定(使用Apache伺服器)
PHP可被安裝成二種型式,一個是CGI binary (php.exe),另一個是使用Apache模組DLL。不論你是使用那種型式,都要去編輯httpd.conf或srm.conf,然後重新啟動Apache,使Apache能讓PHP正常的運作。
要將PHP編譯成第一種型式,請編輯Apache組態設定檔httpd.conf,加入下列這三行:
上面第二行指令可在httpd.conf裡找到,如果有的話,將前面的註解去除,如果沒有再自行加上去。在第一行的指令c:/php必需指到你安裝PHP的目錄。
要將PHP編譯成第二種型式,請先將php4ts.dll複製到windows/system (Windows 9x/Me)或 winnt/system32 (Windows NT/2000/XP),如果檔案己經存在,就將它覆蓋下去。然後編輯httpd.conf,加入下列三行指令:
這裡有二種方式可以讓你秀出程式的原始碼,如果你是將PHP安裝成Apache模組,你可以在httpd.conf中加入下列這行:AddType application/x-httpd-php-source .phps。如果是使用CGI binary,就必需使用show_source( )這個函式,你可以建立一個PHP檔,然後將下列這些程式碼複製到你所建立的那個檔案裡面:<?php show_source("original_php_script.php"); ?>。original_php_script.php是你想要秀出原始碼的檔案名稱。
六、編譯PHP的選項
資料庫方面:
--with-msql [=DIR]
加入mSQL。DIR是mSQL安裝的目錄位置,預設的值是/usr/local/Hughes。
--with-mysql [=DIR]
加入MySQL。DIR是MySQL安裝的目錄位置。
--with-solid [=DIR]
加入Solid。DIR是Solid安裝的目錄位置。
--with-unixODBC [=DIR]
加入unixODBC。DIR是unixODBC安裝的目錄位置,預設的值是/usr/local。
--with-dbmaker [=DIR]
加入DBMaker。DIR是DBMaker安裝的目錄位置。
--with-oracle [=DIR]
加入Oracle。預設的DIR是ORACLE_HOME。
--with-pgsql [=DIR]
加入PostgreSQL。DIR是PostgreSQL安裝的目錄位置,預設的值是/usr/local/pgsql。
--with-sybase [=DIR]
加入Sybase。DIR是Sybase安裝的目錄位置,預設的值是/home/sybase。
--with-sybase-ct [=DIR]
加入Sybase-CT。DIR是Sybase家目錄的位置,預設的值是/home/sybase。
PHP設定方面:
--with-config-file-path=PATH
設定php.ini的路徑,預設的值是PREFIX/lib。
--enable-safe-mode
預設上是開啟安全模式。
--with-exec-dir[=DIR]
當開啟安全模式時,只允許執行DIR裡面的檔案,預設的值是/usr/local/php/bin。
--enable-magic-quotes
預設上是開啟魔術引號。
--disable-short-tags
預設上是關閉短標籤型式<?。
伺服器方面:
--with-apache [=DIR]
加入Apache模組。DIR預設的值是/usr/local/apache。
其它方面:
--enable-force-cgi-redirect
如果將PHP安裝成CGI版本時(使用Apache伺服器),開啟這個選項可以檢查內部的伺服器重新導向。
--enable-discard-path
如果開啟這個選項,PHP CGI binary會被安全地放置在網站目錄以外的地方,使人們無法存取.htaccess,增加系統的安全性。
--with-fastcgi=SRCDIR
將PHP安裝成FastCGI。
--enable-debug
開啟除錯功能。