扩展 PHP5 在 XAMPP 中不解析

Posted

技术标签:

【中文标题】扩展 PHP5 在 XAMPP 中不解析【英文标题】:Extension PHP5 does not parse in XAMPP 【发布时间】:2010-10-02 09:56:52 【问题描述】:

我已经安装了 XAMPP Apache 服务器并将我的网站放入 htdocs。我已经启动了 Apache 服务器。在我的网站上,我有扩展名为 php 和扩展名为 PHP5 的文件。不同之处在于,当我在浏览器中输入 localhost/file.php 时,我看到了一个已解析的网站。

但是当我输入 localhost/file.php5(我在服务器上有这个文件)时,浏览器会询问我是否要下载或打开这个文件。如果我选择打开,我会看到 file.php5 的 PHP 代码!

我已经查看了配置,所以:

    我没有 htaccess 文件 PHPINFO() 显示 PHP 5

    c:\xampp\apache\conf\extra\httpd-xampp 包含在配置中,并且在开头有这个:

    AddType application/x-httpd-php-source .phps

    AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt

我也尝试过:

AddHandler php5-script .php5
AddType text/html .php5

进入 httpd.conf,但它对我不起作用(没有变化)。

你能帮我修一下吗?我想用 php5 解析器打开 php5 和 php 扩展文件。

【问题讨论】:

在配置中添加.php5时是否重启过apache? 是的,我在任何更改后都重新启动了它。我也尝试过使用 CGI 版本和服务版本。 如果你安装了xampp包,这怎么可能不行?! 添加处理程序类型后确定重启 apache 了吗? 【参考方案1】:

    按照路径c:/xampp/apache/conf/extra/httpd-xammp

    打开httpd-xammp

    找到与此类似的文本区域:

    <FilesMatch "\.php$"> 
       SetHandler application/x-httpd-php   
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    

    将代码的第一行替换为以下内容:

    <FilesMatch "\.php$|\.php5$|\.php4$|\.php3$|\.phtml$|\.phpt$"> 
    

    因此文本类似于以下内容:

    <FilesMatch "\.php$|\.php5$|\.php4$|\.php3$|\.phtml$|\.phpt$"> 
        SetHandler application/x-httpd-php  
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    

这对我有用。

祝你好运..

【讨论】:

【参考方案2】:

XAMPP 默认将具有以下扩展名的文件传递给 PHP:.php .php5 .php4 .php3 .phtml .phpt(这是用 XAMPP Lite 1.6.8 测试的)。

我的建议是从 XAMPP 配置中删除“AddType text/html .php5”行。或者,使用全新安装的 XAMPP 并查看差异(使用 WinMerge 之类的内容)。

【讨论】:

【参考方案3】:

当我切换到 Ubuntu 操作系统时,我不得不弄清楚如何再次执行此操作。需要修改的文件名为php5.conf

我使用突触包管理器(系统>管理>突触包管理器)安装了 apache 2、php5、phpmyadmin、mysql-server 和 rapache,但没有使用 XAMPP。如果您已经安装了 XAMPP,那么 php5.conf 的路径会有所不同,可能在 /opt/lampp 文件的某个位置。

在我的安装中,它的路径是/etc/apache2/mods-avaible/php5.conf。在修改之前,您必须使用终端更改权限以允许您对其进行写入。要访问它,请打开终端并输入:

cd /etc/apache2/mods-available

然后是更改权限的行:

sudo chmod a+w php5.conf

您可以键入以下内容以确保权限已更改:

ls -l

您应该会看到一长串带有权限概念的文件。 php5.conf 的行应如下所示(日期和时间除外):

-rw-rw-rw- 1 root root  139 2009-12-06 22:35 php5.conf

这意味着每个人都有读写权限。如果需要,您可以在完成后更改权限。现在继续通过键入以下内容进行所需的更改:

nano php5.conf

这会在一种文本编辑器中打开文件。你应该看到的是:

<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
</IfModule>

将文字改为如下:

<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3 .php5
AddType application/x-httpd-php-source .phps
</IfModule>

.php5 添加到第一个AddType 命令之后。

ctrl+x 退出,按 y 保存更改。然后重新启动计算机。然后你的带有.php5 扩展名的文件应该可以工作了!

我不敢相信我花了好几个小时才弄明白!祝你好运!

【讨论】:

【参考方案4】:

添加:

AddType application/x-httpd-php .php .php5

在 OS X 和 Apache 2.2.10 下为我工作,我无法想象它在 XAMPP 上会有所不同。我会撤消您对 httpd.conf 的所有其他更改/修改,然后只有:

LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .php5

然后重启apache。摆脱 AddHandler、AddType 等。

【讨论】:

谢谢.. 第一行对我有用.. 我在上面的行中添加了 .php5 ..in httpd.conf

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

命名空间--名称解析规则

您如何在 PHP 中解析和处理 HTML/XML?

您如何在 PHP 中解析和处理 HTML/XML?

您如何在 PHP 中解析和处理 HTML/XML?

您如何在 PHP 中解析和处理 HTML/XML?

您如何在 PHP 中解析和处理 HTML/XML?