Windows+Apache搭建PHP開發環境

本文詳細介紹了在Windows8.1(X64)下使用Apache2.4.12-x64-vc11/php-5.6.7-Win32-VC11-x64/Mysql5.6.24/phpMyAdmin4.4.2搭建php開發環境。php

第一步:下載安裝的文件

1. 建議選擇無SSL功能的Apache版原本完成開發。
2. Windows下安裝MySQL就選擇.msi安裝包格式,雙擊根據嚮導安裝便可,簡單方便。
3. PHP咱們選擇用Windows的.zip版本。從安全性和性能來講,都是zip版本的好,通常服務器也都是安裝這個版本的。
    不要下載NTS版本或VC9版本的,由於VC9是專門爲IIS定製的,而VC6 是爲Apache或其餘WEB服務軟件提供的。
4. phpMyAdmin是以PHP爲基礎的在線MySQL管理工具,在進行phpMyAdmin3 安裝時須要的PHP環境至少爲PHP5.2,MySQL5 以上的版本,咱們這裏都符合要求。 html

第二步:安裝文件

1. 在要安裝的磁盤建一個文件夾。爲了管理方便咱們在D盤的根目錄下建立一個WAMP文件夾。 D:\WAMP(WAMP是 windows+apache+mysql+php的縮寫)。
2. 在WAMP文件夾下建立一個WWW文件夾,用來存放你的PHP網站程序。D:\WAMP\WWW。
3. 安裝Apache服務器,把Apache服務器安裝到 D:\WAMP\Apache 文件夾。具體Apache安裝過程能夠參考文檔 Apache安裝圖解
4. 把下載的php-5.3.5-Win32-VC6-x86解壓到 D:\WAMP\PHP 文件夾
5. 安裝MySql數據庫,把MySQL安裝到 D:\WAMP\MySQL文件夾。具體MySQL安裝過程能夠參考文檔 MySQL安裝圖解
6. 解壓phpMyAdmin-3.4.9-all-languages.zip,而後重命名爲phpMyAdmin,將其複製到PHP網站程序目錄。結果爲 D:\WAMP\WWW\phpMyAdmin。 mysql

第三步:配置Apache

首先使用文本編輯工具(推薦 EditPlus )打開 D:\WAMP\Apache\conf\httpd.conf 文件,這個文件是Apache的配置文件,下面幾步都是在修改這個文件的內容。
要注意的是修改完 httpd.conf 文件需從新啓動Apache服務,新設置纔會生效。 sql

1. 設置監聽端口 數據庫

打開 httpd.conf 文件後,找到 Listen(大概在第46行),將它後面的數字改成8080,以下: apache

Listen 8080

這個參數用來設置Apache服務器的監聽端口,通常默認爲80。修改成8080 是爲了不和Windows 2003系統的IIS端口號衝突,若是你沒有啓用IIS,也可使用默認的80端口號。 windows

2. 讓Apache加載PHP模塊 瀏覽器

找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so (大概在第128行),在這行的後面添加如下內容: 安全

Define PHPROOT "D:/Programs/WAPM/PHP"
PHPIniDir "${PHPROOT}"

#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module "${PHPROOT}/php5apache2_4.dll"
AddType application/x-httpd-php .php

LoadModule php5_module "D:/WAMP/PHP/php5apache2_4.dll"
這句意思是以module方式載入PHP5模塊。
AddType application/x-httpd-php .php
這句意思就是將.php擴展名的文件做爲php腳本執行。你可使用你喜歡的任何其餘擴展名,如 .html、.php5 甚至是 .txt  來執行PHP。
PHPIniDir "D:/WAMP/PHP"
這句用來指定PHP的配置文件php.ini 所在的目錄。
若是是Apache 2 以module模塊方式運行php5的話,就可使用 PHPIniDir 指令。服務器

3. 修改網站存放目錄

咱們知道Apache默認的網站存放目錄爲Apache安裝目錄下的htdocs文件夾。當你更改網站存放目錄,就必須修改相應的Apache配置。
在配置文件 httpd.conf 中查找 DocumentRoot(大概在182行),將其修改成指向網站目錄的正確文件夾。咱們這裏改成

DocumentRoot "D:/WAMP/www"
<Directory "D:/WAMP/www">
 

同時,查找 This should be changed to whatever you set DocumentRoot to(大概在207行),在它下面有行 <Directoy 默認的DocumentRoot >,將其修改成你本身配置的DocumentRoot 路徑。咱們這裏修改成:

4. 修改目錄首頁文件

