【问题标题】:Web Process Permissions on Yii / LinuxYii / Linux 上的 Web 进程权限
【发布时间】:2012-07-14 07:11:59
【问题描述】:

我是个菜鸟,在 AWS 上学习 Yii 教程。到目前为止,我已经能够启动并运行所有内容 - 包括 mysql 连接。但现在我正在使用 Gii 代码生成工具来帮助创建一些模型类。这样做时,我收到以下错误:

generating models/User.php
            Unable to write the file '/var/www/html/blog/protected/models/User.php'.
done!

文档还告诉我:

Info: Because the code generator needs to save the generated code into files, it is
required that the Web process have the permission to create and modify the corresponding
 files. For simplicity, we may give the Web process the write permission to the whole
 /www/blog directory. Note that this is only needed on development machines when using Gii.

这对我来说很有意义,并且我理解 Linux 权限的基本逻辑应用于用户和组......但不适用于进程。有人可以向我指出如何授予 Gii 进程对 webroot(在我的情况下为:/var/www/html/blog/)目录的写入权限吗?

【问题讨论】:

  • 想补充一点,我已经阅读并理解在生产服务器上运行 Gii 的危险。但是,config/main.php 文件中的 ip 过滤器设置被设置为只允许从我的公共 IP 地址运行 Gii。所以运行一个实时的 AWS 实例(而不是 WAMP localhost)似乎仍然是安全的。
  • 进一步更新:我犯了一个错误,在没有正确理解的情况下尝试快速修复并做了... chmod -R 0644 /var/www/html/blog/ ...我无法访问现在页面,这意味着我已经关闭了应用程序。 ...帮助!!
  • 设置755。 “进程”不需要权限,脚本需要,在本例中为Gii。但是,如果 apache 对文件夹具有读/写/执行访问权限 (7),它应该可以工作,前提是您在 Gii 配置中添加您的 IP。

标签: linux permissions yii gii


【解决方案1】:

我授予所有用户递归读取、写入和执行 webapp 文件的权限。

$sudo chmod -R og=rwx webapp_folder

并解决了权限问题,但这可能不是最好的方法。

【讨论】:

  • 最好将组更改为apache组(通常是'www-data'或'www')并在那里给组写权限
  • 无论你希望完成什么,给每个人写权限都是错误的。
  • 只需授予 Gii 所需目录的权限即可。 sudo chmod -R og=rwx controllers models views
【解决方案2】:

Gii 使用由网络服务器用户生成的进程来读取和写入文件。正是这个用户需要写入文件的权限。在 Debian/Ubuntu 上,用户是 www-data。检查它适用于您的操作系统并授予该用户在该文件夹中的写入权限。

【讨论】:

  • 正如另一个答案中提到的,www-data 通常是组(也许也是名称?)所以通过将文件夹添加到该组就足够了
【解决方案3】:

在您的 httpd.conf 文件中有以下几行:

#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon

httpd 的用户和组是“守护进程”。现在在终端中输入以下命令:

chown -R daemon:daemon /path/to/htdocs/directory

有时这个命令必须在type之后执行

sudo su

现在 Gii 可以使用 chmod 775 权限将文件写入受保护的文件夹

【讨论】:

    【解决方案4】:

    仅供参考,如果命令文件夹或由命令创建的目录,如您可以写入文件用户浏览器,反之亦然...但要访问 yii 的写入权限..

    关注这个

    sudo chmod -R 0777 your_project_name/
    

    【讨论】:

    • 文字没有任何意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2013-08-02
    • 2012-11-13
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多