Apache显示PHP代码而不是执行它

Apache显示PHP代码而不是执行它,php,apache,Php,Apache,我最近一直在尝试在我的计算机上安装PHP和Apache。几个小时后,它们就安装好了。我像大家说的那样修改了httpd.conf和php.ini文件。然后,我创建了一个简单的PHP脚本: <?php phpinfo(); ?> HTTPD.CONF LoadModule php5_module "C:/php/php5apache2_2.dll" AddType application/x-httpd-php .php AddType application/x-

我最近一直在尝试在我的计算机上安装PHP和Apache。几个小时后,它们就安装好了。我像大家说的那样修改了httpd.conf和php.ini文件。然后,我创建了一个简单的PHP脚本:

<?php phpinfo(); ?>
HTTPD.CONF

LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHPIniDir "C:/php"

您必须启用php!检查Apache目录中的文件夹
mods enabled
(默认值:
/etc/apache2/
),查看是否找到名为
php
的文件。我不记得扩展名了,但我想它是
。所以

同时检查
/var/log/apache2/error.log
以查看是否存在任何其他错误。

打开该文件

/etc/apache2/httpd.conf

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
改变

#LoadModule php5_module libexec/apache2/libphp5.so
进入


因此,只需在
httpd.conf

中取消PHP模块加载的注释即可。好的,如果您尝试了上面或之前告诉您的内容(这可能是原因),但它仍然显示代码而不是执行代码,那么有一件事情您做错了,但还没有解决。
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
用于访问php代码的url;有些人试图通过将.php文件拖动到web浏览器中来执行php代码。这是错误的做法,可能导致此类问题。 如果已将文件保存为C://wamp/www文件夹中的“test.php”,则必须通过以下方式访问此文件: localhost://test.php. 当您以这种方式访问时,会出现这种错误:localhost://wamp/www/test.php

希望我帮了别人。o/ ~Daniel

我将其添加到相关的
部分:

<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

php_admin_标志引擎打开

如果模块userdir已启用,并且您的站点位于userdir(~/public\u html)中,则必须选中/etc/apache2/mods enabled/php5.conf。 以下部分使其工作(在Ubuntu 14.10 utopic上):

默认情况下,在用户目录中运行PHP脚本是禁用的 # #要在用户目录中重新启用PHP,请注释以下行 #(从到)不要将其设置为打开,因为 #防止.htaccess文件禁用它。 # # #php_管理_标志引擎关闭 # #
您可以删除.htaceess文件,让系统创建一个新的(空白或基本)文件。可能是您添加的某些行是不正确的语句,或者内部的其他内容导致了问题。然后可以从旧的.htaccess文件中逐行添加,以查看问题的原因


这对我很管用。在我的例子中,告诉机器不要显示php扩展的行是个问题(RewriteCond和RewriteRule)。我的旧.htaccess文件在共享服务器上运行得很好,但当我切换到VPS时出现了这个问题。

在MAMP中运行$\u POST时,我也遇到了这个问题。我所有的.ini和httpd文件都设置正确。如果您正在执行表单处理,并且您有一个html文档并将信息发布到运行$POST的php formhandler,请确保您正在通过服务器从localhost运行html文件,而不仅仅是在本地运行

这是我运行html文档的快捷方式,只需单击我目录中的html文件并在我的web浏览器中启动,实际上,要检查表单中是否正在处理php,必须通过服务器运行html。我忽略了一个非常简单的协议

例如:

错误:
file:///Applications/MAMP/htdocs/form/form.html

右:
http://localhost:your 端口号/form/form.html


现在,只要单击提交按钮,php就会被处理,这是一个对我有用的不同答案。也就是说,要为PHP7安装
[sudo]apt get install libapache2-mod-php5.X
(可能也适用于以前的版本),我必须这样做:

将其添加到/etc/apache2/apache2.conf的底部

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
然后别忘了重新启动Apache,让它知道您更改了内容:

sudo service apache2 restart

这是一个总结:

我也遇到了同样的问题,是由模块
suphp
的Debian/Ubuntu默认配置引起的。它包含了整个/usr/share的
suPHP\u引擎关闭
,这导致php源代码显示在浏览器中。使用a2dismod suphp停用是临时解决方案。

我也遇到了同样的问题。当我运行一个php文件时,web浏览器向我显示php代码,而不是执行它。我尝试过很多次:卸载/重新安装wampserver64,处理PHP/Apache设置/模块等。两天后:我意识到,当我尝试在记事本++中通过按chrome的默认组合“ctrl+alt+shift+R”来运行PHP文件时。它试图在我的chrome地址栏中执行我的php文件,如:“file///C:/wamp64/www/bla/bla..”。那是我的问题。我根据页面进行了更改。我的问题解决了。但是两天后

如果您是ubuntu用户,在安装apache之后,必须在新安装中运行以下命令

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

在我的情况下,效果很好。

在case In中发布对我有用的东西可以帮助别人,尽管这是一个不寻常的情况

我设置了一个处理程序,强制我的web主机使用比默认版本更高版本的php。有5.1,但我想要5.6,所以我有这个:

<FilesMatch \.php$>
    SetHandler php56-cgi
</FilesMatch>

SetHandler php56 cgi
在我的.htaccess文件中

当尝试在本地运行我的站点时,如果将其放在其中,会导致php代码输出到浏览器。删除它解决了问题。

以管理员身份运行Xampp(apache)。在google chrome中键入:

localhost/

i、 e.如果您创建的文件夹是“learnppp”,则文件是“chapter1.php”,然后键入

localhost/learnppp/chapter1.php

我在下载xampp时创建的htdocs文件夹中的xampp文件夹中创建了这个文件夹

什么对我有用:

在活动httpd.conf中,查找

<IfModule mime_module>
...
</IfModule>

重新启动apache后,.php文件被正确解析。

哇,这里有很多解决方案!以下是我在Ubuntu 16.04上所做的:

sudo apt-get install php libapache2-mod-php
sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo service apache2 restart
Debian 9解决方案:

touch /etc/apache2/conf-available/php.conf 
添加到文件的下一行:

<IfModule mod_php5.c>
    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>
<IfModule mod_php.c>
    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>
谢谢
sudo apt-get install php libapache2-mod-php
sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo service apache2 restart
touch /etc/apache2/conf-available/php.conf 
<IfModule mod_php5.c>
    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>
<IfModule mod_php.c>
    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>
a2enconf php && service apache2 restart
a2dismod php7.0
systemctl restart apache2
sudo vim /etc/httpd/conf/httpd.conf
<FilesMatch "\.*">
SetHandler application/x-httpd-php
</FilesMatch>
sudo service httpd restart
sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
$ a2enmod actions fastcgi alias proxy_fcgi
<IfModule  mod_php7.c>
<IfModule  mod_php.c>