在配置文件 httpd.conf 中查找 DirectoryIndex index.html (大概在244行)將其修改爲:

DirectoryIndex index.html index.htm index.php

DirectoryIndex 指的是當客戶瀏覽器訪問的路徑是一個目錄時,Apache默認執行的文件。
以咱們所修改的爲例:當客戶瀏覽器訪問一個目錄時,Apache會去找該目錄下的index.html,若是沒有再找index.htm,尚未再找 index.php。都找不到則默認顯示該目錄下的文件列表。參考文檔:若是防止Apache顯示文件列表

第四步:配置PHP

打開PHP安裝目錄,即D:\WAMP\PHP,咱們能夠看到目錄下有兩個這樣的文件 php.ini-development 和 php.ini-production,第一個是開發使用的配置文件,第二個是生產環境的配置,由於咱們是在本機作開發,因此選擇前者。將 php.ini-development複製一份到同目錄下,並更名爲 php.ini。這個php.ini 就是當前使用的配置文件,如下幾步都是在修改這個php.ini文件的內容。要注意的是,修改php.ini文件後需從新啓動Apache服務,新設置纔會生效。

1. 指定PHP擴展庫的存放目錄

在Windows下PHP的擴展庫一般以 DLL 形式存放在PHP的ext目錄中。
使用文本工具打開php.ini文件,查找extension_dir = "ext"(大概在809行),也就是在 On windows 下面那一行。把它前面的分號「;」去除掉,改成以下:

extension_dir = "D:/WAMP/PHP/ext"

extension_dir 表示PHP擴展庫的具體目錄,以便調用相應的DLL文件。

2. 開啓相應的擴展庫

默認狀況下許多PHP的擴展庫都是關閉的,好比默認PHP不支持鏈接Mysql數據庫,需開啓相應的擴展庫。
這裏咱們開啓一些經常使用的擴展庫。
查找 ; Windows Extensions(大概在941行),在它的下面是extension列表。
找到以下擴展:

;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_exif.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_sockets.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll

把以上extension 前面的分號 「;」 去掉。若是你但願加載其它擴展模塊,方法相同,只要去掉前面的分號便可。
提示1:重啓Apache提示 「unable to load dynamic library......php_curl.dll」,加載php_curl.dll錯誤。解決方法是拷貝 PHP 目錄下的 libeay32.dll 和 ssleay32.dll 到 windows 目錄或 windows/system32 目錄下,只要是系統 Path 環境變量裏包含的路徑就能夠。若是不想拷貝,你也能夠直接把 PHP 路徑放到系統 Path 環境變量裏。 右擊個人電腦=>屬性=>高級=>環境變量=>系統變量裏有個Path,雙擊打開,把你的PHP路徑加個分號「;」再前面( ;D:\WAMP\PHP ),添加進去就OK了。重啓Apache再也不提示該錯誤。
提示2:Exif 擴展是用來顯示圖片的 exif 信息的,由於該擴展須要 mbstring.dll 支持,因此必須將 extension=php_exif.dll 這一行寫到extension=php_mbstring.dll 的後面。
提示3:若是PHP自帶的擴展庫不能知足你的須要,你能夠去 pecl.php.net 查找並下載你須要的庫。windows用戶能夠去 pecl4win.php.net 或者 http://downloads.php.net/pierre/ 下載已經編譯好的DLL文件,也能夠去http://museum.php.net/php5/ 載PECL集合壓縮包。
提示4:不少人在找php_zip.dll,其實從php5.3開始已經集成了zip擴展,直接使用就好了。你能夠用<?php phpinfo()  ?> 找到zip擴展的說明。

3. 讓PHP支持短標籤

在 php.ini 配置文件查找 short_open_tag = Off (大概在266行)把它修改爲:

short_open_tag = On

讓其支持短標籤。
php的代碼通常包含在<?php .... ?>的標籤內,設置 short_open_tag = On 以後,能夠寫成更簡潔的形式:<? .... ?>。

4. 配置PHP的Session功能

在使用session功能時,咱們必須配置session文件在服務器上的保存目錄。咱們須要爲session創建一個可讀寫的目錄,這個目錄最好獨立於網站目錄以外。
這裏把目錄上建在了D:\WAMP\sessiontmp,而後在 php.ini 配置文件中找 ;session.save_path = "/tmp" (大概在1467行),去掉前面的分號「;」 ,改成以下:

session.save_path = "D:/WAMP/sessiontmp"

5. 配置PHP的文件上傳功能

