CakePHP菜鸟问题,在此服务器上找不到请求的URL / pages / andy

时间:2011-03-17 21:50:09

标签: php .htaccess cakephp apache2

我是第一次安装CakePHP,我在Ubuntu 10.04LTS上运行LAMP。我不仅是CakePHP的新秀,我也是Linux的新秀。我在网上找到了安装说明,我认为我已经正确设置了所有设置。当我去localhost时,我得到了默认的CakePHP页面,一切都是绿色的。

问题是当我在/ var / www / app / views / pages文件夹中创建名为andy.ctp的通用页面时,当我尝试转到localhost / pages / andy时,我得到一个404 NOT FOUND页面“在此服务器上找不到请求的URL / pages / andy。”

我确信我在初始设置上遗漏了一些东西,但我无法找到答案。我用谷歌搜索了这个错误,还没找到任何东西来帮我。以下是我的默认文件。如果您还需要查看其他内容,请与我们联系。感谢您的帮助!

.htaccess文件中是否有可能需要更改的内容?

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/app/webroot
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

2 个答案:

答案 0 :(得分:2)

让我们先尝试一些事情:

  1. 您是否在同一目录下安装了整个CakePHP软件包。我之所以这么说是因为我看到你有/var/www/app,而且蛋糕目录也必须在/var/www/之内。即使你有这些目录,我建议你将整个CakePHP包设置到另一个子目录,如/var/www/your_project/app。这将使您能够随着时间的推移轻松添加更多项目。此外,您可能希望将Document Root设置为主级目录(即/home/your_name/www/your_project,以便您可以更轻松地处理文件权限。

  2. 您是否启用了mod_rewrite?这是必需的蛋糕。进行谷歌搜索;有很多教程。

  3. 如果有任何这些工作,请告诉我。


    跟进:

    再次问好。

    如果您看到默认的CakePHP起始页面包含所有绿色通知(see this old screenshot),那么这意味着您对mod_rewrite或htaccess没有任何问题。但是,我重现了您在虚拟主机配置文件中执行的步骤,并发现了两个问题:

    1)当DocumentRoot指向顶级目录时,你将DocumentRoot指向/var/www/app/webroot,在本例中为/var/www/(即CakePHP最顶层的index.php所在的目录)。此外,请务必使用此指令:DirectoryIndex index.php

    2)您没有关闭<VirtualHost>标签;虽然这在S.O。实际上可能是错误的复制+粘贴。

    总的来说,尝试通过从几行开始来“调试”您的VirtualHost文件,这样您就不必担心错误配置。我将这几个用于本地机器中的任何项目,并且我已经在Apache下为Ubuntu运行了多个CakePHP项目。

    <VirtualHost dummysite.com:80>
    ServerName dummysite.com
    ServerAdmin myemail@gmail.com
    DocumentRoot "/home/yamir/Programming/Projects/dummysite"
    DirectoryIndex index.php
    LogLevel warn
    ErrorLog "/home/yamir/Programming/Projects/dummysite/logs/error.log"
    CustomLog "/home/yamir/Programming/Projects/dummysite/logs/access.log" combined
    </VirtualHost>

答案 1 :(得分:0)

你肯定打开了mod_rewrite吗?