配置windows下php+apache+mysql环境

其实windows下php的安装配置是比linux下容易多了,加之三兄弟都是绿色的,重装系统的时候只需解压注册一下相应的服务就可以了,本方法适合初学者参考。

 

第一次使用的

对于php,直接到php官网下载并解压就可以了。这里假定解压在d:\php5\

找到d:\php5\下的php.ini文件,如果没有的话,可以用php.ini-xxxxxxx的文件(php.ini-development是开发时的配置,php.ini-produciton是部署的,php.ini-recommended是官方推荐的),将其重命名为php.ini。打开php.ini,找到 extension_dir = “xxxxxxx",修改extension_dir = "d:/php5/ext"。

extension=xxxxxx.dll的,都是对应的扩展。前面的;是注释符,将;去掉的话,就将启用该扩展,通常情况下,php_mysql.dll,php_gd2.dll是需要开启的,即
;extension=php_mysql.dll改为

extension=php_mysql.dll。改好php.ini后保存。

 

再来就是apache,没有的话可以到官网下载安装,假设安装在D:\Program Files\Apache2.2\,打开D:\Program Files\Apache2.2\conf\,找到文件httpd.conf。

打开编辑,编辑LoadModule php5_module "d:/php5/php5apache2_2_filter.dll"(因为我提供的是apache2.2的下载连接,所以这里使用php5apache2_2_filter.dll,如果是apache2的话,就用php5apache2_filter.dll,这两个文件在php安装目录下是应该有的)。

接着查找PHPIniDir ,没有的话添加一行 PHPIniDir "d:\php5",有的话修改一下路径,使之与php的安装目录路径一致。这个主要是让apache使用指定的php.ini文件,就不要拷贝php.ini到c:/windows/下了,省得重装系统后还要拷贝。查找一下<IfModule mime_module>节点,在<IfModule mime_module>...</IfModule mime_module>之间添加一条    AddType application/x-httpd-php .php,没有这条的话,访问的php文件可能会变成下载。

Listen 80 这个是监听端口,有IIS的朋友可以设置成8080等,免得冲突。

ServerRoot 是apache的安装路径

DocumentRoot 是web主目录路径,这个文件夹要是已经存在的文件夹

 

参考最简的配置如下

ThreadsPerChild 250 
MaxRequestsPerChild  0 

ServerRoot "D:/Program Files/Apache2.2" 

Listen 8080 

LoadModule actions_module modules/mod_actions.so 
LoadModule alias_module modules/mod_alias.so 
LoadModule asis_module modules/mod_asis.so 
LoadModule auth_basic_module modules/mod_auth_basic.so 
LoadModule authn_default_module modules/mod_authn_default.so 
LoadModule authn_file_module modules/mod_authn_file.so 
LoadModule authz_default_module modules/mod_authz_default.so 
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so 
LoadModule authz_host_module modules/mod_authz_host.so 
LoadModule authz_user_module modules/mod_authz_user.so 
LoadModule autoindex_module modules/mod_autoindex.so 
LoadModule cgi_module modules/mod_cgi.so 
LoadModule dir_module modules/mod_dir.so 
LoadModule env_module modules/mod_env.so 
LoadModule imagemap_module modules/mod_imagemap.so 
LoadModule include_module modules/mod_include.so 
LoadModule isapi_module modules/mod_isapi.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module modules/mod_mime.so 
LoadModule negotiation_module modules/mod_negotiation.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule userdir_module modules/mod_userdir.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule vhost_alias_module modules/mod_vhost_alias.so 
LoadModule php5_module "d:/php5/php5apache2_2_filter.dll"

PHPIniDir "d:\php5" 
ServerAdmin xin478@126.com 

ServerName 192.168.1.26:8080 

DocumentRoot "f:/phpwwwroot" 

DefaultType text/plain 
ErrorLog logs/error.log
LogLevel warn 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 

<Directory "f:/phpwwwroot"> 
    Options Indexes FollowSymLinks 
    AllowOverride all 
    Order allow,deny 
    Allow from all 
</Directory> 

<Files *.php> 
AcceptPathInfo On 
</Files>

<IfModule dir_module> 
    DirectoryIndex index.html index.php index.htm 
