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

相关文章
相关标签/搜索