PHP是一種伺服器端的嵌入式指令碼語言,是一種伺服器端、跨平台、物件導向、HTML嵌入式的指令碼語言。本章將向讀者介紹PHP開發環境搭建,常用的配置問題和解決方案。通過本章的學習,讀者能夠學到以下內容。
更換驗證碼
: Windows——AppserV整合安裝包搭建PHP環境
: Linux——XAMPP整合安裝包搭建PHP環境
: PHP開發環境的關鍵配置資訊
: 解決PHP的常見配置問題
1.1 PHP環境搭建
1.1.1 AppServ—Windows版PHP整合化安裝包
AppServ將Apache、PHP、MySQL和phpMyAdmin等伺服器軟體和工具安裝配置完成後打包處理。開發人員只要到網站上下載該軟體,然後安裝,即可完成PHP開發環境的快速搭建。非常適合初學者使用。
注意:在使用AppServ搭建PHP開發環境時,必須確保在系統中沒有安裝Apache、PHP和MySQL。否則,要先將這些軟體卸載,然後應用AppServ。
下面講解AppServ整合化安裝包搭建PHP開發環境的具體操作步驟:
(1)雙擊AppServ-win32-2.5.10.exe檔案,開啟1.1所示的AppServ啟動頁面。
(2)單擊圖1.1中的Next按鈕,開啟1.2所示的AppServ安裝協議頁面。
(3)單擊圖1.2中的I Agree按鈕開啟1.3所示的頁面。設定AppServ的安裝路徑(預設安裝路徑一般為:E:\AppServ),AppServ安裝完成後Apache、MySQL、PHP都將以子目錄的形式儲存到該目錄下。
(4)單擊圖1.3中的Next按鈕開啟1.4所示的頁面。選擇要安裝的程式和組件(預設為全選)。
注意:在圖1.4的操作步驟中,如果本機中已經安裝MySQL資料庫,那麼在這裡可以不勾選MySQL Database選項,仍使用本機已經存在的MySQL資料庫。
(5)在圖1.4中單擊Next按鈕,開啟1.5所示的頁面。填寫電腦名稱,添加郵箱地址,設定Apache的連接埠號碼,預設為80連接埠。
技巧:Apache伺服器連接埠號碼的設定,直接關係到Apache伺服器是否能夠正常啟動。如果本機中的80連接埠被IIS或者迅雷佔用,那麼這裡就需要修改Apache的連接埠號碼,或者將IIS、迅雷的連接埠號碼修改,才能完成Apache伺服器的配置。如果出現連接埠衝突,那麼將導致安裝失敗,Apache服務不能啟動。
(6)單擊圖1.5中的Next按鈕,開啟1.6所示的頁面。設定MySQL資料庫root使用者的登入密碼及字元集。
技巧:MySQL資料庫字元集的設定,可以選擇UTF-8、GBK或者GB2312。這裡將字元集設定為“UTF-8 Unicode”,表示MySQL資料庫的字元集將採用UTF8編碼。
注意:對於在圖1.6中設定的MySQL資料庫root使用者的密碼必須牢記,因為程式在串連資料庫時必須使用這個密碼。
的程式時,要修改串連資料庫的密碼。如果忘記安裝時設定密碼,最直接有效解決方式是重新安裝AppServ。
(7)單擊圖1.6中的Install按鈕開始安裝,1.7所示。
(8)安裝完成後可以在開始菜單的AppServ相關巨集指令清單中啟動Apache及MySQL服務,1.8所示。
1.2 PHP開發環境的關鍵配置資訊
前面介紹了PHP開發環境的配置方法,除了安裝步驟本身之外,PHP與伺服器的配置也是十分重要的。下面將主要介紹PHP及Apache伺服器的配置。
1.2.1 Apache伺服器的基本配置
Apache伺服器的設定檔案在Linux作業系統中位於/usr/local/apache/conf/(在Windows作業系統中位於“/etc/httpd/conf”)目錄下,基本上使用以下3個設定檔來配置Apache伺服器的行為。
t access.conf:用於設定管理員的存取權限,控制不同使用者和電腦的訪問限制。
t httpd.conf:用於設定伺服器啟動的基本環境。
t srm.conf:主要用於作檔案資源上的設定。
技巧:http.conf是Apache伺服器的設定檔,其常用的配置包括:Apache伺服器的連接埠號碼、伺服器的訪問路徑和偽靜態設定。
ServerName localhost:80
DocumentRoot "/xampp/htdocs"
LoadModule rewrite_module modules/mod_rewrite.so
1.2.2 PHP.INI檔案的基本配置
php.ini檔案是PHP在啟動時自動讀取的設定檔。php.ini是一個ASCLL文字檔,分為多個部分,每一部分包括相關的參數。每一部分的名稱位於最前面的方括弧內,接著是名稱對數字,每一名稱都獨佔一行。使用規則PHP代碼,對參數名稱非常敏感,不能包含有空格,但是參數可以是數字,字串或者布爾邏輯數。分號位於每一行的開始,其作為指定標記,這就使選擇使用或者不使用PHP的這些特性變得很方便,而無需通過刪除該行來實現。對某特性進行注釋(即,添加分號),則該行將不會被編譯執行。每次修改完php.ini檔案,必須重新啟動Apache伺服器,以使新的設定生效。
技巧:php.ini是PHP的設定檔,用於載入各種函數庫、設定錯誤層級和設定伺服器的時間等等。在Linux作業系統中,php.ini儲存於/opt/lampp/etc/php.ini 檔案夾下,而在Windwos作業系統中php.ini儲存於系統硬碟的windows檔案下。php.ini檔案的基本配置如表1.1所示。
表1.1 php.ini檔案的基本配置
參數 |
說明 |
預設值 |
error_reporting |
設定錯誤處理的層級。推薦值為E_ALL & ~E_NOTICE & ~E_STRICT,顯示所有錯誤資訊,除了提醒和編碼通訊協定化警告。 |
E_ALL & ~E_NOTICE & ~E_STRICT |
register_globals |
通常情況下可以將此變數設定為Off,這樣可以對通過表單進行的指令碼攻擊提供更為安全的防範措施 |
register_globals = On |
include_path |
設定PHP的搜尋路徑,這一參數可以接收系列的目錄。當PHP遇到沒有路徑的檔案提示時,它將會自動檢測這些目錄,需要注意的是,當某些選項允許多個值,應使用系統清單分隔符號,在Windows下使用分號“;”,在Linux下使用冒號“:” |
; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" |
extension_dir |
指定PHP的動態串連擴充庫的目錄 |
“\ext”目錄下 |
extension |
指定PHP啟動時所載入的動態串連擴充庫。PHP的常用擴充庫及其說明請參見表1.2 |
PHP的常用擴充庫在初次安裝配置後均被注釋,需讀者手動更改 |
file_uploads |
設定是否允許通過HTTP上傳檔案 |
file_uploads=On |
upload_tmp_dir |
設定通過HTTP上傳檔案時的臨時目錄,如果為空白,則使用系統的臨時目錄 |
upload_tmp_dir =空 |
upload_max_filesize |
設定允許上傳檔案的大小,如“50M”,必須填寫單位 |
upload_max_filesize=2M |
post_max_size |
控制在採用POST方法進行一次表單提交中PHP所能夠接收的最大容量。要上傳更大的檔案,則該值必須大於upload_max_filesize的值。 如upload_max_filesize=10M,那麼upload_max_filesize的值必須要大於10M |
post_max_size = 8M |
max_input_time |
以秒為單位對通過POST、GET以及PUT方式接收資料時間進行限制 |
max_input_time = 60 |
表1.2 PHP常用擴充庫及其說明
擴張庫 |
說明 |
php_ftp.dll |
支援FTP函數庫,可以實現客戶機與伺服器之間標準傳送協議(FTP) |
php_gd2.dll |
支援影像處理函數庫,支援對.gif、.jpg、.png等多種映像格式 |
php_imap.dll |
支援imap電子郵件處理函數庫 |
php_mssql.dll |
支援MsSQL資料庫 |
php_msql.dll |
支援mSQL資料庫 |
php_MySQL.dll |
支援MySQL資料庫 |
php_oracle.dll |
支援Oracle資料庫 |
php_pdf.dll |
支援PDF檔案處理函數庫 |
php_sockets.dll |
支援Sockets處理函數庫 |
php_zlib.dll |
支援zlib檔案壓縮函數庫 |
php_pdo.dll |
支援PDO資料庫抽象層 |
php_pdo_mysql.dll |
支援MySQL資料庫 |
php_pdo_mssql.dll |
支援MS SQL Server資料庫 |
php_pdo_oci8.dll |
支援Oracle資料庫 |
php_pdo_odbc.dll |
支援ODBC資料庫 |
php_pdo_pgsql.dll |
支援PGSQL資料庫 |
1.3 解決PHP的常見配置問題
程式運行出錯是許多程式員最為頭疼的問題,下面介紹PHP常見的配置問題。通過本節的學習,可以分清哪些錯誤是由於PHP環境配置不當產生的,從而避免不必要的時間資源浪費,高效的完成Web應用程式的開發。
1.3.1 解決Apache伺服器連接埠衝突
IIS的預設連接埠號碼為80,同Apache伺服器預設連接埠號碼相同。由於採用了相同的連接埠號碼80,因此,在運行網頁時就會發生衝突。
如果使用者機器上安裝了IIS,就需要修改IIS的預設連接埠,否則將導致Apache伺服器無法正常工作。更改IIS的預設偵聽連接埠80,可以在IIS的管理器中進行設定,或者停止IIS的服務也可以。
使用者也可以在安裝Apache伺服器時將預設的連接埠號碼變更,從而解決兩個伺服器共用一個連接埠號碼而產生衝突的問題。
技巧:如果在搭建PHP環境時,將Apache的連接埠號碼設定為82,那麽在通過瀏覽器訪問項目時,則應該輸入http://127.0.0.1:82/或者http://localhost:82/。
1.3.2 設定PHP的系統目前時間
由於php 5.0對date()函數進行了重寫,因此,目前的日期時間函數比系統時間少8個小時。在PHP語言中預設設定的是標準的格林威治時間(即採用的是零時區),所以要擷取本地當前的時間必須更改PHP語言中的時區設定。方法如下:
在php.ini檔案中,找到[date]下的“;date.timezone =”選項,將該項修改為“date.timezone =Asia/Hong_Kong”,然後重新啟動Apache伺服器。
設定完成後,在輸出系統當前的時間就不會出現時差問題。
1.3.3 增加PHP擴充模組
增加PHP擴充模組也稱為動態擴充,用來動態載入某個模組,它包含一個指令:extension。
在Windows作業系統下,載入模組的方法如下。開啟php.ini檔案,定位到如下位置,去掉;tension=php_java.dll前面的分號,儲存後重新啟動Apache伺服器,即完成擴充模組的載入操作。
;tension=php_java.dll
在Linux作業系統下,載入模組的方法如下。
extension=php_java.so
需要說明的是,只載入這一行代碼並不一定能啟用相關的擴充包,有時還需要確保在作業系統中安裝相關的軟體。例如:為啟用java支援,需要安裝JDK。
http://www.bkjia.com/PHPjc/755761.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/755761.htmlTechArticlePHP是一種伺服器端的嵌入式指令碼語言,是一種伺服器端、跨平台、物件導向、HTML嵌入式的指令碼語言。本章將向讀者介紹PHP開發環境搭建,常...