在我的试验中,XAMPP对wordpress静态化是直接支持的。PHPnow虽然也是打开了apache的mod_rewrite模块,但是对wordpress的静态化还要依赖于.htaccess这个文件(有可能XAMPP也是这样)。
配置方法如下。
首先到wordpress所在的目录下,找到.htaccess文件,用记事本编辑它。
如果没有这个文件,那就要麻烦一点,你需要先打开记事本,文件另存为,选择”所有文件”,然后把文件名定为.htaccess保存到wordpress所在的目录。为什么这么麻烦?因为windows下本来是不支持.htaccess这种文件名的。所以如果你直接右键新建一个文本文件,然后想改名为.htaccess就会报错。
有了.htaccess这个文件之后,编辑这个文件,输入以下内容:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wpcourse/index.php [L]
# END WordPress
注意其中的/wpcourse这是你的wordpress所在目录。
比如,你的wordpress地址是http://localhost/wpcourse,那这里就是这么写。
最后,重启PHPnow,就可以了。
重启方法是,运行PnCp.cmd, 输入23,回车。
具体安装方法可查看:http://www./article/21274.htm。
二、下载并安装IIS FastCGI
下载地址:http://www.iis.net/download/fastcgi。选择 x86或者download x86,下载下来名称为 fcgisetup_1.5_rtw_x86.msi。安装后会在C:\WINDOWS\system32\inetsrv\目录下多出了5个文件fcgiconfig.js,fcgiext.dll,fcgiext.ini,fcgilicense.rtf,fcgireadme.htm
这个时候在IIS6的"WEB服务扩展"里就多出了一个FastCGI Handler
三、下载安装IIS下的PHP5.3.8
下载地址http://windows.php.net/download/,下载VC9 x86 Non Thread Safe的ZIP版本,解压到所需目录,该目录需要给予user读取运行权限。
关于PHP VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题
http://www./article/26646.htm
四、配置和修改内容
1、环境变量修改
我的电脑->属性->高级->环境变量->系统变量,在Path的最后面中加上;E:\PHP\
2、FastCGI安装目录内的修改(注册PHP到FastCGI)
打开C:\WINDOWS\system32\inetsrv\fcgiext.ini文件,在文件最后加上下面的语句:
[Types](这个是文件原来就有的,在[Types]后面加上下面的语句就可以,要全部哦不然会报错的。)
php=PHP
[PHP]
ExePath=E:\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\
3、PHP.ini的修改PHP5.3.8安装目录下是没有PHP.ini这个文件的,只有php.ini-development和php.ini-production,我们把php.ini-development改为php.ini(当然如果你怕有错可以先备份一下)。
注明:首先建一个文件夹命名为TMP,位置随意,我这里放在E:\PHP\tmp。 (upload_tmp_dir会用到,upload_tmp_dir是用来定义上传文件存放的临时路径,这里可以修改并给它定义一个绝对路径,同时需要有读、写权限)。用搜索(快捷键:Ctrl+F)的方式把下面的关键字改成现在的值:
short_open_tag = Off (这个它本来默认就是这样我们就不要改了。)
注:这个如果是off状态下,探针不可以用,而且有些程序会500错误,如帝国备份王,所以如果有这些需求,可以设置为ON!
把;upload_tmp_dir =改为upload_tmp_dir="E:\PHP\tmp"
把;cgi.force_redirect = 1改为cgi.force_redirect=0
把;fastcgi.impersonate = 1;改为 fastcgi.impersonate=1;
把; extension_dir = "ext"改为extension_dir="E:\PHP\ext"
把;date.timezone =改为date.timezone =PRC(如果不修改date.timezone,打开网页的时候蛮有可能提示500错误。也有人把值改为Asia/Shanghai,我没试过你们可以试试。)
在Windows Extensions中去除扩展前面的分号(;):
; extension=php_curl.dll
; extension=php_gd2.dll
; extension=php_ldap.dll
; extension=php_mbstring.dll
; extension=php_exif.dll
; extension=php_mysql.dll
; extension=php_mysqli.dll
; extension=php_sockets.dll
; extension=php_xmlrpc.dll
4.Internet信息服务(IIS)管理器的修改
(1)网站》属性》主目录》配置》添加
可执行文件填写C:\WINDOWS\system32\inetsrv\fcgiext.dll
扩展名填写.php。
动作->限制为GET,HEAD,POST。
(2)网站->属性->文档->添加默认内容index.php。这里全部配置好了,一定要把IIS服务重启一下。
5、测试
用文本写一段测试代码:
<?php
phpinfo();
?>
保存为index.php,名字随便取,只要后缀是.php就可以。把index.php放到根目录下,我这里是C:\Inetpub\wwwroot,然后在浏览器中输入http://localhost/index.php就可以得到返回的信息了。
五、若出现如同下面的错误,说明你的电脑没有安装VC9运行库 即VISUAL C++ 2008
Microsoft Visual C++ 2008 Redistributable Package (x86)
下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn
下载后安装就可以了。
<VirtualHost *:80>
ServerAdmin webmaster@163.com
DocumentRoot "D:\www"
ServerName ymywz.com
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</VirtualHost>
注:由于代码冲突问题,请把上面的双书名号改成单书名号
在httpd.conf文件底部添加以上代码后,重启Apache的时候,提示以下内容:
windows 不能在 本地计算器 启动 Apache2.有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。
真是苦逼也······我以为是电脑问题,我就把phpstudy重新安装了一遍。重新安装后可以启动Apache,但重新添加上面的代码后又出现这个问题。此时,我就觉得是不是添加的代码有问题。在我删一句重启一次的体力劳动之后,有了重大发现:
在删除“AllowOverride All”这段代码后,Apache可以重新启动,域名也打开了。我没研究这句代码的用法,只知道删掉后可以用了······
phpstudy本地配置多域名的虚拟主机
启动Apache2后,又遇到了一个问题:多站点无法打开,提示403错误。
我是根据httpd.conf文件中未注释掉的代码一行一行检查的。经过检查,以及与网上的教程相比较,发现一个问题:
#Include conf/extra/httpd-vhosts.conf 这段代码前面的注释符号“#”没有删掉······这段代码的用途是开启httpd-vhosts虚拟主机文件。这一步骤完成之后,重启Apache,这样就可以完整的打开各个本地域名地址了。
注:在修改httpd.conf文件之后,还需要修改hosts文件,用以添加本地虚拟的域名(道理和在空间里把域名dns解析到IP是一个道理)。