win7+apache+php+mysql环境配置操作详解


Posted in PHP onJune 10, 2013

1.php版本简介
php各版本之间的区别,php版本后面一般有VC6和VC9、Thread Safe和Non Thread Safe的区别,VC6就是legacy Visual Studio 6 compiler,就
是使用这个编译器编译的,VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的,如果你选用的是Apache或者其他服务软
件,那么选择VC6,选用的是IIS的话,那么请下载VC9 的。Thread Safe 是线程安全,而Non Thread Safe就是非线程安全, 官方并不建议你将
Non Thread Safe 应用于生产环境,所以一般选择Thread Safe版本的下载就可以了。下载Zip包就可以了。

2.php下载,选择哪个版本
下载地址http://windows.php.net/download/,笔者选择的是php-5.3.16-Win32-VC9-x86.zip
(1)如果用的是apache1或apache2,请选择vc6版的php
(2)如果用的是IIS,你应该选择VC9版的PHP
VC6的版本是用Visual Studio 6编译的,VC9是用Visual Studio 2008编译的,提升了性能和稳定性,VC9版本需要安装Microsoft 2008 C++ 
Runtime,下载地址http://www.microsoft.com/en-us/download/details.aspx?id=29,或者安装VC10,下载地址 
http://www.microsoft.com/download/en/details.aspx?id=8328

3.下载和安装apache
(1)下载地址http://httpd.apache.org/download.cgi,笔者下载的是httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
(2)apache安装:
在这里主要配置
Network Domain:yourdomain.com
Server Name:www.yourdomain.com
Email:username@126.com
Apache服务的占用端口,默认为80端口,你可以根据需要配置在其他端口,Apache的安装目录你可以使用默认目录或根据需要自行选择安装目录
在完成apache服务的安装后,在游览器中输入http://localhost/,出现It's work!字样,说明Apache服务安装成功了。
(3)如果启动apache时,报了“(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : make_sock: could not bind to 
address 0.0.0.0:80”的错误。
用netstat -ano查看80端口已被占用,通常80端口会被IIS占用。
(4)解决方法:打开Apache安装目录\conf\httpd.conf文件,需要修改listen 80--》listent 88
(5)在浏览器里输入http://localhost:88即可
(6)如果启动apache出错“httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.111 
for ServerName”是因为DNS没配置好. 如果不想配置DNS, 就在httpd.conf中去掉ServerName前的#,修改为 ServerName 127.0.0.1:88

4.php的安装和配置
(1)将php-5.3.16-Win32-VC9-x86.zip解压至d:\php
(2)php.ini-development配置文件重命名为php.ini
(3)打开php.ini文件,找到如下文本
; On windows:
; extension_dir = "ext"
去掉extension_dir前的“;”,修改为extension_dir = "D:/php/ext" 表示指定PHP扩展包的具体目录,以便调用相应的DLL文件。
(4)由于默认PHP并不支持自动连接Mysql,需开启相应的扩展库功能,比如php_mysql.dll等,找到如下dll文本,去掉前面的";"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_xmlrpc.dll
(5)配置php的session功能
在使用session功能时,我们必须配置session文件在服务器上的保存目录,否则无法使用session,我们需要在Windows 7上新建一个可读写的目
录文件夹,此目录最好独立于WEB主程序目录之外,此处我在D盘根目录上建立了phpsessiontmp目录,然后在php.ini配置文件中找到
;session.save_path = "/tmp"
修改为
session.save_path = "D:/phpsessiontmp"
(6)配置PHP的文件上传功能
同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败,我们仍然需要在
Windows 7上建立一个可读写的目录文件夹,此处我在D盘根目录上建立了phpfileuploadtmp目录,然后在php.ini配置文件中找到
;upload_tmp_dir =
修改为

upload_tmp_dir = "D:/phpfileuploadtmp"
php默认上传文件大小为2M,
upload_max_filesize = 2M,可以根据自己的要求将其修改为
upload_max_filesize = 8M

(7)时区设置
修改date.timezone,否则在执行phpinfo时date部分会报错:Warning: phpinfo() [function.phpinfo]…,在php.ini配置文件中找到
;date.timezone =
修改为
date.timezone = Asia/Shanghai

5.配置Apache支持PHP,所以还需要在Apache配置文件中完成相应的PHP配置
(1)打开d:/apache/modules/mod_vhost_alias.so
在#LoadModule vhost_alias_module 下添加
LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "c:/php"
AddType application/x-httpd-php .php .html .htm
我们在PHP目录下可以看到多个php5apache的DLL文件,由于我们使用的是Apache2.2.15,所以我们当然需要使用php5apache2_2.dll,接着指定
PHP的安装目录以及执行的程序扩展名。
(2)再次打开apache的httpd.conf 修改DocumentRoot
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
修改为
DocumentRoot "D:/PHPWeb"
(3)修改Directory
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
修改为
<Directory "D:/PHPWeb">
(4)修改具体的index文件先后顺序,由于配置了PHP功能,当然需要index.php优先执行
DirectoryIndex index.html
修改为
DirectoryIndex index.php index.html
(5)开启支持rewrite module
#LoadModule rewrite_module modules/mod_rewrite.so 去掉前面#,
修改为 LoadModule rewrite_module modules/mod_rewrite.so

6、重启Apache服务器
至此,在Apache服务器上PHP环境配置工作就完成了,你只需要在D:/PHPWeb目录下新建一个PHP文件,写入

<?php
phpinfo();
?>

然后在浏览器中输入http://localhost:88,就可以看到PHP的具体配置页面了,代表在Window 7上PHP环境配置工作就算完成了。

7.测试数据库连接
新建testdb.php

<?php
$connect=mysql_connect("127.0.0.1","root","**");
if(!$connect) 
echo "Mysql Connect Error!";
else 
echo "db connect 你好";
mysql_close();
?>

若出现中文乱码,修改php.ini配置 default_charset = "utf-8"

8.如果你的如上配置太复杂,那么可以用wamp傻瓜化安装包,下载地址http://www.wampserver.com
因为WAMPSERVER (32 BITS & PHP 5.3) 2.2E里就包含了

Apache 2.2.22 ? Mysql 5.5.24 ? PHP 5.3.13 XDebug 2.1.2 XDC 1.5 PhpMyadmin 3.4.10.1 SQLBuddy 1.3.3 webGrind 1.0

笔者在自己电脑上用wamp发现虽然在PhpMyadmin建数据库和表时设置里UTF-8还是出现乱码,解决办法是在mysql_connect()之后加入

mysql_query("set names utf8");

即可解决中文乱码
PHP 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
require(),include(),require_once()和include_once()区别
Mar 27 PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
php中日期加减法运算实现代码
Dec 08 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 #PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 #PHP
php防注入,表单提交值转义的实现详解
Jun 10 #PHP
PHP获取当前页面完整URL的实现代码
Jun 10 #PHP
如何判断php数组的维度
Jun 10 #PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 #PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 #PHP
You might like
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
webpack优化的深入理解
2018/12/10 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python画图的函数用法以及技巧
2019/06/28 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
追悼会子女答谢词
2014/01/28 职场文书
职工运动会邀请函
2014/02/02 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2015年班组工作总结
2015/04/20 职场文书
大国崛起日本观后感
2015/06/02 职场文书
安全生产感想
2015/08/07 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
python关于集合的知识案例详解
2021/05/30 Python