【问题标题】:Browsers don't recognize PHP code浏览器无法识别 PHP 代码
【发布时间】:2015-02-28 23:00:33
【问题描述】:

我在 XAMPP 中为一个项目创建了一个虚拟主机,但由于某种原因,当我运行它时它会获取所有 PHP 代码。可能是什么问题?它加载 XAMPP localhost (localhost:80) 和我的 Zend localhost (localhost:8000) 就好了。 截图:http://i.imgur.com/pToiQ3j.png

我的 httpd-vhosts.conf

    # Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
##NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>

# Vhost for ZF2
Listen 8000
<VirtualHost *:8000>
        DocumentRoot "C:\ZendSkeletonApplication-master\public"
        <Directory "C:\ZendSkeletonApplication-master\public">
        AllowOverride All
        RewriteEngine On
#       SetEnv ZF2_PATH "/pathtozf2lib/zendframework/library"
        SetEnv APPLICATION_ENV development
        # You have to use Junction on Win XP or mklink to create a symbolic link and add a link to assests
        # For some Apache versions
        Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
 DocumentRoot "C:\codific\compudoc"
 ServerName compudoc
 ServerAlias compudoc
 <Directory "C:\codific\compudoc">
    Require all granted
 </Directory>
</VirtualHost>

我的 C:\Windows\System32\drivers\etc\hosts 文件

    # Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
127.0.0.1 compudoc

【问题讨论】:

  • 看起来 php 模块没有加载。再次检查 conf 以确保已加载 php 模块和 .php 文件的处理程序
  • 是的。似乎找不到PHP所在的目录。其他一切似乎都能找到它。
  • 如果您的实际文件读取为&lt;!--?,则应该是&lt;?php,然后?--&gt;?&gt; - 如果不是并且实际上是&lt;?,请确保启用短标签。
  • 再看你的 php 代码似乎没有被 php 标签包围,而只是被 html cmets 包围...在代码之前有一个&lt;?php,在 php 的末尾有一个?&gt;代码?
  • PHP 代码需要包装在&lt;?php?&gt; 中,以便Web 服务器对其进行解释。您所拥有的只是一个 HTML 注释,它恰好包含 可以 用作 PHP 代码的字符串。浏览器不会对此做任何事情,浏览器不会解释 PHP。浏览器将忽略 HTML 注释。

标签: php apache localhost virtualhost


【解决方案1】:

查看您的屏幕截图,您没有使用正确的左大括号...

【讨论】:

  • 代码不是我的。我的工作是重新设计网站
  • 嗯,你提供的东西是非标准的 php 东西,而且看起来也很糟糕。
  • apache 不会将 .php 脚本的 &lt;? 修改为 &lt;!--?
  • @MarcB 它可以,没有完整的 apache conf 很难说。也许该站点是通过更改 php.ini 中的打开/关闭标签的配置完成的。
  • @LuckyBurger 代码很老了,我同意它写得很糟糕,没有框架,它就是一堆文件
【解决方案2】:

您只需从第一行删除 &lt;!--? 并从最后一行删除 --?&gt; .. 请使用 &lt;?php?&gt; 而不是旧的 .. 干杯...

【讨论】:

    【解决方案3】:

    似乎编写此代码的人使用了短标签,这就是它不起作用的原因,哈哈

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    相关资源
    最近更新 更多