新浪微博 登陆  注册   设为首页 加入收藏

学PHP >> Apache >> windows+Apache+mysql+php5 搭建

windows+Apache+mysql+php5 搭建

查看次数23200 发表时间2012-11-13 23:22:11

       因为一直开放都是用的linux 虚拟机进行PHP 开放,而且LAMP 的环境也搭建过几次了。心血来潮就想在windows 下搭建一个WAMP 。

       将这两天搭建WAMP 遇到的问题&解决方案做个记录,以便以后可以再使用,以及帮助那些可能在这个地方遇到问题的人,如果本文有用谢谢阅览。

       WAMP 的安装,准备工具如下(笔者):

              httpd-2.2.22-win32-x86-no_ssl.msi

              mysql-5.5.28-win32.msi

              php-5.2.17-Win32-VC6-x86.msi

       因为是初次搭建,所以选择的都是msi 文件进行配置。而且版本都不是最新的。因为官网上,找msi 文件确实不容易。

       

       首先,安装Apache。

       Apache 的安装应该是最简单的,卸载几次,安装几次都不会有任何问题。想安装在哪个目录就安装在哪个目录,随心所欲。这里我将Apache 安装在E:/Wamp/Apache2 目录下。

       安装好Apache 后,在命令行(终端)输入命令: net start Apache2.2 启动Apache,或者到“管理工具”-》“服务”里面启动一样。然后,就可以测试Apache 是否安装成功。在浏览器中输入“localhost" 看到“It works!” ,恭喜, Apache安装成功。


       接着,安装Mysql。

       既然,已经分类了,所有这里我也是将Mysql 安装在 E:/Wamp/Mysql5 目录下。我不能说别人安装是什么样子的,我只能说我这个很悲催。因为我开始安装过一次Mysql,然后将其卸载了。然后再更改目录到E:/Wamp/Mysql5 目录下。在安装好Mysql 后,会提示对Mysql进行配置。在配置过程中,除了在语言的选择上,选择utf8 以为,其他都直接下一步,当然还需要将路径添加到环境变量中(作为一个RD,个人感觉界面客户端确实不是我们最好的选择)。在最后执行的时候,老报错1067 ,然后就终止了程序,没办法启动Mysql。 在网上搜索了各种解决方案,都没有达到目的。但是这些搜索也不是没有结果的,经过不断的筛选问题和解决方案,最终将问题定位到my.ini 这个配置文件上。但是网上说的各种配置修改手段,感觉太过繁琐了,而且最终也都没有解决我那个1067 的错误。

       我这里最后的解决方案是,在mysql 安装好一会,不使用Mysql 提供的执行MySQLInstanceConfig.exe来对mysql进行配置。因为在安装好mysql ,而没有进行MySQLInstanceConfig.exe 配置的时候,是没有my.ini 这个mysql配置文件的。但是my-huge.ini , my-medium.ini, my-large.ini 等文件都是有的。这里直接将my-medium.ini copy 一份,然后重命名为my.ini 。就此在命令行执行 net start mysql. 启动mysql OK。无视什么MySQLInstanceConfig.exe 配置。然后根据mysql 最基本的使用,第一次进入mysql -uroot ,无需密码,进入后,给root 加个密码。新建一个普通账户,grant 添加所有权限就可以了.就此,mysql 的安装问题就解决了。所以,如果你在遇到1067 问题的时候,如果别人的方法不能解决你的问题的时候,不妨试试我的办法,将MySQLInstanceConfig.exe 生成的my.ini 删掉,重命名my-large.ini 或者 my-medium.ini 为my.ini 即可。


      最后,安装PHP5.

      在安装PHP5 的时候,这里也是安装在 E:/Wamp/PHP5 目录下。唯一需要注意的是,其中一步是需要我们将Apache 的配置文件路径选择,这里是E:/Wamp/Apache2/Conf 目录。然后就一直下一步即可,直到最后完成整个安装。

      安装好后,就需要验证一下PHP 是否安装成功。因为PHP 的安装会自动将PHP 执行路径添加到环境变量中,所以直接在命令行,使用PHP 来执行一个PHP 脚本即可。如果能够正确执行当然就说明PHP 安装成功。或者使用PHP -i 这样的查看参数之类的方法验证,总之这个验证是多样的。这个时候,我们需要验证Apache 与PHP 的管理。需要Apache 解析PHP 脚本。还需要,在Apache 的配置文件中进行配置。

新增如下内容:

        AddType application/x-httpd-php .php

        PHPIniDir "E:/Wamp/PHP5"                   # PHPIniDir ""  初始的时候,是这个样子
        LoadModule php5_module "E:/Wamp/PHP5/php5apache2_2.dll"     #初始的时候,不是绝对路径,只是php5apache2_2.dll

       

        描述一下,我在安装好PHP5 后遇到的问题。一开始Apache 是能够正常进行启动和停止的。但是当我将PHP5 安装好后,就不能启动Apache,提示“不能在本地启动......”。经过不断的查找验证,最终得出结论问题是在:

         PHPIniDir ""  &   LoadModule php5_module "php5apache2_2.dll"  上。

         

         查看系统错误日志:

<Provider Name="Apache Service" /> 
  <EventID Qualifiers="0">3299</EventID> 
  <Level>2</Level> 
  <Task>0</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2012-11-13T13:04:19.000000000Z" /> 
  <EventRecordID>15911</EventRecordID> 
  <Channel>Application</Channel> 
  <Security /> 
  </System>
- <EventData>
  <Data>The Apache service named</Data> 
  <Data /> 
  <Data>reported the following error: >>></Data> 
  <Data>httpd.exe: Syntax error on line 497 of E:/Wamp/Apache2/conf/httpd.conf: Cannot load E:/Wamp/Apache2/php5apache2_2.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3</Data> 
  <Data /> 
  <Data /> 
  <Data /> 
  <Data /> 
  <Data /> 
  </EventData>
  </Event>



         很明显的发现Cannot load E:/Wamp/Apache2/php5apache2_2.dll 这句话有问题,因为php5apache2_2.dll 文件是在e:/Wamp/PHP5 目录下,我不知道他为什么定位到Apache2 上。

         于是,我就手动将其补充为绝对路径  LoadModule php5_module "E:/Wamp/PHP5/php5apache2_2.dll" 

         同时,将PHPIniDir 的路径也添加上去: PHPIniDir "E:/Wamp/PHP5"

         然后再命令行里输入 net start Apache2.2 ,启动Apache 成功后。

         现在就可以在浏览器上进行测试,检查Apache 是不是能解析PHP 。          


 最后,将Apache & mysql 的启动设置为手动执行,这样就不会开机就有这个进程了。当需要使用的时候,再在命令行启动服务即可。

         OK, 综上,WAMP 安装完成,我的哥,不容易啊。谢谢你能看完这篇文章 ^^

          





(转发请注明转自:学PHP)    


  相关推荐



1楼 Heaven说: 2016-09-09 16:27:52
A rolling stone is worth two in the bush, thanks to this arctlie.
2楼 Leatrice说: 2016-12-22 04:23:06
Am facut si eu in seara asta si au iesit excelente, de fapt nici nu mai sunt ca le-am mancat pe toate. O singura problema am avut: ciocolata nu a ramas deasupra, s-a dus la fund. Oare de ce?VA:F [1_1197..161](din 0 voturi)

  发表评论
昵称:
(不超过20个字符或10个汉字)
内容: