Php VIrtualHost选项返回站点文件夹的索引

Php VIrtualHost选项返回站点文件夹的索引,php,apache,cakephp,virtualhost,virtual-hosts,Php,Apache,Cakephp,Virtualhost,Virtual Hosts,我不知道为什么会发生这种情况,因为我对Apache的了解不多。下面是我的虚拟主机的副本 如果这对如何让它工作有任何额外的帮助,我将尝试运行一个CakePHP站点。我知道该站点本身没有问题,因为我在另一个位置管理代码,可以通过Apache在本地运行 <virtualhost *:80> DocumentRoot "C:/sites/sitename" ServerName dev.sitename.com ErrorLog "logs/sitename.com-

我不知道为什么会发生这种情况,因为我对Apache的了解不多。下面是我的虚拟主机的副本

如果这对如何让它工作有任何额外的帮助,我将尝试运行一个CakePHP站点。我知道该站点本身没有问题,因为我在另一个位置管理代码,可以通过Apache在本地运行

<virtualhost *:80>
    DocumentRoot "C:/sites/sitename"
    ServerName dev.sitename.com
    ErrorLog "logs/sitename.com-error.log"
    CustomLog "logs/sitename.com-access.log" common


    <directory "C:/sites/sitename">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order Allow,Deny
        Allow from all
    </directory>
</virtualhost>

DocumentRoot“C:/sites/sitename”
ServerName dev.sitename.com
ErrorLog“logs/sitename.com error.log”
CustomLog“logs/sitename.com access.log”通用
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融

我在Apache2.0和Win7sp1上运行这个

更新

我从来没有找到真正的解决办法使用我的路线。我下载了一份新的WAMP副本,很快就可以启动并运行所有内容,没有问题。

为了防止apache显示目录列表,您需要禁用
索引。此外,最好禁用“多视图”,因为这将启用内容协商,这可能会产生不必要的副作用

将选项更改为

 Options -Indexes FollowSymLinks
然后,检查
.htaccess
文件是否存在于webroot(
C:/Sites/Sitename
)中,因为该文件用于启用mod_重写

其他指针/提示 首先,确保
DocumentRoot
指向应用程序的正确目录

CakePHP的标准目录结构如下所示

app
   /Config
   /Controllers
   /Views
   ......
   /webroot
lib
   /Cale
plugins
DocumentRoot
应该指向“app/webroot”目录,其中包含所有“public”文件

将虚拟主机中的路径/目录更改为该目录,然后重新启动Apache

如果您仍然收到403错误,请将您在浏览器中访问的URL更改为此

http://mywebsite.com/index.php

如果这样做有效,请检查
.htaccess
文件是否存在于该目录中,并且您的Apache中是否安装了
mod_rewrite

检查您是否正在运行Ubuntu。

根据“thaJetzah”的回答(抱歉,现在还不能评论:)

403 Forbidden比拥有文件夹的索引要好,因为现在您可以看到logs/sitename.com-error.log日志,希望它能告诉您为什么会给出403

只是为了确保:index.php位于文件夹“C:/sites/sitename”中


如果您不能像这样隔离错误,那么当您尝试访问该页面时,最好在这里发布error.log的输出,它将为您提供403。

我在Apache 2.0和Win7sp1@theJeztah
-索引
将我带回了我的原始版本…403禁止。我还看到您删除了
多视图
。由于我不确定这是什么,我是否也应该删除它?它不会修复403禁止。如果不存在“索引”文件,也会显示403错误。我将尝试添加一些额外的hints我已经尝试将DocumentRoot直接指向app/webroot文件夹,但它仍然给了我403错误。我还将/index.php放入url中,并访问了直接文件(就像我使用目录索引时一样)。是的,我实际上意识到我没有打开mod_rewrite,但我已经打开了它。我现在收到以下错误<代码>[Sun Apr 21 15:56:23 2013][error][client 127.0.0.1]规则禁止的目录索引:C:/sites/sitename/app/webroot/
当我转到/index.php时,我得到的是实际文件的文件输出,而不是该文件的服务器解释。windows中是否有特定的文件/文件夹权限我需要授予Apache才能使其工作?另外,您的Apache配置中也没有启用PHP(mod_PHP)。谢谢@M-z,我当时不在城里,在我的“答案”中添加了一些额外的提示
[Sun Apr 21 14:58:35 2013][error][client 127.0.0.1]规则禁止的目录索引:C:/sites/sitename/app/webroot/
[Sun Apr 21 14:58:36 2013][error][client 127.0.0.1]规则禁止的目录索引:C:/sites/sitename/。这是一个很好的建议,但根据他使用的路径(C:/sites/sitename),您可以理解他正在Windows上运行。(他还将其添加为问题下方的注释:“我正在Apache2.0和Win7sp1上运行此程序。”