Apache显示PHP代码而不是执行它
我最近一直在尝试在我的计算机上安装PHP和Apache。几个小时后,它们就安装好了。我像大家说的那样修改了httpd.conf和php.ini文件。然后,我创建了一个简单的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 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>