我最近一直试图在我的电脑上安装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"
答案 0 :(得分:79)
你必须启用php!检查Apache目录中的文件夹mods-enabled
(默认值:/ etc / apache2 /),看看是否找到名为php
的文件。我不记得扩展名,但我认为它是.so
。
同时检查var/log/apache2/error.log
以查看是否有任何错误。
答案 1 :(得分:40)
"myMethod() has already been overridden here"
答案 2 :(得分:28)
对于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/
答案 3 :(得分:24)
打开文件
/etc/apache2/httpd.conf
并更改
#LoadModule php5_module libexec/apache2/libphp5.so
到
LoadModule php5_module libexec/apache2/libphp5.so
所以只需解开httpd.conf
答案 4 :(得分:5)
I found this to solve my related problem.我已将其添加到相关的<Directory>
部分:
<IfModule mod_php5.c>
php_admin_flag engine on
</IfModule>
答案 5 :(得分:5)
一个对我有用的不同答案。是的,要安装[sudo] apt-get install libapache2-mod-php5.X
答案 6 :(得分:3)
好吧,如果你已经尝试过上面或之前被告知过的事情(可能的原因)并且它仍然显示代码而不是执行它,那么有一件事你做错了没有&已经解决了。 您用来访问PHP代码的网址;有些人试图通过将.php文件拖到Web浏览器中来执行他们的PHP代码。这是错误的做法,可能导致这种问题。 如果您已将文件保存为&#34; test.php&#34;在C:// wamp / www文件夹中,您必须以这种方式访问此文件: 本地主机://test.php。 当你以这种方式访问它时会出现这种错误:localhost://wamp/www/test.php
希望我帮助那里的人。 O / 〜丹尼尔
答案 7 :(得分:3)
发布对我有用的内容可以帮助有人在路上,虽然这是一个不寻常的案例。
我设置了一个处理程序来强制我的web主机使用比默认版本更高版本的php。有5.1,但我想要5.6所以我有这个:
<FilesMatch \.php$>
SetHandler php56-cgi
</FilesMatch>
在我的.htaccess文件中。
当尝试在本地运行我的网站时,在那里导致PHP代码输出到浏览器。删除它解决了这个问题。
答案 8 :(得分:2)
您可以删除 .htaceess 文件,让系统创建一个新的(空白或基本)文件。可能是您添加的某些行是不正确的语句,或者其他内容导致问题。然后,您可以从旧的 .htaccess 文件中逐行添加,以查看导致问题的原因。
这对我有用。告诉机器不显示php扩展的行是我的问题( RewriteCond 和 RewriteRule )。我的旧 .htaccess 文件在共享服务器上工作得很好,但是当我切换到VPS时出现了这个问题。
答案 9 :(得分:2)
对于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
,则还应该阅读此书答案 10 :(得分:1)
将以下配置添加到async def shielded(coro):
ft = asyncio.ensure_future(coro)
shielded_ft = asyncio.shield(ft)
try:
await shielded_ft
except asyncio.CancelledError:
await ft
raise
/etc/apache2/apache2.conf
并通过<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
重新启动apache
答案 11 :(得分:1)
以上都不适用或对我没有帮助... PHP7,CentOS 6上的Apache Httpd 2.2
事实是,我在Apache之前安装了php(都是yum)。
确实,您可能在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
答案 12 :(得分:1)
感谢网络上的其他人提出他们的建议。按照上述步骤,我发现apache服务器无法在load
的{{1}}文件中开始报告语法错误。事实证明,php7.0和php7.1都已启用。
/etc/apache2/mods-enabled
再次正确呈现php。
答案 13 :(得分:1)
对我有用的是什么:
在活动的httpd.conf中,找到
<IfModule mime_module>
...
</IfModule>
缺少以下
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
重启apache后,正确解析.php文件。
答案 14 :(得分:1)
如果您是ubuntu用户,安装apache后必须在全新安装中运行以下命令
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
在我的情况下工作正常。
答案 15 :(得分:1)
如果模块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>
答案 16 :(得分:0)
我尝试了上面的许多解决方案,但是在我们的方案中,解决方法是安装fpm-module。
我们在php之前安装了httpd,这可能与该问题有关,但是要解决此问题,我们安装了以下内容:
这安装了php-fpm-7.2.11-4.module + el8.1.0 + 5443 + bc1aeb77.x86_64.rpm模块,然后通过以下方式启用该功能:
从那时起,我们将/etc/httpd/conf.d/php.conf保留为默认值,然后重新启动httpd
然后一切正常。
希望这会有所帮助,花费的时间比应该弄清楚的时间还要长。
答案 17 :(得分:0)
我最近升级了一个 centos 服务器以使用 php 8。
升级后 php 停止工作,apache 开始以文本形式为我提供 php 代码。
花了很长时间寻找没有更新的配置设置,我将其追踪到:
在/etc/httpd/conf.d
<IfModule mod_php7.c>
需要更改为:
<IfModule mod_php.c>
您可能会在其他地方看到 mod_php7
检查,这些检查可能会更新为 mod_php
变体,但这个绝对为我修复了它。
之后不要忘记重启服务器。
答案 18 :(得分:0)
对于PHP7.3 Apache2.4 Ubuntu 18.04,我必须执行:
$ a2enmod actions fastcgi alias proxy_fcgi
答案 19 :(得分:0)
这个solution为我工作。我清除了apache2并重新安装。清除并安装后发生了。如果是第一次安装,则不会遇到此问题。
答案 20 :(得分:0)
Apache显示php代码而不是执行已修复的问题
1。打开php5.6 conf或php7.x conf
#以下命令:
$ sudo vi /etc/apache2/mods-enabled/php5.6.conf
2。评论以下行
3。重新启动服务器
$ sudo服务apache2重新启动
4享受:)
答案 21 :(得分:0)
有时候,如果您有php版本冲突,则会发生 要解决这个问题,请按照以下步骤
第1步:安装了Yum列表| grep'php'
如果您有多个php版本,例如php 5.6和php 7.0,则会发生这种冲突
第2步:请删除**您的php版本**
第3步:然后重新启动apapche /etc/init.d/httpd restart
或service apache2 restart
答案 22 :(得分:0)
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
答案 23 :(得分:0)
以管理员身份运行Xampp(apache)。在谷歌浏览器类型:
localhost/<insert folder name here>/<insert file name>
即。如果您创建的文件夹是&#34; LearnPhp&#34;,则文件是&#34; chapter1.php&#34;然后输入
localhost/LearnPhp/chapter1.php
我在htdocs文件夹的xampp文件夹中创建了这个文件夹,当你下载xampp时会创建该文件夹。
答案 24 :(得分:0)
我遇到了同样的问题。当我运行php文件时,Web浏览器向我展示了php代码而不是执行它。我曾尝试多次:卸载/重新安装wampserver64,解决PHP / Apache设置/模块等问题。等待2天后:我意识到当我尝试通过按下默认组合“ctrl +”在记事本++中运行php文件时用于镀铬的alt + shift + R“。它试图在我的chrome的地址栏中执行我的php文件,如:“file /// C:/ wamp64 / www / bla / bla ..”。那是我的问题。我根据页面Configuring Notepad++ to run php on localhost?进行了更改。我的问题解决了。但是2天后......
答案 25 :(得分:0)
我遇到了同样的问题,这是由模块suphp
的Debian / Ubuntu默认配置引起的。它包含整个/ usr / share的suPHP_Engine off
,这导致php源显示在浏览器中。使用a2dismod suphp
停用是临时解决方案。
答案 26 :(得分:0)
在MAMP中运行$ _POST时也发生了这种情况。我的所有.ini和httpd文件都已正确设置。如果您正在进行表单处理并且您有一个html文档并将信息发布到运行$ POST的php formhandler,请确保您通过服务器从localhost运行html文件,而不仅仅是本地。
这是我运行html文档的一个快捷方式,只需单击我的目录中的html文件并在我的网络浏览器中启动,实际上检查你的表单中是否正在处理php,你必须运行你的html你的服务器。我忽略了一个非常简单的协议。
示例:
错误:file:///Applications/MAMP/htdocs/form/form.html
右:http://localhost:your port number/form/form.html
现在,点击提交按钮后,应该处理php