windows下apache搭建php开发环境
本文详细介绍了在windows2003下使用apache2.2.21/php5.3.5/mysql5.5.19/phpmyadmin3.4.9搭建php开发环境。
第一步:下载安装的文件
1. apache 版本
2. mysql 版本
3. php 版本 php-5.3.5-win32-vc6-x86.zip
4. phpmyadmin 版本 phpmyadmin-3.4.9-all-languages.zip
提示:
1. 建议选择无ssl功能的apache版本来完成开发,因此我们这里使用了apache 2.2.21-win32-x86-no ssl.msi。
2. windows下安装mysql就选择.msi安装包格式,我们选择了mysql-5.5.19-win32.msi ,双击根据向导安装即可,简单方便。
3. php我们选择用windows的.zip版本,php-5.3.5-win32-vc6-x86.zip。从安全性和性能来说,都是zip版本的好,一般服务器也都是安装这个版本的。
不要下载nts版本或vc9版本的,因为vc9是专门为iis定制的,而vc6 是为apache或其他web服务软件提供的。
4. phpmyadmin是以php为基础的在线mysql管理工具,在进行phpmyadmin3 安装时需要的php环境至少为php5.2,mysql5 以上的版本,我们这里都符合要求。
第二步:安装文件
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。
第三步:配置apache
首先使用文本编辑工具(推荐 editplus )打开 d:\wamp\apache\conf\httpd.conf 文件,这个文件是apache的配置文件,下面几步都是在修改这个文件的内容。
要注意的是修改完 httpd.conf 文件需重新启动apache服务,新设置才会生效。
1. 设置监听端口
打开 httpd.conf 文件后,找到 listen(大概在第46行),将它后面的数字改为8080,如下:
listen 8080
这个参数用来设置apache服务器的监听端口,一般默认为80。修改为8080 是为了避免和windows 2003系统的iis端口号冲突,如果你没有启用iis,也可以使用默认的80端口号。
2. 让apache加载php模块
找到 #loadmodule vhost_alias_module modules/mod_vhost_alias.so (大概在第128行),在这行的后面添加以下内容:
loadmodule php5_module "d:/wamp/php/php5apache2_2.dll" addtype application/x-httpd-php .php phpinidir "d:/wamp/php" loadmodule php5_module "d:/wamp/php/php5apache2_2.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"
同时,查找 this should be changed to whatever you set documentroot to(大概在207行),在它下面有行 <directoy 默认的documentroot >,将其修改为你自己配置的documentroot 路径。我们这里修改为:
<directory "d:/wamp/www">
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 或者 下载已经编译好的dll文件,也可以去 载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实现文件上传功能。
6. 设置时区
在 php.ini 配置文件查找 ;date.timezone = (大概在993行),去掉前面的分号“;” 改为如下:
date.timezone = prc
date.timezone是php5.1开始新增加的配置参数,用来设置时区。默认date.timezone是被注释掉的,也就是默认时区是utc格林威治标准时间。
我们这里改为 date.timezone = prc(prc,people's *,*),也就是日期使用中国的时区。这样可以解决时间相差八小时的问题。
第五步:配置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';
第六步:测试
将如下代码保存为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”。结果如下图所示:
上一篇: 不知道大家有没有遇到这种情况
推荐阅读
-
Ubuntu服务器下搭建php运行环境的方法
-
Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方法
-
PHP+Oracle本地开发环境搭建方法详解
-
windows8.1下Apache+Php+MySQL配置步骤
-
ubuntu下搭建php开发环境(nginx+(cgi)php5fpm+memcached+xdebug)
-
Windows下PHP安装路径配置错误导致Apache无法启动的解决方法
-
在windows下快速搭建web.py开发框架方法
-
[Hadoop] Windows 下的 Hadoop 2.7.5 环境搭建
-
mac下Apache + MySql + PHP搭建网站开发环境
-
[微信公众平台开发]php开发环境搭建设置(一)