在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包。
PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC6 是为了其他WEB服务软件提供的,如 Apache。我下载的是ZIP包,下载地址
但是,在实际操作中,在win7中如果装了VC6,即使使用apache,php与MYSQL兼容性使用会有一些问题,反而是VC9在apache下与mysql能够正常使用。
(1,拷贝MYSQL安装目录中的libmysql.dll到C:\PHP。 2,并且将 libmysql.dll php5ts.dll php_mysql.dll 三个dll全部拷贝到c:\windows下
3,重启机器)
Mysql版本:mysql-essential-5.1.45-win32,即MySQL Community Server 5.1.45,下载地址
Apache版本:httpd-2.2.15-win32-x86-openssl-0.9.8m-r2,openssl表示带有openssl模块,利用openssl可给Apache配置SSL安全链接。下载地址
PHP环境搭建第一步:Windows 7下安装Apache服务。
在这里主要配置Network Domain、Server Name、Email地址以及Apache服务的占用端口,默认为80端口,你可以根据需要配置在其他端口,Apache的安装目录你可以使用默认目录或根据需要自行选择安装目录。
在完成apache服务的安装后,在游览器中输入http://localhost/,出现It’s work!字样,说明Apache服务安装成功了。
当启动apache服务时候,可能会出现错误启动不了,检查event log,看是不是3299的错误,如果是,是因为 iis也启动了,也在监听80端口,与apache冲突,需要关掉iis,然后重启apache。启动event viwer的快捷键:eventvwr,启动iis操作界面的快捷键:inetmgr.
refer to http://www.itauthor.com/2007/05/15/if-apache-fails-to-start-after-a-reboot/
PHP环境搭建第二步:Windows 7下安装Mysql服务。
点击Mysql安装程序自动安装,在此期间你可以根据需要选择Mysql数据库的安装目录,我一律都是用默认目录。
注意:在安装完Mysql数据库后,需要再进行Mysql数据库配置才能使用PHP进行连接,稍后会提到如何配置。
PHP环境搭建第三步:在Windows 7下安装PHP。
其实在Windows 7下进行PHP安装非常简单,由于我下的是PHP代码包,只要解压php-5.3.2-Win32-VC6-x86并重名为文件夹为php,将其复制到C盘目录下即可完成PHP安装。
PHP环境搭建第四步:在Windows 7下如何进行PHP配置环境。
PHP环境在Windows 7上的配置相比Windows XP等要简单很多,不需要复制等操作,你只要将php.ini-development配置文件重命名为php.ini配置文件即可。接着做如下配置操作:
1、打开php.ini配置文件,找到
1
2 |
; On windows:
; extension_dir = "ext" |
修改为
1
2 |
; On windows:
extension_dir = "C:/php/ext" |
表示指定PHP扩展包的具体目录,以便调用相应的DLL文件。
2、由于默认PHP并不支持自动连接Mysql,需开启相应的扩展库功能,比如php_mysql.dll等,即将
1
2 3 4 5 6 7 |
extension=php_curl.dll
extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_pdo_mysql.dll extension=php_pdo_odbc.dll extension=php_xmlrpc.dll |
这些extension之前的分号(;)去除。
3、配置PHP的Session功能
在使用session功能时,我们必须配置session文件在服务器上的保存目录,否则无法使用session,我们需要在Windows 7上新建一个可读写的目录文件夹,此目录最好独立于WEB主程序目录之外,此处我在D盘根目录上建立了phpsessiontmp目录,然后在php.ini配置文件中找到
1
|
;session.save_path = "/tmp"
|
修改为
1
|
session.save_path = "D:/phpsessiontmp"
|
4、配置PHP的文件上传功能 如何编写PHP文件上传功能?
同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败,我们仍然需要在Windows 7上建立一个可读写的目录文件夹,此处我在D盘根目录上建立了phpfileuploadtmp目录,然后在php.ini配置文件中找到
1
|
;upload_tmp_dir =
|
修改为
1
|
upload_tmp_dir = "D:/phpfileuploadtmp"
|
5、修改date.timezone,否则在执行phpinfo时date部分会报错:
Warning: phpinfo() [function.phpinfo]…
我们需要将
1
|
;date.timezone =
|
修改为
1
|
date.timezone = Asia/Shanghai
|
你也可以点击参考更多关于PHP.INI的配置
至此在Windows 7上php的环境配置就算完成了,但是光完成这些配置是不够的,我们需要Apache支持PHP,所以还需要在Apache配置文件中完成相应的PHP配置。
注意:
PHP 5.3.8的非线程安全版本吧,这个里面没有php5apache2_2.dll,所以不能用在 windows 上的 apache。PHP 5.3.8的线程安全版本里面有 php5apache2_2.dll,官方下载链接: http://windows.php.net/downloads/releases/php-5.3.8-Win32-VC9-x86.zip
非线程安全的VC9 x86 Non Thread Safe , 缺少了php5apache2_2.dll (注意,在php5.4.0以及后面的5.4版本,此文件更新为php5apache2_3.dll)这些文件, 大小是14.93M .
下面那个Thread Safe线程安全版的.才是我们需要的,大小是15.06M
至于VC6和VC9,一个支持apache一个支持IIS.但是试了下VC9用在apache上没问题 .
线程安全Thread Safe(TS)和非线程安全(NTS),就是在执行时是否进行线程安全检查,以防止有新要求就启动新建成的CGI执行方式,进而耗尽系统资源.
PHP环境搭建第五步:配置Apache以支持PHP (修改httpd.conf)
1、在#LoadModule vhost_alias_module modules/mod_vhost_alias.so下添加
1
2 3 |
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服务器执行WEB主程序的目录为Apache2.2/htdocs,所以当你的WEB主程序目录变更时,我们需要修改相应的Apache配置,即将
1
|
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
|
修改为
1
|
DocumentRoot "D:/PHPWeb"
|
1
|
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
|
修改为
1
|
<Directory "D:/PHPWeb">
|
3、最后修改具体的index文件先后顺序,由于配置了PHP功能,当然需要index.php优先执行
1
|
DirectoryIndex index
.html
|
修改为
1
|
DirectoryIndex index
.php index
.html
|
4、重启Apache服务器
启动Apache时候,如果遇到下列错误:1000
Faulting application name: httpd.exe, version: 2.2.21.0, time stamp: 0x4e6a3015
Faulting module name: php5ts.dll, version: 5.2.17.17, time stamp: 0x4d25fb49
Exception code: 0xc0000005
Fault offset: 0x000f424c
Faulting process id: 0xe34
Faulting application start time: 0x01cd4a2521439cff
Faulting application path: C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe
Faulting module path: C:\Program Files\PHP\php5ts.dll
Report Id: 5f106a31-b618-11e1-aca1-541dfaacee0e
这是php的一个bug,解决方案:don't use the installer, use the ZIP instead.
如果遇到下列错误:3299
The Apache service named reported the following error:
>>> httpd.exe: Syntax error on line 129 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load C:/Program Files/PHP/php5apache2.dll into server: The specified module could not be found. .
是因为安装PHP的时候,没有选web服务器。apache2.2
总之,用zip包替代installer来安装,更好。
至此,在Apache服务器上PHP环境配置工作就完成了,你只需要在D:/PHPWeb目录下新建一个PHP文件,写入
1
2 3 |
<?
phpinfo ( ) ; ?> |
然后在游览器中输入http://localhost,就可以看到PHP的具体配置页面了,代表在Window 7上PHP环境配置工作就算完成了。
在完成Windows 7上的PHP环境配置工作后,我们需要完成PHP环境搭建的最后一步,即支持Mysql数据库。
首先需要配置Mysql服务器。
点击开始菜单下Mysql Server5.1菜单中的Mysql Server Instance Config Wizard,完成Mysql的配置向导。
个人认为第一和第二项都可选择,如果仅仅只是作为WEB数据库,推荐选择第二项。
选择Mysql的并发连接数,第一项是最大20个连接并发数,第二项是最大500个并发连接数,最后一种是自定义,你可以根据自己的需要选择。
此处推荐使用UTF8,比较通用,否则容易造成乱码。
在这里考虑开机速度的问题,我将自动登录Mysql服务取消了,一般你可以选择此选项,如果没有选,你可以使用net start mysql启动Mysql服务。
Mysql数据库的配置文件保存在C:\Program Files\MySQL\MySQL Server 5.1\my.ini,如果今后有什么变动,你可以修改此文件。
至此Mysql数据库的配置就算完成了,为了验证PHP是否能连接Mysql,你可以在index.php中创建如下代码
1
2 3 4 5 6 |
<?php
$connect = mysql_connect (“127 .0 .0 .1″ ,”root” ,”你的 mysql数据库密码” ) ; if ( ! $connect ) echo “ Mysql Connect Error !” ; else echo “欢迎访问PHP网站开发教程网 -www .leapsoul .cn” ; mysql_close ( ) ; ?> |
然后在游览器中输入http://localhost/,看到:欢迎访问PHP网站开发教程网-www.leapsoul.cn字样就说明PHP连接Mysql就算成功了。
Windows 7下无法使用localhost连接MYSQL5.3的解决方法
在Windows 7中PHP连接Mysql时默认只能使用IP地址连接Mysql,而无法使用localhost连接Mysql,解决方法为打开C:\Windows\System32\drivers\etc下的hosts文件,将
1
|
# 127.0.0.1 localhost
|
中的注释去除即可。
当遇到
首先在php.ini里面把 extension=php_mysql.dll 去掉了前面的 ;
1 、把 ../mysql/bin/libmySQL.dll 拷贝到 php5.0 下面,还有拷贝到 php5.0/ext 目录下
2、 将 libmySQL.dll php5ts.dll 两个文件拷贝到 windows/system32 下面(windows2003) [ xp也一样,就不说了.
3、 将 php5.0 根目录下面的 php.ini拷贝到 windows目录下,(前提是php.ini必须是配置好的)
4、 此时如果没有什么问题就可以连接数据库进行测试啦
其实这个问题关键的一步是 libmySQL.dll 这个文件,它不是原php5.0下面自带的那个,而是 mysql 文件里带的libmySQL.dll ,还有就是初期配置好的php.ini文件,当你用phpinfo()显示的时候,显示的是windows目录下的php.ini文件为配置文件,所以copy一份配置好的php.ini文件到windows目录下也是必须的。如下所示:
OK,到这,在Windows 7上使用PHP+Apache+Mysql完成PHP环境搭建的工作就算完成了,我们可以看到相比在其他Windows平台上搭建PHP环境节省了不少工作,但是也要注意到在Windows 7上连接Mysql5.3数据库的问题。
此外, 在windows 7上安装了一次MYSQL之后,如果卸载了重新安装,会遇到mysql service不能成功启动,配置不成功得情况:
重启mysql service的时候,会有如下错误信息:Could not start the MySQL service: Error 1067
引起这个错误的原因,是卸载Mysql的时候没有能够完全卸载干净,存在“C:\Users\zevin\AppData\mysql”里的隐藏文件没有能够完全删除,这是mysql的一个bug。
解决办法:手动删除如下文件夹:
1) C:\Program Files\MySQL
2) C:\Users\zevin\AppData\mysql(c:\---->ALT-->tools-->folder option-->view.....)
3)C:\ProgramData\mysql
然后重启机器,再重新安装MYSQL
最后,在用apache的过程中,如果遇到服务器不能正常启动且没有什么可用的error信息的时候,一般的解决思路是,进入windows event viewer,查看相关详细event log.
eventvwr
refer to:http://www.leapsoul.cn/?p=695