gii 404错误。无法使用Gii

时间:2012-09-19 19:50:17

标签: yii installation http-status-code-404 gii

http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold教程之后,它提到将一些代码添加到/blog/protected/config/main.php

return array(
    ......
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),

    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'pick up a password here',
        ),
    ),
);

这是我的main.php代码的最后几行,你可以看到,我已按照说明进行操作......

        'errorHandler'=>array(
            // use 'site/error' action to display errors
            'errorAction'=>'site/error',
        ),
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        // this is used in contact page
        'adminEmail'=>'example@example.com',
    ),
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),
    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'pick up a password here',
        ),
    ),
);

然而,当我访问index.php?r = gii时,我收到以下错误:

Error 404 Unable to resolve the request "gii".

仅供参考 - 我使用的是1.1.12版本,这是最新的稳定版本。

更新

我删除了所有内容并重新开始,现在正在运行。必须做一些愚蠢的途中

3 个答案:

答案 0 :(得分:0)

您已经在第21行http://pastebin.com/x3zWWLtm处拥有配置数组的'modules'键。移除您手动添加的密钥'modules',并在第21行取消注释'gii'

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
        // ...

        'modules'=>array(
                // uncomment the following to enable the Gii tool
                /*
                'gii'=>array(
                        'class'=>'system.gii.GiiModule',
                        'password'=>'Enter Your Password Here',
                        // If removed, Gii defaults to localhost only. Edit carefully to taste.
                        'ipFilters'=>array('127.0.0.1','::1'),
                ),
                */
        ),
        // ...
    );

我刚刚下载了最新的yii并创建了一个Web应用程序:

f0t0n@lotus:~/public_html/localhost/yii$ php framework/yiic webapp ../yiiapp

然后取消注释gii模块的行,包括在我提到的配置中,并且它工作正常:http://localhost/yiiapp/index.php?r=gii

答案 1 :(得分:0)

我遇到了同样的问题,我只是暂时在config / main.php中评论了数组的内容,即rules键的值:

'urlManager'=>array(
    'urlFormat'=>'path',
    'rules'=>array(/*
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>'=>'<controller>/index',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>'*/
    ),
    'showScriptName'=>false,
),

然后我访问gii,生成我的控制器并查看并最终取消注释这些行。

答案 2 :(得分:0)

嗯,您是否尝试过其他uri,例如:localhost/site/error

如果获得404,那么它是 .htaccess 问题,请尝试将以下代码保存在根目录下的 .htaccess 文件中:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule ^.*$ /index.php [L]