2019独角兽企业重金招聘Python工程师标准>>>
写此文是对自己的一种督促,也是对学习过程的一个记录。 先说一下对YII的第一感觉:封装极好,好像使用很方便,工具插件很多,可以很方便的开发一套mvc站点。 为啥会有这样的感觉?是因为我之前接触到的框架都是更贴近原生,代码极简,只保留核心模块,大部分功能都要自己动手来写。此前一直认为php框架也就是解决了一些基本路由,数据库处理和视图生成的功能。学习Yii之后才发现,框架其实可以做的很方便,代码开发效率可以更高,由此可见此前的自己还是太井底之蛙了! 最后,附上自己了解到的一个小问题,并以此文为开始,记录自己的Yii学习之旅。
使用Gii模块,报403错误
Forbidden (#403)
You are not allowed to access this page.
The above error occurred while the Web server was processing your request.
Please contact us if you think this is a server error. Thank you.
如果出到以上的错误,请先确认你的配置是否是正确的。
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
];
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
];
}
原始 的配置是这样的,如果你的 使用的是本地的服务器的话也就是localhost,则不会存在问题。
如果你使用的是远程服务器或者本地虚拟机的话,就会出现以上的错误提示了 详细分析得知,是Gii做了默认IP限定了 源代码如下:
namespace yii\gii;
use Yii;
use yii\base\BootstrapInterface;
use yii\web\ForbiddenHttpException;
class Module extends \yii\base\Module implements BootstrapInterface
{
public $controllerNamespace = 'yii\gii\controllers';
public $allowedIPs = ['127.0.0.1', '::1'];
。。。。。。
源代码做了限定了 只允许 127.0.0.1是可以访问的其他都是不行的。
所以解决以上的问题 需要修改配置如下:
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
];
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1', '192.168.*.*', '192.168.178.20'],
];
}
这样在 allowedIPs 数组里面的IP全部可以访问了