Apache显示php代码而不是执行
我最近一直在试图在我的电脑上安装php和apache。 几个小时后,他们被安装。 我已经修改了httpd.conf和php.ini文件,就像大家说的一样。 然后我创建了一个简单的PHP脚本:
<?php phpinfo(); ?>
但是当我尝试运行它与http://127.0.0.1/phpinfo.php
它只是显示源代码,而不是执行。 我正在使用apache2,php5和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"
你必须启用PHP! 检查Apache目录中mods-enabled
的文件夹mods-enabled
(默认:/ etc / apache2 /)以查看是否找到名为php
的文件。 我不记得扩展名,但我认为它是.so
。
同时检查var/log/apache2/error.log
来查看是否有任何错误。
打开文件
/etc/apache2/httpd.conf
并改变
#LoadModule php5_module libexec/apache2/libphp5.so
成
LoadModule php5_module libexec/apache2/libphp5.so
所以只需在httpd.conf
解开PHP模块加载即可
对于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/
哇,这里有很多解决方案! 这是我在Ubuntu 16.04上做的 :
sudo apt-get install php libapache2-mod-php sudo a2enmod mpm_prefork && sudo a2enmod php7.0 sudo service apache2 restart
我发现这个解决了我的相关问题。 我把它添加到相关的<Directory>
部分:
<IfModule mod_php5.c> php_admin_flag engine on </IfModule>
一个不同的答案,为我工作。 就是这样,安装[sudo] apt-get install libapache2-mod-php5.X
好吧,如果你已经尝试过你之前或之前告诉过的(这是可能的原因),它仍然显示代码而不是执行它,那么有一件事你做错了没有得到解决。 您用来访问您的PHP代码的网址; 有些人试图通过将.php文件拖到Web浏览器来执行他们的PHP代码。 这是错误的做法,可能会导致这种问题。 如果你已经在C:// wamp / www文件夹中保存了一个“test.php”文件,那么你必须这样访问这个文件:localhost://test.php。 当你这样访问时会出现这种错误:localhost://wamp/www/test.php
希望我帮了别人。 丹尼尔
您可以删除.htaceess文件,并让系统创建一个新的(空的或基本的)文件。 这可能是你添加的一些行是不正确的语句,或者其他内部导致的问题。 然后,您可以从旧的.htaccess文件逐行添加,以查看造成问题的原因。
这对我有效。 告诉机器不要显示php扩展的线是我的情况( RewriteCond和RewriteRule )的问题。 我的旧.htaccess文件在共享服务器上工作得很好,但是当我切换到VPS时出现了这个问题。
张贴什么对我有帮助的情况下帮助某人在路上,虽然这是一个通常的情况。
我已经设置了一个处理程序来强制我的虚拟主机使用比他们的默认更高版本的PHP。 有5.1,但我想要5.6,所以我有这个:
<FilesMatch \.php$> SetHandler php56-cgi </FilesMatch>
在我的.htaccess文件中。
当试图在本地运行我的网站,在那里导致PHP代码输出到浏览器。 删除它解决了这个问题。
如果你是一个Ubuntu用户,安装Apache之后必须在全新安装中运行以下命令
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
在我的情况下工作正常。
如果模块userdir已启用,并且您的站点位于userdir(〜/ public_html)中,则必须检查/etc/apache2/mods-enabled/php5.conf。 下面的部分使它工作(在Ubuntu 14.10的乌托邦):
# 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>
在MAMP中运行$ _POST时,这也发生在我身上。 我所有的.ini和httpd文件都设置正确。 如果你正在做表单处理,你有一个HTML文件,并将信息发布到运行$ POST的php formhandler,请确保你正在通过你的服务器从localhost运行html文件,而不仅仅是本地。
这是我运行html文档的快捷方式,只需单击我的目录中的html文件,然后在我的web浏览器中启动,在实际中检查php是否在您的表单中处理时,您必须通过服务器运行您的html。 我忽略了一个非常简单的协议。
例:
错误: file:///Applications/MAMP/htdocs/form/form.html
右键: http://localhost:your port number/form/form.html
现在PHP应该被处理,一旦你点击你的提交按钮
我有同样的问题,由模块suphp
的Debian / Ubuntu默认配置引起的。 它包含整个/ usr / share的suPHP_Engine off
,导致浏览器显示php源代码。 用a2dismod suphp
激活是临时解决方案。
我有同样的问题。 当我运行一个PHP文件,Web浏览器显示我的PHP代码,而不是执行它。 我已经尝试了很多次:卸载/重新安装wampserver64,解决PHP / Apache设置/模块等。2天后:我意识到,当我试图通过按下默认组合“ctrl + alt + shift + R“。 它试图执行我的PHP文件,如:“文件/// C:/ wamp64 / www / bla / bla ..”在我的chrome的地址栏中。 那是我的问题。 我做了更改根据页面配置记事本+ +在本地主机上运行PHP? 。 我的问题解决了。 但2天后..
以管理员身份运行Xampp(apache)。 在谷歌浏览器中键入:
localhost/<insert folder name here>/<insert file name>
即如果你创建的文件夹是“LearnPhp”,文件是“chapter1.php”,然后键入
localhost/LearnPhp/chapter1.php
我在htdocs文件夹的xampp文件夹中创建了该文件夹,该文件夹在下载xampp时创建。
什么对我有效:
在活动的httpd.conf中,找到
<IfModule mime_module> ... </IfModule>
它错过了以下
AddType application/x-httpd-php .php AddHandler application/x-httpd-php .php
重新启动apache之后,.php文件被正确解析。