使用Gii,Yii的Linux权限问题

时间:2014-05-02 19:49:01

标签: linux yii permissions gii

当我尝试使用Gii Controller Generator时,我得到:

file_put_contents(.../gii-1.1.14/ControllerCode.php): failed to open stream: Permission denied 

我已经创建了一个Yii演示项目作为根,所以我递归地将yiidemo(项目文件夹)所有者和组更改为“网络数据”。我保留了权限不变。这没有用。

然后我以递归方式将此文件夹中的权限更改为777 。一切顺利。

我为目录/文件尝试过不同的组合(例如dir / file:755/644),但都没有。我知道777不是最好的解决方案。 如何为此案例找到最佳工作权限组合?

1 个答案:

答案 0 :(得分:4)

使用Gii时,它会在受保护的目录中创建新文件。换句话说,php和apache需要写入受保护的目录。

默认情况下,出于安全原因,Gii配置为只能在开发(localhost)上访问。因此,它应该只安装在开发机器上。因为它可以在应用程序中生成新的PHP脚本文件,所以我们应该充分注意其安全措施(例如密码,IP过滤器)。 如果要在其他可信任的计算机上访问它,可以配置Gii模块,如。

return array(
......
'modules'=>array(
    'gii'=>array(
        'class'=>'system.gii.GiiModule',
        'password'=>'pick up a password here',
        // 'ipFilters'=>array(...a list of IPs...),
        // 'newFileMode'=>0666,
        // 'newDirMode'=>0777,
    ),
),
);
  

因为Gii可能会在现有代码文件中生成并保存新代码文件   应用程序,我们需要确保Web服务器进程具有   获得适当的许可。上面的GiiModule :: newFileMode和   GiiModule :: newDirMode属性控制新文件和   目录应该生成。

获取权限,您可以使用以下方式更改受保护的所有者:

$ sudo chown yourUserName:www-data path/to/protected
$ sudo chmod 775 path/to/protected -R

read more about gii here