为什么Apache会将CakePHP .ctp文件作为HTML提供?

时间:2011-08-08 21:30:19

标签: apache cakephp

我将在II6上100%工作的网站移动到本地WAMP安装,apache 2.2。两者都使用PHP 5.2和相同版本的cake(基本www目录中的完全相同的文件集)。当我尝试加载我的'/'页面(重定向到登录页面)时,我得到了这个:

charset();?> css('riverstone');?>
renderElement('layout/header_menu');?> renderElement('layout/header_logo');?>
check('Message.flash')) $session->flash(); print $content_for_layout; ?>
renderElement('sub_menu/'.$submenu, array('vars'=>$this->viewVars)):'';?>

生成页面的代码是这样的(从default.ctp剪切)。

    <?=$html->charset();?>
    <link rel="icon" href="<?=$this->webroot;?>favicon.ico" type="image/x-icon" />
    <link rel="shortcut icon" href="<?=$this->webroot;?>favicon.ico" type="image/x-icon" />
    <?=$html->css('riverstone');?>
    </head>
<body class="<?=!$submenu?'wide':''?>">
    <div id="container">
        <div id="header">
            <?=$this->renderElement('layout/header_menu');?>
            <img src="/img/ajax.gif" alt="Loading" style="position:absolute;top:32px;padding-left:5px;display:none;" id="ajax_icon"/>
            <?=$this->renderElement('layout/header_logo');?>
            <h2><?=isset($mainpage) ? $mainpage : $title_for_layout;?></h2>
            <h3><?=$subpage;?></h3>
        </div>
        <div id="content">
            <div id="content-main">
            <script src="/js/jquery-1.4.2.minpacked.js" type="text/javascript" charset="utf-8"></script>
            <?
            if ($session->check('Message.flash')) $session->flash();
            print $content_for_layout;
            ?>
        </div>
        <div id="sub-menu"><ul><?=!empty($submenu)?$this->renderElement('sub_menu/'.$submenu, array('vars'=>$this->viewVars)):'';?></ul></div>

如果您查看页面的来源,它只是.ctp文件中的原始文本,并且正在阅读

资源我发现Apache甚至不能“看到”ctp文件,它应该全部由蛋糕处理,但不建议在任何地方进行额外的配置;我的重写工作正常(蛋糕测试页在我移动实际网站之前工作)。我尝试将Apache中的文档根目录设置为/ www以及/ www / app / webroot,但两者都有相同的问题。

1 个答案:

答案 0 :(得分:2)

您需要在服务器上启用php短标记。