配置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的服务。如图
系统会注册名为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的服务,有的话就可以了。