</IfModule> 

<FilesMatch "^\.ht"> 
    Order allow,deny 
    Deny from all 
</FilesMatch> 

<IfModule log_config_module> 

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
    LogFormat "%h %l %u %t \"%r\" %>s %b" common 

    <IfModule logio_module> 
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 
    </IfModule> 

    CustomLog logs/access.log common 

</IfModule> 

<IfModule alias_module> 
    ScriptAlias /cgi-bin/ "D:/Program Files/Apache2.2/cgi-bin/" 
</IfModule> 

<Directory "D:/Program Files/Apache2.2/cgi-bin"> 
    AllowOverride all 
    Options None 
    Order allow,deny 
    Allow from all 
</Directory> 

<IfModule mime_module> 

    AddType application/x-compress .Z 
    AddType application/x-gzip .gz .tgz 
    AddType application/x-httpd-php .php 

</IfModule>

ThreadsPerChild 250
MaxRequestsPerChild
0

ServerRoot
"D:/Program Files/Apache2.2"

Listen
8080

LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module
"d:/php5/php5apache2_2_filter.dll"

PHPIniDir
"d:\php5"
ServerAdmin xin478@
126.com

ServerName
192.168.1.26:8080

DocumentRoot
"f:/phpwwwroot"

DefaultType text/plain
ErrorLog logs/error.log
LogLevel warn

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny
,allow
Deny from all
Satisfy all
</Directory>

<Directory
"f:/phpwwwroot">
Options Indexes FollowSymLinks
AllowOverride all
Order allow
,deny
Allow from all
</Directory>

<Files *.php>
AcceptPathInfo On
</Files>

<IfModule dir_module>
DirectoryIndex index.html index.php index.htm
</IfModule>

<FilesMatch
"^\.ht">
Order allow
,deny
Deny from all
</FilesMatch>

<IfModule log_config_module>

LogFormat
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat
"%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
LogFormat
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

CustomLog logs/access.log common

</IfModule>

<IfModule alias_module>
ScriptAlias /cgi-bin/
"D:/Program Files/Apache2.2/cgi-bin/"
</IfModule>

<Directory
"D:/Program Files/Apache2.2/cgi-bin">
AllowOverride all
Options None
Order allow
,deny
Allow from all
</Directory>

<IfModule mime_module>

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php

</IfModule>

 

 

以上,红色的地方都是路径,都要根据自己的情况改一下

 

最后就是mysql了,这个的话,也是下载一份,一路next安装,安装完毕后,到php安装文件夹下的libmysql.dll到c:/windows/system32/ 下。就可以了。自此,三个就全好了。

 

 

对于重装系统后,只要配置没有大体的变动,只要再次拷贝 d:/php5/libmysql.dl l到c:/windows/system32/ 下。再运行cmd ,进入apache目录下的bin目录,运行httpd.exe –k install 就可以注册apache的服务。如图

image

系统会注册名为apache的服务,并将其设置为自动运行。

php方面,由于先前设置了php.ini在安装目录,所以没有什么要更改或拷贝的。

mysql的话,可以选择重装。不想重装的,先到mysql目录的data目录下查找*.err,删除掉,否则有时候会出现无法配置成功的情况。运行mysql安装目录下的bin\MySQLInstanceConfig.exe来重新配置。运行execute的时候,提示找不到my-template.cnf, 其实此文机是以ini文件的形式存储在mysql的根目录下(所有*.cnf文件在windows 下, 就是*.ini文件),mysql查找路径不对而已,我们可以在安装mysql的根目录看到my-template.ini文件.

具体如下:修改注册表

“HKEY_LOCAL_MACHINE/Software/Mysql AB/Mysql server 5/location”

把后面的地址改为”D:\Program Files\MySQL\MySQL Server 5.0\〃修改为my-template.ini所在目录路径即可(如:D:\Program Files\MySQL)。

如果安装的时候,mysql提示注册服务失败,不要紧张,开始->运行->services.msc,看看是不是已经有了名为MySql的服务,有的话就可以了。

posted @ 2010-05-07 11:57  xin478  阅读(1652)  评论(0编辑  收藏  举报