<?php phpinfo(); ?>
但是当我尝试使用
http://127.0.0.1/phpinfo.php
运行它时,它只是显示源代码而不是执行它。我正在使用Apache 2,PHP 5和Windows Vista。编辑过的代码:
PHP.INI:
short_open_tag = On
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"
#1 楼
您必须启用php!检查Apache目录中的文件夹mods-enabled
(默认值:/etc/apache2/
),以查看是否找到名为php
的文件。我不记得扩展名,但我认为它是.so
。还请检查
/var/log/apache2/error.log
,看看是否还有其他错误。评论
您是否运行过:a2enmod php5
–丹尼尔·菲格罗亚(Daniel Figueroa)
2012年8月27日12:50
我的apache目录中没有mods_enabled文件夹
–冲动
2012年8月27日12:53
在我的情况下,@ imulsion已在/ etc / apache2 /下启用了mods
– Silveri
13-10-25在9:06
就我的php7而言,我不得不做一个a2enmod php7.0,它解决了我的问题。花了整整一天以某种方式到达此职位!
– Sejwal
16-09-17在15:42
在启用了mods的情况下,没有名为php的文件,怎么办?这个答案不解释东西
–黑色
17年7月7日在11:00
#2 楼
哇,这里有很多解决方案!这是我在Ubuntu 16.04上执行的操作:sudo apt-get install php libapache2-mod-php
sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo service apache2 restart
评论
通过在apt-get中添加--reinstall为我工作。可能php模块/ apache安装很脏。
–Glastis
17-6-28在13:48
这在Digital Ocean的Ubuntu 16.04服务器上为我工作
– Sushant Bhargav
17年11月15日在9:49
这给了我以下错误:为php7.0考虑冲突php5,为mpm_prefork考虑冲突mpm_worker,等等...并且apache2重新启动失败
– rid
18 Jun 14'在4:59
如果您考虑到php7.2的冲突php5,请转到/ etc / apache2 / mods-available并删除php5。*
–西蒙·埃斯普坎普(Simon Epskamp)
19年5月24日在11:51
#3 楼
对于PHP 7(可能也适用于以前的版本),但我必须这样做:将其添加到/etc/apache2/apache2.conf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
从终端运行此命令:
sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7
然后别忘了重新启动Apache,这样它就知道您已更改了内容:
sudo service apache2 restart
这是摘自:https://www.atlantic.net/community/howto/try-php7-lamp-ubuntu-14-04/
评论
我必须在OSX El Capitan上针对PHP 5.6进行此操作。 (使用股票apache,但自制php56)
–rfay
16年8月11日在23:04
也可以在Windows上运行(这意味着您不必在Windows上运行终端命令)感谢您为我节省了无尽的搜索。
–Cedric Ipkiss
17-4-5在0:18
从源安装时,此文件匹配是必需的。 (config和make等为我启用了httpd.conf中的模块,但未添加此模块。)
–user7296055
17年11月29日在11:06
样本httpd.conf文件中有十亿条注释。谁能解释为什么没有一个适合PHP?这不是很少使用的东西。
–丹尼尔
18年6月12日在0:31
@Danial httpd.apache.org/support.html有很多方法,您可以在其中找到文档,报告错误并提出问题(例如,为什么在httpd.conf中没有使用PHP的明智示例?)
– RyanNerd
18年6月12日在19:27
#4 楼
打开文件/etc/apache2/httpd.conf
并更改
#LoadModule php5_module libexec/apache2/libphp5.so
进入
LoadModule php5_module libexec/apache2/libphp5.so
所以
httpd.conf
中的PHP模块加载未完成评论
就我而言,该行以php7_module开头-否则,这对我有用!
–b0rgBart3
19年2月23日在20:07
#5 楼
我发现这是为了解决我的相关问题。我将其添加到相关的<Directory>
部分:<IfModule mod_php5.c>
php_admin_flag engine on
</IfModule>
#6 楼
一个对我有用的不同答案。是的,要安装[sudo] apt-get install libapache2-mod-php5.X
评论
我的也差不多。我做了“ sudo apt-cache搜索^ libapache2 | grep php”,它找到了相关的软件包,然后安装了“ sudo apt-get install libapache2-mod-php”。 libapache2-mod-php7.0已经安装。
– VectorVortec
18-09-16在8:05
#7 楼
Apache显示php代码而不是执行已修复的问题。
1.打开php5.6 conf或php7.x conf
#以下命令:
$ sudo vi /etc/apache2/mods-enabled/php5.6.conf
2.注释了以下几行
3.重新启动服务器
$ sudo service apache2 restart
4享受:)
#8 楼
好吧,如果您尝试了上面或更早之前提到的内容(可能是原因),并且它仍然显示代码而不是执行代码,那么您正在做的一件事是未解决的错误。您用来访问php代码的网址;有些人通过将.php文件拖到网络浏览器中来尝试执行其php代码。这是错误的做法,可能会导致此类问题。 />localhost://test.php。
当您以这种方式访问它时,会发生这种错误:localhost://wamp/www/test.php
希望我帮助了某人在那里。 o /
〜丹尼尔
#9 楼
发布适用于我的服务器,以防万一,尽管这是一种不寻常的情况。我设置了一个处理程序,以强制我的虚拟主机使用比其默认版本更高的php版本。当时有5.1,但我想5.6,所以我有这个:.htaccess文件中的
<FilesMatch \.php$>
SetHandler php56-cgi
</FilesMatch>
。
当试图运行我的网站时在本地,在那里有导致php代码输出到浏览器。删除它可以解决问题。
#10 楼
您可以删除.htaceess文件,然后让系统创建一个新文件(空白文件或基本文件)。您添加的某些行可能是不正确的语句,或者内部的其他原因导致了问题。然后,您可以从旧的.htaccess文件中逐行添加内容,以查看引起问题的原因。对我来说这是有效的。在我的情况下,告诉机器不显示php扩展名的行是问题(RewriteCond和RewriteRule)。我的旧.htaccess文件在共享服务器上可以正常工作,但是当我切换到VPS时出现此问题。
评论
同样,如果您遇到了CORS愚蠢问题,请执行以下操作:运行sudo a2enmod标头和sudo a2enmod重写(不要忘记重启Apache)。
– RyanNerd
16年5月31日在19:56
#11 楼
感谢此线程上的其他人的建议。按照上述步骤操作,我发现apache服务器无法在load
的/etc/apache2/mods-enabled
文件中开始报告语法错误。原来php7.0和php7.1都启用了。#12 楼
对于PHP7和Apache2.4,这就是您需要做的:sudo vim /etc/httpd/conf/httpd.conf
转到最底部并插入以下内容(全部):
<FilesMatch "\.*">
SetHandler application/x-httpd-php
</FilesMatch>
然后,重新启动Apache以加载新的配置:
sudo service httpd restart
Apache现在将使用PHP执行所有HTTP / S请求。如果您只有html,css和php文件,则此方法对您来说很好。如果您正在运行其他语言,则需要根据情况调整适合的文件。我已经用phpMyAdmin进行了测试,并且效果很好。
其他所有人在这里谈论的其他东西对我来说都不是必需的。当我将“ AddType Application .....”放在正确的位置时,Apache告诉我该模块已经加载并跳过了该模块。
更多信息可在这里找到:https:// httpd。 apache.org/docs/2.4/mod/core.html#filesmatch
我的安装过程如下:
sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
如果您还没有的话,也应该阅读以下内容:https:/ /httpd.apache.org/docs/current/howto/htaccess.html#when
#13 楼
如果启用了模块userdir并且您的站点位于userdir(〜/ public_html)中,则必须检查/etc/apache2/mods-enabled/php5.conf。以下部分使其工作(在Ubuntu 14.10 utopic上) :
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
# <IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
# </IfModule>
#14 楼
如果您是ubuntu用户,则在安装apache之后必须在全新安装中运行以下命令sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
对我而言,它可以正常工作。
#15 楼
适用于我的方法:在活动的httpd.conf中,找到
<IfModule mime_module>
...
</IfModule>
它缺少以下内容
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
重新启动apache后,.php文件已正确解析。
#16 楼
以上都不是对我适用的方法或对我有用的方法... PHP7,CentOS 6上的Apache Httpd 2.2事实是,我在Apache之前安装了yum php(全部使用yum)...您必须做相反的事情:总是先安装Apache,然后再安装PHP,然后它才能工作...
确实,您可能在
libphp7.so
中缺少libphp7-zts.so
和/etc/httpd/modules/
我能够在不卸载PHP的情况下进行恢复。我确实在
/etc/httpd/conf/httpd.conf
中添加了魔术线:AddType application/x-httpd-php .php
,然后运行:
yum install php php-mysql
#17 楼
将以下配置添加到/etc/apache2/apache2.conf
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
,然后通过
apache
重新启动sudo service apache2 restart
评论
谢谢!多亏了本指南,我对此进行了说明。我的第一行就是
– MaciekŁoziński
12月9日14:13
#18 楼
在MAMP中运行$ _POST时,这也发生在我身上。我的所有.ini和httpd文件均已正确设置。如果您正在执行表单处理,并且有一个html文档并将该信息发布到运行$ POST的php表单处理程序中,请确保您是通过本地服务器通过本地主机运行html文件的。这是我运行html文档的快捷方式,只需单击目录中的html文件并在Web浏览器中启动,而实际上要检查php是否正在以您的形式进行处理,必须通过服务器运行html。我忽略了一个非常简单的协议。
示例:
错误:
file:///Applications/MAMP/htdocs/form/form.html
正确:
http://localhost:your port number/form/form.html
现在单击提交按钮后应处理php
#19 楼
我有同样的问题,是由模块suphp
的Debian / Ubuntu默认配置引起的。它包含整个/ usr / share的suPHP_Engine off
,这导致php源显示在浏览器中。临时解决方案是使用a2dismod suphp
停用。#20 楼
我有同样的问题。当我运行一个php文件时,网络浏览器向我显示了php代码而不是执行它。我尝试了很多次:卸载/重新安装wampserver64,解决PHP / Apache设置/模块等问题。2天后:我意识到,当我尝试通过按默认组合“ ctrl + alt + shift + R“表示Chrome。它正在尝试在Chrome的地址栏中执行我的php文件,例如:“ file /// C:/ wamp64 / www / bla / bla ..”。那是我的问题。我根据“配置Notepad ++”页面在localhost上运行php进行了更改。我的问题解决了。但是两天后..#21 楼
以管理员身份运行Xampp(Apache)。在Google Chrome浏览器中,输入:localhost/<insert folder name here>/<insert file name>
即如果您创建的文件夹是“ LearnPhp”,文件是“ chapter1.php”,请键入
localhost/LearnPhp/chapter1.php
我在htdocs文件夹中的xampp文件夹中创建了此文件夹当您下载xampp时。
#22 楼
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>
然后运行:
a2enconf php && service apache2 restart
评论
这对我有用,但最初没有。我正在用户目录中运行Web内容,默认情况下该目录处于禁用状态。要启用它,请参阅/etc/apache2/mods-available/php7.2.conf中的最后一部分
–托尼·亚当斯(Tony Adams)
19-2-10在1:36
#23 楼
有时候,如果您的php版本发生冲突,则会发生要解决该问题,请按照以下步骤操作
步骤1:安装了Yum列表| grep'php'
如果您有多个php版本,例如php 5.6和php 7.0,则会发生这种冲突
步骤2:yum remove **您的PHP版本**
步骤3:然后重新启动apqche
/etc/init.d/httpd restart
或service apache2 restart
#24 楼
这个解决方案对我有用。我清除了apache2并重新安装。清除并安装后发生了。如果是第一次安装,则不会遇到此问题。#25 楼
我尝试了多种解决方案,但是解决方案是安装fpm-module。我们在php之前安装了httpd,这可能与问题有关,但是要解决此问题,我们安装了以下解决方案:
yum模块安装php:7.2
这安装了php-fpm-7.2.11-4.module + el8.1.0 + 5443 + bc1aeb77.x86_64.rpm模块,然后通过以下方式启用:
systemctl enable --now php-fpm
从那时起,我们将/etc/httpd/conf.d/php.conf保留为默认值,并重新启动了httpd
服务httpd restart
希望这会有所帮助,花费的时间比应该弄清楚的要长。
#26 楼
就PHP7.3 Apache2.4 Ubuntu 18.04而言,我必须执行:$ a2enmod actions fastcgi alias proxy_fcgi
评论
在phpinfo.php中,您是否添加了一些使.php文件可读的标头?@Peteris我的整个脚本都没问题
尝试简单的脚本:<?php echo“ Hello world”; ?>是否显示Hello world?如果显示代码,则@RabNawaz表示您的服务器配置不正确!
只需再次显示代码即可:(
您从哪里访问您的php文件?请注意,为了由您的服务器执行php文件,您需要将文件放在正确的Web根目录中。并在您的Web浏览器中以http:// localhost /或http://127.0.0.1/
进行访问