同session同樣,在使用PHP文件上傳功能時,咱們必需要指定一個臨時文件夾以完成文件上傳功能,不然文件上傳功能會失敗。
咱們創建一個可讀寫的目錄文件夾 D:\WAMP\fileuploadtmp,而後在 php.ini 配置文件中找到 ;upload_tmp_dir = (大概875行),修改成:

upload_tmp_dir = "D:/WAMP/fileuploadtmp"

PHP默認上傳文件大小不超過2M,要想上傳大於2M的文件

php.ini中文件上傳功能配置選項說明

用文本工具(推薦EditPlus)打開php.ini 配置文件,查找 File Uploads ,在這個區域有如下3個選項:

file_uploads = On

是否容許HTTP文件上傳。默認值爲On容許HTTP文件上傳,此選項不能設置爲Off。

upload_tmp_dir =

文件上傳的臨時存放目錄。若是沒指定則PHP會使用系統默認的臨時目錄。該選項默認爲空,此選項在手動配置PHP運行環境時,也容易遺忘,若是不配置這個選項,文件上傳功能就沒法實現,你必須給這個選項賦值,好比upload_tmp_dir = "d:/fileuploadtmp" ,表明在D盤目錄下有一個fileuploadtmp目錄,而且給這目錄讀寫權限。

upload_max_filesize = 2M

上傳文件的最大尺寸。這個選項默認值爲2M,即文件上傳的大小爲2M,若是你想上傳一個50M的文件,你必須設定 upload_max_filesize = 50M。
可是僅設置upload_max_filesize = 50M 仍是沒法實現大文件的上傳功能,咱們還必須修改php.ini文件中的 post_max_size 選項。

繼續在 php.ini 中查找 Data Handling ,在這個區域有1個選項:

post_max_size = 8M

指經過表單POST給PHP的所能接收的最大值,包括表單裏的全部值。默認爲8M。若是POST數據超出限制,那麼$_POST和$_FILES將會爲空。
要上傳大文件,你必須設定該選項值大於upload_max_filesize選項的值,例如你設置了upload_max_filesize = 50M ,這裏能夠把post_max_size = 100M。
另外若是啓用了內存限制,那麼該值應當小於memory_limit 選項的值。

繼續在 php.ini 中查找 Resource Limits ,在這個區域有3個選項:

max_execution_time = 30

每一個PHP頁面運行的最大時間值(單位秒),默認30秒。當咱們上傳一個較大的文件,例如50M的文件,極可能要幾分鐘才能上傳完,但php默認頁面最久執行時間爲30秒,超過30秒,該腳本就中止執行,這就致使出現沒法打開網頁的狀況。所以咱們能夠把值設置的較大些,如 max_execution_time = 600。 若是設置爲0,則表示無時間限制。

max_input_time = 60

每一個PHP腳本解析請求數據所用的時間(單位秒),默認60秒。當咱們上傳大文件時,能夠將這個值設置的較大些。 若是設置爲0,則表示無時間限制。

memory_limit = 128M

這個選項用來設置單個PHP腳本所能申請到的最大內存空間。這有助於防止寫得很差的腳本消耗光服務器上的可用內存。若是不須要任何內存上的限制將其設爲 -1。
php5.2.0之前的版本默認8M; php.5.2.0版本默認爲16M。php 5.2.0以後的版本默認爲 128M;

php.ini 配置上傳文件功能示例

假設要上傳一個50M的大文件。配置 php.ini 以下:

file_uploads = On
upload_tmp_dir = "d:/fileuploadtmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M

提示:須要保持 memory_limit > post_max_size > upload_max_filesize

6. 設置時區

在 php.ini 配置文件查找 ;date.timezone = (大概在993行),去掉前面的分號「;」 改成以下:

date.timezone = PRC

date.timezone是PHP5.1開始新增長的配置參數,用來設置時區。默認date.timezone是被註釋掉的,也就是默認時區是UTC格林威治標準時間。
咱們這裏改成 date.timezone = PRC(PRC,People’s Republic of China,中華人民共和國),也就是日期使用中國的時區。這樣能夠解決時間相差八小時的問題。

第五步:配置phpMyAdmin

打開phpMyAdmin目錄,即D:\WAMP\WWW\phpMyAdmin,咱們能夠看到目錄下有一個config.sample.inc.php 文件,將這個文件複製一份到同目錄下,並更名爲 config.inc.php。這個config.inc.php 就是phpMyAdmin的配置文件,如下幾步都是在修改這個config.inc.php 文件的內容。

1. 設置phpMyAdmin登陸方式

打開config.inc.php文件,查找 $cfg['Servers'][$i]['auth_type'] ,設置以下:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

