Windows下配置Apache+PHP跑Wordpress拾遗

首先,我很少这么做,因为一旦有跑WAMP的需求,我就直接下一个wamp的安装包就可以了,市面上数不胜数,我一直用的是EasyPHP,不是说它有多好,而是很多年前第一次用后没什么问题,就一直用下来了。这玩意没有优劣之分,用自己熟悉的就好。

这次是碰到了服务器本来就装了一个Apache,版本是2.2.22(=_=”),而且还有一个mysql(v5.1.59),我当然选择直接装一个php不就完事了么,结果满以为简单的事还折腾了一番,那就总结下绕了弯的地方。

1,下载安装Apache

如果你想用最新的php,请下载最新的Apache,这是没得选择的,我的2.2.22就跑不起php的5.5,官网地址

2,下载PHP

没了“安装”,是因为官网下就没找到安装包,那就直接下载/解压缩吧,我把它解到了c:\php目录。如第一节所说,我的Apache2.2.22跑不起5.5的php,所以下的是5.4的,给的链接也是5.4的,当然其实是在同一个界面。请选择x86,thread safe版的。x64官方就说是实验品,跳过吧。

p.s. 搞windows的习惯,有新版就用新版,有x64就不用x86,结果在用python,nodejs等的x64版的时候,都碰到了若干问题,所以这次,我直接跳过x64了。

3,配置PHP

编辑php.ini文件,请参照官方文档,以下是需要注意的地方:

  1. extension_dir要用绝对路径,虽然文档说可以用相对路径,实测失败,比如我最终用了extension_dir = "c:/php/ext"
  2. 99%的情况下你肯定用了mysql,所以extension至少需要打开两个:extension=php_mysql.dllextension=php_mysqli.dll
  3. 如果有用短标签的习惯或需求,记得short_open_tag = On
  4. display_errors文档中建议为Off,但开发用的话我还是建议打开吧:On
  5. 此外,发邮件。在此文件中配置smtp的用户名和密码据说是无效的,我实测也无效,所以最终在wordpress是用了插件发邮件的

4,配置Apache

编辑httpd.conf文件,官方文档很简洁,但完全实用,直接对着设置即可,不到三步。

  1. 文档介绍了三种方式,handler, cgi和fastcgi,第二种方式不可取,第三种貌似是nginx默认的,但apache下配置还没能一眼就看明白,我选择了第一种。
  2. 打开重写模块,LoadModule rewrite_module modules/mod_rewrite.so

修改好后,设置好监听端口,重启apache,再写一个有<?php phpinfo(); ?>的页面丢到默认目录(apache安装目录的htdocs文件夹),然后访问即可,一般OK了。

5,配置虚拟主机

2.x的apache已经默认把各配置文件独立出去,并在主文件里面include起来,这大大方便了各种配置。我们配置虚拟主机只要找到httpd.conf同级的extra目录即可,里面有各种配置文件的模板。

虚拟主机的模板是httpd-vhosts.conf,一般你从模板里拷一截出来就是最正确的语法了,当然我们需要做些改动,给成品吧:

NameVirtualHost *:5584
<VirtualHost *:5584>
    ServerAdmin walker@ctitech.cn
    DocumentRoot "F:/ftp/IISRoot/wordpress"
    ServerName oa.ctitech.cn
    ServerAlias oa.ctitech.cn
    ErrorLog "|bin/rotatelogs.exe -l F:/log/apache/5584/error/%Y-%m.log 2073600"
    CustomLog "|bin/rotatelogs.exe -l F:/log/apache/5584/access/%Y-%m-%d.log 86400" common
    <Directory "F:/ftp/IISRoot/wordpress">
        Options +FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
  1. 我绑定了任何方式访问本机的5584端口
  2. 主文档目录指向了F:/ftp/IISRoot/wordpress
  3. 错误日志指向了一个固定目录,并且按月滚动(每月生成一个日志文件)
  4. 访问日志指向了一个固定目录,并且按天滚动
  5. 单独为该目录指定了一些参数:
    • FollowSymLinks很重要,无论如何需要设,否则会报如下错误:Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: F:/ftp/IISRoot/wordpress/ 结果就是,url重写都无效,你wordpress的pretty link自然就无效了
    • AloowOverride All也照抄吧,貌似是允许php更改.htaccess文件
  6. 对滚动日志感兴趣的童鞋,这篇日志有对rotatelogs.exe的简单介绍。

6,部署wordpress

因为我是重新整理的这篇文章,所以如果按上述步骤,把wordpress解压到上述f:/ftp/iisroot/wordpress目录,应该可以直接跑起来了。

实际的过程是,我早早就把网站部上去了,然后不断出错,从出错日志中再慢慢调整才跑起来的。

posted @ 2013-09-11 22:00  $walker  阅读(960)  评论(0编辑  收藏  举报