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

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

有人有什么建议吗?

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

编辑: 代码. .:

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


当前回答

我也遇到过类似的问题,但我的解决方法不同。 存放PHP代码的文件名为somename。html 把它改为" someename .php"工作得很好

其他回答

我发布这个答案是因为我的Virtualmin/Webmin管理界面决定禁用我的PHP引擎是一个好主意。我花了一段时间才找到解决方案,所以我想和你们分享一下:

同时,确保你的网站配置文件中没有任何与这个特定主机或虚拟主机相关的php_admin_value在它们中关闭PHP,就像这样:

php_admin_value engine Off

有疑问的时候,评论一下…

# php_admin_value engine Off

并重新启动您的web服务器。

今天,PHP自带一个内置的web服务器,所以不需要进一步的安装,因此呈现PHP文件用于开发使用的最简单的方法之一是:

打开一个终端,切换到包含web应用程序的源目录(它的主文件通常称为index.php)。 在这个目录中,键入php -S localhost:7777(端口号是任意选择的)。 打开web浏览器,在地址栏中输入localhost:7777,就会呈现所需的网页。

如果您已经完成了访问,那么返回您的终端并按CTRL-C关闭开发服务器。

这个信息也是通过在终端中调用php——help来给出的,进一步的信息在https://www.php.net/manual/en/features.commandline.webserver.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,当然需要调整。

在我的情况下(Apache/2.4.34),

在取消特定模块的注释之后

其它选项:

from

“/etc/apache2/httpd.conf”

我的问题消失了。

如果我们在同一页做下面

Sudo apt-get install PHP Sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y

要在Apache2中启用PHP 7.2 FPM,请执行以下操作:

A2enmod proxy_fcgi SetenVIF

a2enconf php7.2-fpm

更新2:Apache下载。php文件而不是渲染

在那之后,我遇到了上面的问题。还有类似的问题。

我不知道为什么,但它只发生在我的。php文件在/var/www/html/根文件夹。对于子目录来说一切正常。(例如wordpress和phpmyadmin工作得很好)

这就是我的解。我决定启用php模块。所以我运行了这个命令:

a2enmod php7.2

但我得到了这个错误:

考虑php7.2依赖mpm_prefork: 考虑mpm_prefork的冲突mpm_event: 错误:mpm_event模块已启用-由于冲突无法继续。它首先需要被禁用! 考虑mpm_prefork的冲突mpm_worker: 无法为php7.2启用依赖mpm_prefork,终止

所以我决定通过运行以下命令禁用mpm:

sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event

然后重启apache:

Systemctl restart apache2

然后启用php7.2(我安装的版本):

Sudo a2enmod php7.2

现在一切都很好。