我试图在一个项目上执行一些PHP代码(使用Dreamweaver),但代码没有运行。

当我检查源代码时,PHP代码显示为HTML标记(我可以在源代码中看到它)。Apache运行正常(我正在使用XAMPP), PHP页面正在正常打开,但PHP代码没有被执行。

有人有什么建议吗?

注意:该文件已经命名为filename.php

编辑: 代码. .:

<?
include_once("/code/configs.php");
?>


当前回答

刚刚花了几个小时试图让PHP 5与Windows 10上的Apache 2.4一起运行。最后对我来说,这是httpd.conf LoadModule中的一个拼写错误。通过denny2018这个apachelounge线程的最后一个回答,提请注意写作和准确的模块路径。谢谢你!

过了两晚,我发现……我的目录是c:(小写)

我有LoadModule php5_module“c:/php/php5apache2.dll”,但正确的apache 2.4是:

LoadModule php5_module "C:/php/php5apache2_4.dll"

所以我之前也错过了_4(对于apache 2.4)。对我有用的完整片段:

# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

刚试过PHP 7。在Apache 2.4的httpd.conf中读取LoadModule行

LoadModule php7_module "C:/php/php7apache2_4.dll"

目前php手册显示c:/php/php5apache2.dll,当然需要调整。

其他回答

此问题的另一个可能原因可能是您试图在UserDir模块的“用户目录”中运行脚本。在用户目录下运行PHP脚本默认是禁用的。如果脚本位于主文件夹的public_html目录中,并且您试图从http://localhost/~your_username访问它,那么就会遇到这个问题。

要解决这个问题,打开/etc/apache2/mods-enabled/php7.2.conf。必须注释或删除底部的标记块

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

在我的情况下,php模块没有加载。试试这个:

检查加载了哪些模块:apache2ctl -M。查找类似php7_module (shared)的模块 如果没有列出php模块,则尝试加载与您的php版本对应的模块。在我的例子中,php包是libapache2-mod-php7.3。所以我这样做了:a2enmod php7.3,问题就解决了。

我认为问题是,它显示的代码而不是结果是,它不会去本地主机。重新检查你要去的地址。是到本地文件目录还是到本地主机。

从你发送的屏幕截图,它将到你的计算机,而不是到本地主机。

"file:/// "应该是"localhost/"

PHP 8, Centos 7, Apache 2, Remi Repo

我最近升级了centos服务器以使用php 8。

升级后,php已经停止工作,apache开始为我提供php代码作为文本。

在花了很长时间寻找哪个配置设置没有更新之后,我找到了这个:

在/etc/httpd/conf.d

<IfModule  mod_php7.c>

需要更改为:

<IfModule  mod_php.c>

还有其他地方,你可能会看到mod_php7检查,可能会更新到mod_php变体,但这一个肯定为我修复了它。

之后不要忘记重新启动服务器。

在我的ubuntu 14.04, apache 2.4, php 5.5.9安装,我尝试在/var/www/html(默认文档根)上使用sample.php,它工作正常。 所以问题出在我的虚拟服务器配置上。 解决方案是在包含.php的Directory def中包含这一行:

    php_admin_flag engine on