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

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

有人有什么建议吗?

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

编辑: 代码. .:

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


当前回答

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

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

其他回答

如果你使用Apache 2.4,在httpd.conf文件中添加AddType application/x-httpd-php .php

此问题的另一个可能原因可能是您试图在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>

听起来你的配置好像有问题,下面是一些你可以检查的东西:

Make sure that PHP is installed and running correctly. This may sound silly, but you never know. An easy way to check is to run php -v from a command line and see if returns version information or any errors. Make sure that the PHP module is listed and uncommented inside of your Apache's httpd.conf This should be something like LoadModule php5_module "c:/php/php5apache2_2.dll" in the file. Search for LoadModule php, and make sure that there is no comment (;) in front of it. Make sure that Apache's httpd.conf file has the PHP MIME type in it. This should be something like AddType application/x-httpd-php .php. This tells Apache to run .php files as PHP. Search for AddType, and then make sure there is an entry for PHP, and that it is uncommented. Make sure your file has the .php extension on it, or whichever extension specified in the MIME definition in point #3, otherwise it will not be executed as PHP. Make sure you are not using short tags in the PHP file (<?), these are not enabled on all servers by default and their use is discouraged. Use <?php instead (or enable short tags in your php.ini with short_open_tag=On if you have code that relies on them). Make sure you are accessing your file over your webserver using an URL like http://localhost/file.php not via local file access file://localhost/www/file.php

最后,查看PHP手册以获得更多的设置技巧。

重新安装mcrypt模块对我有用。

$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt

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变体,但这一个肯定为我修复了它。

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