首先,我很少这么做,因为一旦有跑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.dll 和 extension=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目录,应该可以直接跑起来了。

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

Windows下配置Apache+PHP跑Wordpress拾遗的更多相关文章

  1. Windows下配置Apache服务器并支持php

    php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要 ...

  2. windows下配置apache+php环境

    PHP安装 由于windows下php扩展5.6的多余7.0,故以php5.6为开发环境.如果对扩展要求不高,可以使用php7,安装过程类似. 约定: 环境安装目录: D:/phpsetup/ |-- ...

  3. [Apache系列]怎样在windows下配置apache vhost

    找到你的Apache安装目录,下图为小编的Apache安装的目录 2 点击conf文件夹  进入配置目录,找到httpd.conf 文件, 3 打开httpd.conf 文件,如图, 找到地475行, ...

  4. windows下配置apache+https

    通过https反向代理映射到http地址,可实现以https的方式,访问普通的http网站.主要涉及到以下三个配置文件的修改:httpd.confhttpd-ssl.confhttpd-vhosts. ...

  5. Windows 下配置 Apache 支持 https

    1.打开cmd ,输入  F: // 切换到Apache安装路径,我的Apache安装目录在 F盘 2.cd F:\Apache\bin 3.set "openssl_conf = F:\A ...

  6. Windows下配置Apache服务器

    第一步:下载最新Apache. 下载网址:http://www.apachehaus.com/cgi-bin/download.plx 第二步:把下载文件解压缩到一个工作目录.D:\Apache 第三 ...

  7. windows下配置lamp环境(2)---配置Apache服务器2.2.25

    配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...

  8. windows下配置lamp环境(1)---安装Apache服务器2.2.25

    window下lamp成为wamp; 安装wamp环境的第一步是安装Apache服务器.下面开始安装步骤图文并茂. 一.双击安装包点“next”进行下一步,然后同意协议(这张图没有截):

  9. windows 下配置 Nginx 常见问题(转)

    windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...

随机推荐

  1. Ubuntu和centos下查看包的安装路径

    安装包后,如何查看安装的具体路径? Ubuntu下: dpkg -L  <包名> CentOS下: rpm -ql   <包名> 助记: l为list的首字母. q为query ...

  2. 模拟多级复选框效果的jquery代码

    jquery做了个多级复选框的效果,代码总共就20+行就over了. 我又想用js来做一个看看,才写了几个方法就写不动了,兼容性要考虑很多,而且代码量直线上升. 主要分享下jquery的这个效果的实现 ...

  3. NEXYS 3开发板练手--USB UART(三)

    接着上一篇,今天我们来建立一个能用于实际工程中的DEMO. 首先,为了使我们的发送机不像上一个DEMO一样无节制的循环发送,我们需要修改代码,增加使发送机停止发送的控制部分,修改后的代码如下: `ti ...

  4. hdoj1251 统计难题 字典树

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  5. 使用Supervisor管理Linux进程

    使用Supervisor管理Linux进程 简介 Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理. 安装 sudo ...

  6. c++之---初探重载操作符

    #include<iostream> using namespace std; class Test { friend Test addTest(Test &obj1, Test ...

  7. setTimeout解读

    看一个简单的例子: for(var i=0; i<4; i++){ setTimeout(function(){console.log(i)}, 0); } 请问下这段代码会输出什么呢? 如果你 ...

  8. jQuery (二)DOM 操作

    一般jquery在web项目的只要作用就是取值和赋值了. 下面了入门下,这些值得获取. <!DOCTYPE html> <html> <head> <meta ...

  9. web编码

    1各种编码 A .1 html编码  -HTML标签 this.Response.Write(this.Server.HtmlEncode("<h1>的作用将文本设置为标题样式! ...

  10. 【Unity】物体跟随鼠标移动

    需求:2D游戏中,需要物体跟随鼠标移动. 做法:其实思路也很简单,就是先获取到鼠标的坐标,然后赋值给目标物体即可. void Update(){ // 物体跟随鼠标移动 Vector2 mousePo ...