WAMP环境搭建

     虽然PHP运行的理想环境是LAMP,且网上有什么WAMP搭建一步到位的包,但鉴于部分学渣(比如本人)没搞过Linux,且自己的本本装的可能一直是Windows,当前要紧的事是先学PHP知识,敲敲代码看看效果,日后再补Linux部分,对于WAMP的搭建有必要自己手动走一遍,一步一个脚印。

     不细说WAMP各个软件的安装步骤,网上教程一大把,这里说的是在win7、32位下的在配置过程(不包含phpmyadmin),我看过很多的配置过程,在自己机子上走一遍后发现总不对头,然后大喷一句“这TM简直在浪费lz生命”,希望看完后对你不要造成这样的恶果......==

     首先,假定你是按照推荐的方式安装的,各个软件在各个目录都分门别类放好,我的是:

     

      在安装时,就应该将Apache、MySQL、PHP单独放好,不推荐放在常用的C盘,C盘的软件安装后文件众多容易搞混,不如另起一个D盘、E盘来装,清楚,配置起来也简单。

      配置之前,应该安装一个文本编辑器软件,如notepad++、editplus、ultraedit等等,方便打开修改。

     (1)Apache配置

     首先找到Apache安装后的主配置文件httpd.conf,比如我的在D:\WAMP\apache2.2.22\conf下面,最好用notepad++、editplus等等编辑器打开,不要用自带记事本,好处是它们不会破坏文件的编码结构,降低出错几率。

      * 找到DocumentRoot "D:/WAMP/Apache2.2.22/htdocs(类似),大概在179行,它后面的路径代表者存放脚本源文件的地方,相当于是你自己机器上的服务器上存放web文件的目录,改为安装后的www目录,比如我的是:

       

       要特别注意的是,双引号一定要在英文半角环境下输入,目录分隔符统一使用正斜杠/,即便是在windows下面。

       找到<Directory "D:/WAMP/Apache2.2.22/htdocs">(类似),大概在206行,修改成跟上面一样存放脚本源文件的目录路径,

       

      * 找到DirectoryIndex选项,大概在241行,该选项指的是Apache默认识别的索引文件,即当在浏览器地址栏上输入一个URL时,只输入到目录而没有指定运行该目录下哪个文件时,Apache将先去找这些文件,找到就默认运行它们,没找到的话会生成一个该目录下的文件和目录的索引列表,类似于下图的情况

       

      这在windows版本的Apache中默认是这样配置,至于是不是一定会显示成文件和目录的索引,还是要看配置的选项。比如我的DirectoryIndex选项配置成下图:

       

      这样,它会在没指定当前运行脚本时去找index.php、index.html或者index.htm三个文件,对于其他格式不会运行,若三个都存在的话优先运行写在前面的文件。

      * 添加 PHPIniDir "D:/WAMP/php5.4.10" ,将Apache与PHP链接起来,有文章说改行要添加在LoadModule actions_module modules/mod_actions.so后面,亲测不是必须的,随便起一行,如在整个配置文件最末尾,PHPIniDir后面的双引号包含的路径是PHP所在的安装的目录,注意改成你自己的PHP安装目录。我的是:

       

      * 添加 LoadModule php5_module "D:/WAMP/php5.4.10/php5apache2_2.dll",还是要注意写你自己的PHP安装目录,这时要到PHP安装目录下面找找看有没有php5apache2_2.dll这个扩展文件,如果你的PHP是另外的版本,则它的名字可能会有些差别,这个名字打个比方是php4apache1.dll,这里就要改为"D:/WAMP/php5.4.10/php4apache1.dll",我的是:

       

      有文章说这行要加在#LoadModule vhost_alias_module modules/mod_vhost_alias.so之后,测试默认配置环境下不是必须的。

      * 添加PHP程序可以运行的文件类型,可以一起写,也可以分开写,表示这些格式的文件均可执行PHP程序,比如我的是一起写:

       

      分开写可以是:

       

      改完注意保存,至此,Apache配置完成。

      (2)PHP配置

      PHP安装只需要将下载好的压缩包解压到指定目录即可,程序在运行时就去跑一遍这些文件,它们的改动是即改即生效。

      首先在PHP安装的根目录下找到php.ini-development或php.ini-production文件,从字面意义上知一个为开发版本,一个为产品版本,把其中一个改为php.ini保存,改动前先备份一份原来的文件为好,再次强调打开这些文件最好还是用notepad++等编辑器。

      * 首先找到extension_dir = "ext" ,大概在730行,修改成你自己安装php后存放php扩展文件的目录,存放php扩展文件的目录是安装目录下的ext文件夹,打开可以看到很多.dll格式的扩展文件,我的如下图:

       

      修改成你自己的路径。

      * 定位到大概870行左右,可以看到很多类似于;extension=php_fileinfo.dll的行,它们是打开php中扩展库的选项,在PHPz程序中用到的函数都是由扩展哭来辅助我们完成的,有点类似于C语言的头文件,如果要使用哪一个扩展库,去掉前面的分号即可。作为一个刚开始安装的PHP程序,不需要开启太多扩展,以下常用的几个足够,分别去掉它们前面的分号并保存。

      extension=php_bz2.dll

      extension=php_curl.dll

      extension=php_gd2.dll

      extension=php_mbstring.dll

      extension=php_mysql.dll

      extension=php_mysqli.dll

      extension=php_openssl.dll

      extension=php_pdo_mysql.dll

      extension=php_pdo_odbc.dll

      extension=php_pdo.dll

      至此,PHP配置完成。

      看到很多文章,写着还要更改;date.timezone、short_open_tag等等选项,其实完全没有必要,可以在写程序时觉得不方便再来改,或直接通过程序改。

      (3)mysql配置

      mysql的大多配置都在安装软件的过程中解决了,基本不需要作什么后续手动的修改,当然还是请你按照规范安装到指定分类好的目录下面。

      * 找到my.ini文件,我的是在D:\WAMP\mysql5.6.20\data下面,编辑器打开,找到datadir选项,这是存放mysql数据的物理文件的目录,大概在90行,将它后面双引号中的路径修改为你自己存放mysql数据的地方,可以在某个盘的根目录下单独新建一个data目录存放,我直接在D:\WAMP\mysql5.6.20\data下面再新建一个data文件夹用于存放数据,你可以按照自己的想法去做。因此我的datadir后面改为:

       

      比如你的存放数据的在D盘下面的Data目录,则是datadir="D:/Data/",注意目录分隔符使用正斜杠/。

      至此,mysql配置完成,请重启Apache

      如何知道配置成功?

      打开notepad++,新建Ctrl+N新建一个文件,输入下面内容,保存到刚刚配置的存放web源文件的目录下面,比如www下面,起一个文件名如phpinfo.php

      <?php

               phpinfo(); 

      打开浏览器,输入localhost/phpinfo.php回车,如果出现类似于下面的页面说明配置成功了,这个页面就是显示当前使用的Apache、php、mysql及开启的php扩展等各种信息,如果没有,那.....只能再找原因了

       

      这里没有写PhpMyAdmin的配置,我觉得mysql自带的命令行客户端或者windows自带的CMD已经够用了,非常方便,还可以帮助我们强化SQL语句的使用,当然前提是得会一些mysql的命令。

      遇到的错误:

      1. 配置好apache后,apache无法启动,Apache Service Monitor上start按钮是灰的,根本无法启动,看看win的服务列表里边也没有,也就是apache安装后无服务。

      这是由于apache服务没有注册,以管理员身份运行cmd,定位到安装apache的bin目录,它下边有个httpd.exe,运行命令 httpd.exe -k install -n apache2.2。注意最后的apache2.2得看安装的版本,如果你装的是2.4的版本,则写 *** -n apache2.4,这样在windows服务列表里边显示对应的版本,比如这里apache2.2

      2. 无法加载网页,我用的chrome输入localhost/phpinfo.php或者127.0.0.1/phpinfo.php,网页上就是显示无法加载(前提请确认目录下有phpinfo.php脚本),点开看详细信息,说可能地址无法访问,那就是apache无法认识这个地址了。

      找到apache配置文件httpd.conf大约46行处,可以看到类似于下面的:

     #Listen 12.34.56.78:80  

     Listen 8080

     把他们都注释掉,另起一行写 Listen 127.0.0.1:80或者Listen 127.0.0.1:8080,当然前提是,你的机器上80或者8080端口没有被占用,这很重要,这样apache就实时监听127.0.0.1或者是localhost了,默认端口是80(8080).

 ===============================================================================================

      最近试了个win8下64位的搭建,复习下步骤,结果64位果然多了点玩意儿(暂不包括64位的MySQL)。

      首先,64位的Apache貌似不只一家,牛人们自立门户,比如https://blackdot.be/download-archive/和这个http://www.apachelounge.com/download/,至于apache官网http://httpd.apache.org/download.cgi罗列的主要还是用在Linux上的,而且只提供旧版本的、win下的32位的安装包,我下载的是http://www.apachelounge.com/download/这个上面的,以前总是弄VC9的,这次就配个VC11。使用的apache:httpd-2.4.10-win64-VC11.zip。

     先安装PHP吧(稍后说明为什么这么做),PHP的下载仍是win版PHP官网http://windows.php.net/download/,选择最新的PHP版本:php 5.6(5.6.3)  VC11 x64 Thread Safe(2014-Nov-13 03:39:26),zip格式20.09MB。解压到指定的H:/wamp/php5.6.3/下边。

     PHP不变,还是找到extension_dir = "ext"处修改为我安装的目录     extension_dir = "H:/wamp/php5.6.3/ext"。

     然后把一串类似extension=php_bz2.dll的地方,前面的;去掉,参考32位的处理,保存即可。

     注意,PHP的VC11版本要运行需要Visual C++ Redistributable for Visual Studio 2012 Update 4,到微软官网自行下载安装!对于Apache的VC11也需要这个!

     然后解压apache的包(期间我由于下载的包不完全就解压,但chrome显示已经下完了,导致解压后没有conf目录,吓尿,重下没问题),到H:/wamp/apache2.4.10,目录下,打开conf/httpd.conf文件,开始配置,注意换成你自己的路径,别说没提醒你!

    1. 找到 ServerRoot "c:/Apache24"  ,改为 ServerRoot "H:/wamp/apache2.4.10" ;

    2. 找到 DocumentRoot "c:/Apache24/htdocs", 改为 DocumentRoot "H:/wamp/www";(htdocs目录是原始的未动Apache服务时,存放运行的脚本的地方,改为单独的www目录,工作时偶尔会发现can‘t find files in *******/htdocs这种错误,就知道,我们的脚本没有同步到服务器上)

    3. 找到 <Directory "c:/Apache24/htdocs">, 改为 <Directory "H:/wamp/www">;

    4. 找到 <IfModule dir_module>, 下面有行DirectoryIndex index.html,改为 DirectoryIndex index.php index.html index.htm;

    5. 找到 ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/",改为 ScriptAlias /cgi-bin/ "H:/wamp/apache2.4.10/cgi-bin/";

    6. 找到 <Directory "c:/Apache24/cgi-bin">, 改为 <Directory "H:/wamp/Apache2.4.10/cgi-bin">;

    7. 到文件最后,添加 PHPIniDir "H:/wamp/php5.6.3",目的是将PHP挂载到Apache上,从这里编译php脚本;

    8. 在第7处后边再分别添加:AddType application/x-httpd-php .php、AddType application/x-httpd-php .html、AddType application/x-httpd-php .htm,分三行写,或合到一行中,这是MIME类型,前面32位有解释,哥你千万别把顿号也写进去了啊~;

    9. 在第8处后边再分别添加:LoadFile "H:/wamp/php5.6.3/php5phpdbg.dll"、LoadFile "H:/wamp/php5.6.3/php5ts.dll"、LoadModule php5_module "H:/wamp/php5.6.3/php5apache2_4.dll"。

    特别说明第9步,在32位里边只要一行LoadModule php5_module "H:/wamp/php5.6.3/php5apache2_2.dll"就可,而且这个dll是***apache2_2.dll,而且挨着它的dll文件只有这一个,但到了64位多了两个,一开始apache死活就是operation failed!,“我尼玛...”瞬间就想骂街,看了一遍后去PHP的安装目录看还有这两个dll文件,又search下了别人说的直接配成LoadFile "/php5phpdbg.dll",结果还是一直是operation failed!我尼玛...,看了许久,发现LodeModule时是绝对路径,这个是不是也得这样,于是试着改成绝对路径的,卧槽成功了,启动了!所以说这几个文件是要看PHP的安装目录里边是怎样的,这就是为什么要先安装PHP来着。

    DOS下面(可能需要管理员身份启动才有效)进入Apache安装目录中bin目录,这下面放着一系列exe文件,执行 httpd.exe -k install,安装成功后打印一长串的字符,再次安装会包already install,然后双击ApacheMonitor.exe,点击start开启服务,理论上到这儿应该是成功了,但是我没有,我尼玛又是什么问题!差了下说64位需要Java Runtime Environment...

    所以,可能还要下个Java Runtime Environment安装,下个百度的就行,不一定非要官网的运行时。

    OK,Apache总算启动了,应该好了。 