這個參數的值設置爲cookie,每次登陸phpMyAdmin須要輸入用戶名密碼。這也是phpMyAdmin的默認設置。

而後找到  $cfg['blowfish_secret'],設置以下:

$cfg['blowfish_secret'] = 'admin10000.com';

此參數用於Cookies的加密,這是設置爲admin10000.com,你能夠改爲本身的密碼。

這裏介紹一下phpMyAdmin 的四種登陸方式:
cookie:這是phpMyAdmin配置默認的登陸方式。需在登陸界面輸入MySQL的管理帳號和密碼。
           當選擇cookie登陸方式,還須要設置短語密碼 $cfg['blowfish_secret'] ,這個密碼用於Cookies的加密。
           例如:$cfg['blowfish_secret'] = 'admin10000.com';
           若是沒有設置,登陸phpMyAdmin會提示 「配置文件如今須要一個短語密碼」 的錯誤。
config:直接在地瀏覽器地址欄輸入phpMyAdmin登陸地址便可登陸,任何人均可以訪問。用戶名和密碼提早在配置文件中設定好。
           此登陸方式必須在配置文件中增長下面2行參數:
           $cfg['Servers'][$i]['user'] = '你的MySQL登陸帳號';
           $cfg['Servers'][$i]['password'] = '你的MySQL登錄密碼;
           若是隻是在本機器作開發,能夠設置爲config登陸方式,省去每次輸入密碼的麻煩。
http:彈出一個對話框,輸入用戶名和密碼後進入。
signon:相似於頁面跳轉的登陸方式,同時須要設定$cfg['Servers'][$i]['SignonURL'],當你輸入phpMyAdmin登陸地址後會自動跳轉到signonURL設定的網址。

2. 開啓phpMyAdmin 高級功能

登陸phpMyAdmin 後,在首頁面的最下方會提示:「phpMyAdmin 高級功能未所有設置,部分功能不可用」。
如今咱們來解決這個問題。使用phpMyAdmin的導入功能,導入phpMyAdmin/scripts/create_tables.sql 這個文件,從而創建必要的數據表。
接下來還須要新建一個MySQL用戶,並授予其訪問上一步操做創建的數據表的權限,這個MYSQL用戶稱爲控制用戶,爲 phpMyAdmin 高級功能提供支持。
咱們這裏使用 pma 做爲控制用戶以及 pmapass 做爲控制用戶的密碼。你能夠自行更改。
在phpMyAdmin的SQL查詢功能框中輸入如下SQL代碼:

    GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';     GRANT SELECT (     Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
        Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
        Execute_priv, Repl_slave_priv, Repl_client_priv
        ) ON mysql.user TO 'pma'@'localhost';
    GRANT SELECT ON mysql.db TO 'pma'@'localhost';
    GRANT SELECT ON mysql.host TO 'pma'@'localhost';
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
        ON mysql.tables_priv TO 'pma'@'localhost';       

接着咱們在 config.inc.php 中找到 User used to manipulate with storage 這一行。把它下面的2行參數註釋(雙斜槓「//」)去掉。結果爲:

        $cfg['Servers'][$i]['controluser'] = 'pma';
        $cfg['Servers'][$i]['controlpass'] = 'pmapass';

這兩行分別是控制用戶和控制用戶密碼。也就是上邊咱們建立的那個用戶。

接着找到 Storage database and tables 這一行,把下面的幾個參數的註釋去掉。結果爲:

        $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
        $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
        $cfg['Servers'][$i]['relation'] = 'pma_relation';
        $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
        $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
        $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
        $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
        $cfg['Servers'][$i]['history'] = 'pma_history';
        $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
        $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
        $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
第六步:測試

開啓服務:進入Apache的bin目錄下依次執行:

httpd -k install
httpd -k start
將以下代碼保存爲index.php文件,放到D:\WAMP\WWW目錄下面。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>測試服務器</title>
        </head>
        <body>
            <div style="text-align:center; color:red">
            <?php
                $link=mysql_connect("localhost","你的mysql管理帳號","你的mysql管理密碼");
                if(!$link) echo "MySQL數據庫 鏈接失敗!";
                else echo "MySQL數據庫 鏈接成功!";
                mysql_close();
            ?>
            </div>
            <br/>
            <?php phpinfo(); ?>
        </body>
</html>

而後在瀏覽器地址欄輸入「http://localhost:8080/index.php」。

第七步:管理數據庫

http://localhost:8080/phpMyAdmin

相關文章
相關標籤/搜索