首先,我很少这么做,因为一旦有跑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. env命令详解

    env命令时gnu的coreutils包内的一个软件,它的功能是:在一个修改后的环境里执行命令. 通俗的讲:一个linux软件可能被安装在好几个地方,举个例子:在最新的centos中perl的版本为5 ...

  2. putty设置用key自动登录

    1.在Linux下ssh-keygen -t rsa 生成密钥对 2.把私钥id_isa下载到用scp下载到windows并用puttygen加载并重新保存私钥. 3.在windows下新建快捷方式, ...

  3. thread-local-allocation-buffers

    https://www.azul.com/files/Whats-inside-a-JVM-webinar-presentation.pdf https://www.zhihu.com/questio ...

  4. 黑客编程教程(十五)HTTP代理

    #include <stdio.h> #include <winsock2.h> #define MAXBUFLEN 20480 #define HTTPADDLEN 50 # ...

  5. python定制类详解

    1.什么是定制类python中包含很多内置的(Built-in)函数,异常,对象.分别有不同的作用,我们可以重写这些功能. 2.__str__输出对象 class Language(object): ...

  6. Oracle“不等于号”与Null的情况

    今天突然才发现,Oracle中的“不等于操作符”是忽略Null的. 比如,查询comm不等于的300的记录,我会理所当然地使用where comm != 300 预想会返回包含Null的不等于300的 ...

  7. centos启动zookeeper

    切换到zookeeper的bin目录下,执行 ./zkServer.sh start

  8. ReportNG测试报告的定制修改(二)

    上一篇文章修改了一些基本的ReportNG信息,链接:https://www.cnblogs.com/mrjade/p/9912073.html,本文将继续带大家进行修改,重点是添加饼图 1.修改测试 ...

  9. GPIO实验(一)

    目标:点亮LED1.看原理图,找到对应的引脚和寄存器2.a.配置寄存器为输入/出引脚    GPFCON[9:8]=0b01  b.设置输出高/低电平    GPDAT[4]=0b0 1.预处理2.编 ...

  10. filebeat+kafka+SparkStreaming程序报错及解决办法

    // :: WARN RandomBlockReplicationPolicy: Expecting replicas with only peer/s. // :: WARN BlockManage ...