我不确定哪个网站最适合这个问题 - 这可能是IIS配置问题。 我在运行IIS7.5的全新2008R2服务器上运行Wordpress时遇到问题。我收到一条错误消息,指出找不到所需的文件:
PHP致命错误:require():需要打开失败 './wp-blog-header.php'(include_path ='。; C:\ php \ pear')in 第17行的D:\ path \ to \ my \ site \ _blog \ index.php
浏览网页后,我发现很多人都遇到了这个问题,并通过删除require语句的“./”部分来修复它。我也看到人们在require语句之前使用各种PHP函数或设置全局变量的建议 - 但是我觉得这不是一个好的解决方案。整个Wordpress使用相同的语法,需要在许多文件中替换。此外,如果我更新网站,问题将再次发生。我需要一个不涉及在Wordpress核心中编辑任何内容的解决方案。 我在R1(IIS7)服务器上以及我本地的Win 7机器上都没有遇到任何问题 - 我在R2服务器上看到的第一个这个问题。
任何人都可以帮我找到适用于Wordpress的'./'相对路径吗?
由于
答案 0 :(得分:1)
原来这是一个权限问题。 似乎为了使'./your_filename.php'工作,用户PHP正在运行,因为需要对文件夹具有“列出文件夹内容”权限 - 即使文件是直接指定的。
最后,完整的解决方案包括关闭快速CGI模拟,让PHP作为应用程序池标识运行,并提供对wordpress文件夹的更多访问权。
在关于SO的问题中有一些关于此的信息 - 我现在似乎无法找到它,但如果我再次遇到它,我会在答案中链接到它。
答案 1 :(得分:-1)
您可以尝试使用此web.conf
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule 1" stopProcessing="true">
<match url="^index\.php$" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="WordPress Rule 2" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" />
<action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
</rule>
<rule name="WordPress Rule 3" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
<action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
</rule>
<rule name="WordPress Rule 4" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
<rule name="WordPress Rule 5" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" />
<action type="Rewrite" url="{R:2}" />
</rule>
<rule name="WordPress Rule 6" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
<action type="Rewrite" url="{R:2}" />
</rule>
<rule name="WordPress Rule 7" stopProcessing="true">
<match url="." ignoreCase="false" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>