使用http://www.example.com/controller时找不到cakePHP文件

时间:2011-11-26 21:28:05

标签: cakephp

我正在尝试在我的localhost中安装cakePHP。我使用linux mint,Apache,MySQL

在/ etc / apache2中,有'conf.d'文件夹,'mods-available','mods-enabled','ports.conf','sites-available'和'sites-enabled'

由于我的DocumentRoot是/ var / www但是,我想将cakePHP保存在/ home / works /中。 所以,

(1。)我在/ etc / apache2 / sites-enabled中创建了一个文件名'cakephp'。

(2。)然后,写

<VirtualHost *:80>
  DocumentRoot /home/works/cakephp/app/webroot
  ServerName local.ttt.cakephp
</VirtualHost>

(3。)之后我编辑文件/ etc / hosts

127.0.0.1       localhost
127.0.0.1   local.ttt.cakephp

(4。)尝试网址:http://local.ttt.cakephp

结果:它正在运行,CSS也被加载

(5。)我试图做一个简单的控制器名称'测试'。 然后,尝试网址:http://local.ttt.cakephp/Tests

结果:显示

Not Found
The requested URL /Tests was not found on this server.
Apache/2.2.17 (Ubuntu) Server at local.ttt.cakephp Port 80

我的解决:
(1.)在apache2 / mods-available中检查文件rewrite.load 它有LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so而没有评论#

(2。)将文件apache2 / sites-available / default中的'AllowOverride None'更改为'AllowOverride All' 这将是

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

结果:它无效,仍显示“未找到”页面。

有人知道我的错误吗? 非常感谢你。

2 个答案:

答案 0 :(得分:0)

不应该更改目录路径:

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

<Directory /home/works/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

答案 1 :(得分:0)

1。)将您的Directory标记移动到VirtualHost标记内:

<VirtualHost *:80>

    DocumentRoot /home/works/cakephp/app/webroot
    ServerName local.ttt.cakephp

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

</VirtualHost>

2.。)将您的目录标记的路径更改为您的DocumentRoot路径:

    <Directory /home/works/cakephp/app/webroot/>

3。)最后你应该有这样的东西:

<VirtualHost *:80>

    DocumentRoot /home/works/cakephp/app/webroot
    ServerName local.ttt.cakephp

    <Directory /home/works/cakephp/app/webroot/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

4.。这都假定mod_rewrite已启用。

我很确定Mint有a2enmod命令,所以你可能想要使用它:

sudo a2enmod rewrite

5.确保重启apache。

sudo service apache2 restart

sudo /etc/init.d/apache2 restart

希望这适合你。