首页 文章

Apache显示PHP代码而不是执行

提问于
浏览
77

我最近一直在尝试在我的计算机上安装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"

20 回答

  • 0

    I found this to solve my related problem.我将其添加到相关的 <Directory> 部分:

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

    一个不同的答案对我有用 . 是的,安装 [sudo] apt-get install libapache2-mod-php5.X

  • 0

    尽管这是一个不寻常的案例,但发布对我有用的内容可以帮助有人在路上 .

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

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

    在我的.htaccess文件中 .

    当试图在本地运行我的网站时,在那里导致PHP代码输出到浏览器 . 删除它解决了这个问题 .

  • 0

    好吧,如果你已经尝试了上面或之前被告知的事情(可能的原因)并且它仍然显示代码而不是执行它,那么有一件事你做错了还没有解决 . 您用来访问PHP代码的URL;有些人试图通过将.php文件拖到Web浏览器中来执行他们的PHP代码 . 这是错误的做法,可能导致这种问题 . 如果您在C:// wamp / www文件夹中将文件保存为“test.php”,则必须以这种方式访问此文件:localhost://test.php . 当你以这种方式访问它时会出现这种错误:localhost://wamp/www/test.php

    希望我帮助那里的人 . o /〜丹尼尔

  • 5

    你必须启用PHP!检查Apache目录中的文件夹 mods-enabled (默认值:/ etc / apache2 /),查看是否找到名为 php 的文件 . 我不是't remember the extension but I think it' s .so .

    同时检查 var/log/apache2/error.log 以查看是否有任何错误 .

  • 0

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

    sudo apt-get install php libapache2-mod-php
    sudo a2enmod mpm_prefork && sudo a2enmod php7.0
    sudo service apache2 restart
    
  • 22

    对于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/

  • 0

    打开文件

    /etc/apache2/httpd.conf

    并改变

    #LoadModule php5_module libexec/apache2/libphp5.so
    

    LoadModule php5_module libexec/apache2/libphp5.so
    

    所以只需在 httpd.conf 中解开PHP模块的负载

  • 1

    您可以删除.htaceess文件,让系统创建一个新的(空白或基本)文件 . 可能是您添加的某些行是不正确的语句,或者其他内容导致问题 . 然后,您可以从旧的.htaccess文件中逐行添加,以查看导致问题的原因 .

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

  • 3

    如果模块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>
    
  • 2

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

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

    在我的情况下工作正常 .

  • 1

    什么对我有用:

    在活动的httpd.conf中,找到

    <IfModule mime_module>
    ...
    </IfModule>
    

    它缺少以下内容

    AddType application/x-httpd-php .php
    AddHandler application/x-httpd-php .php
    

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

  • 25

    感谢网络上的其他人提出的建议 . 按照上述步骤,我发现apache服务器无法在 /etc/apache2/mods-enabled 中的 load 文件中开始报告语法错误 . 原来php7.0和php7.1都启用了 .

    a2dismod php7.0
    systemctl restart apache2
    

    和PHP再次正确呈现 .

  • 70

    以上都没有应用或为我工作... PHP7,CentOS 6上的Apache Httpd 2.2

    事实上,我安装(所有与yum)PHP BEFORE Apache ...你必须做相反的事情:总是首先安装Apache,然后安装PHP,然后它工作......确实,你很可能在 /etc/httpd/modules/ 中缺少 libphp7.solibphp7-zts.so

    无论如何在没有安装PHP的情况下我能够恢复 . 我确实在 /etc/httpd/conf/httpd.conf 中添加了魔术线: AddType application/x-httpd-php .php 然后运行: yum install php php-mysql

  • 5

    在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

  • 3

    我遇到了同样的问题,由模块 suphp 的Debian / Ubuntu默认配置引起 . 它包含整个/ usr / share的 suPHP_Engine off ,这导致php源显示在浏览器中 . 使用 a2dismod suphp 取消激活是临时解决方案 .

  • 1

    我有同样的问题 . 当我运行一个php文件时,Web浏览器向我展示了php代码而不是执行它 . 我尝试了很多次:卸载/重新安装wampserver64,解决PHP / Apache设置/模块等问题 . 等待2天后:我意识到当我尝试在记事本中运行php文件时按下默认组合"ctrl + alt + shift + R" for chrome . 它试图在我的chrome的地址栏中执行我的php文件,如:"file///C:/wamp64/www/bla/bla.." . 那是我的问题 . 我根据页面Configuring Notepad++ to run php on localhost?进行了更改 . 我的问题解决了 . 但是2天后......

  • 1

    以管理员身份运行Xampp(apache) . 在谷歌铬类型:

    localhost/<insert folder name here>/<insert file name>

    即如果您创建的文件夹是“LearnPhp”,则文件为“chapter1.php”,然后键入

    localhost/LearnPhp/chapter1.php

    我在htdocs文件夹的xampp文件夹中创建了这个文件夹,当你下载xampp时会创建该文件夹 .

  • 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
    
  • 1

    有时如果你有PHP版本冲突它发生为了克服这一点,请按照以下步骤

    第1步:安装百胜列表| grep'php'

    如果你有像php 5.6和php 7.0这样的多个版本的php,那么这种情况就会发生

    第2步:yum删除你的php版本

    第3步:然后重启apapche /etc/init.d/httpd restartservice apache2 restart

相关问题