----------------------------------------------------------------------------

    照例检验phpinfo,结果访问脚本被报403 Forbidden~,可参考http://www.cnblogs.com/icebutterfly/archive/2010/02/01/1661237.html这篇博友的,64位默认拒绝访问,在<Directory />和<Directory "H:/wamp/www">下边的选项改一改,大概是类似于htaccess指令什么的忘了,反正就是允许我们访问目录下的脚本。

    改了之后再运行,结果代码原样被输出,而且不是用<? ?>短标记写的,这就是刚才第9步说的那两个dll文件,没有使用绝对路径,导致php挂载还是为挂载到Apache上。

   

    Over~

    有集成包安装了,何必这么累呢,走一遍还是能学到东西的嘛~

-----------------------------------------------------------------------------------

     写在最后,有时候完全配置好环境那真是蛋疼,特别是急用的时候。比如上面的64位,擦所有的设置检查了个遍,google了一大堆,stackoverflow找了数条,仍不能开启curl模块=_=,快累觉不爱了,如果你是急于学习语言知识,那当然少花时间在这些蛋疼的配置上面好,也应该这样,装集成包, WampServer(http://www.wampserver.com)或者XAMPP(https://www.apachefriends.org/index.html)都可以,WampServer更小,个人喜欢用它。

 

    

 

posted @ 2014-09-25 11:09  lazycat-cz  阅读(1333)  评论(6编辑  收藏  举报