PHP5 的 XAMPP 问题

Posted

技术标签:

【中文标题】PHP5 的 XAMPP 问题【英文标题】:XAMPP problems with PHP5 【发布时间】:2010-09-16 15:50:06 【问题描述】:

我在我的网站上启用了 php5,我的虚拟主机需要我将以下内容添加到 .htaccess 文件中以使 PHP5 正常工作:

AddHandler 应用程序/x-httpd-php5 .php5 .php4 .php .php3 .php2 .phtml AddType application/x-httpd-php5 .php5 .php4 .php .php3 .php2 .phtml

在本地,我正在运行 XAMPP 来开发代码,但 XAMPP 不想使用上面的 .htaccess 文件。

我认为这是 XAMPP 无法识别 php5 的问题(但如果我使用“application/x-httpd-php”而不是“application/x-httpd-php5”,它确实可以识别 php)

我该如何解决这个问题?!我需要 .htaccess 文件看起来像上面那样,以便它们与我的网络主机一起使用,但我需要 XAMPP 在本地使用相同的文件而不进行更改!

【问题讨论】:

【参考方案1】:

所以,你处于一个艰难的境地;理想情况下,您的虚拟主机不应该需要您在 htaccess 文件中添加额外的垃圾。对XAMPP不太了解,无法给出具体的解决方案,但可以给你一些指点:

    您的虚拟主机正在运行使用 application/x-httpd-php5 的自定义编译版本的 PHP;虽然完全可以自己构建 PHP 或找到适当配置 SAPI 层的自定义构建,但您可能想要这样做。

    根据主机给 htaccess 文件的余地多少,可以使用 仅有条件地执行 PHP fudge 代码。我没有测试过,你的虚拟主机可能禁用了这个功能。此外,您还必须找到合适的条件来进行测试。

    我最喜欢的答案是接受它,并维护单独的 htaccess 文件。我在我的网站上这样做;我有一个 .htaccess.in 文件,其中包含“全局”声明,以及一个 htaccess.php 文件,它根据配置等生成真正的 .htaccess 文件。

希望对您有所帮助。

【讨论】:

【参考方案2】:

Apache 有<IfDefine> 指令。您可以使用它从您自己的服务器中隐藏AddType

<IfDefine !MyServer>
AddType application/x-httpd-php5 .php5 …
…
</IfDefine>

然后用

启动 apache
apachectl -D MyServer

【讨论】:

【参考方案3】:

另一个简单的解决方案:change the config file name 在家里。例如。在 httpd.conf 中:

<Directory />
    #existing stuff here...
    AccessFileName .htaccess.home
</Directory>

现在您的家庭服务器将忽略您的“.htaccess”文件。您将使用“.htaccess.home”文件对其进行配置。

【讨论】:

以上是关于PHP5 的 XAMPP 问题的主要内容,如果未能解决你的问题,请参考以下文章

扩展 PHP5 在 XAMPP 中不解析

为啥 php 5.3 而我的 xampp 是 php 7?

在 XAMPP for Windows 中升级 PHP 5.4.0?

XAMPP phpmyadmin:登录凭据

需要带有 PHP 5.4 版本的 XAMPP - windows [关闭]

XAMPP conf - 默认运行 php5_module 并根据 .htaccess 切换到其他 php cgi 版本