如何配置权限以允许 gedit、apache 和 IDE 一起使用?

如何配置权限以允许 gedit、apache 和 IDE 一起使用?

我使用普通的 Ubuntu Desktop 11.04 并使用 lamp-server 安装了我的灯堆栈。我正在尝试使用 Netbeans 作为我的 IDE。

目前,所有虚拟主机都在运行/var/www/vhostname- 但由于我没有配置任何组或权限,如果我尝试通过 Netbeans 打开任何文件,它没有写入权限。

如何正确设置权限(或配置 Apache 或 Netbeans)以便:

  • 由 php 脚本创建的文件可以rw由 Netbeans
  • Netbeans 创建的文件可以rw由 Apache创建

我尝试chown对我的用户/组授予 Netbeans 写入权限,但 Apache 没有写入权限。

注意:这纯粹是用于开发机器——不在生产中使用,而且我是这个盒子上的唯一用户。

更新

我曾经使用我标记为已接受的答案中的方法,但现在我做了一些更简单的事情:

  1. 我将 Apache 设置为以我的用户和我的组身份运行(这可以在 httpd.conf、apache2.conf 或 envvars 中完成,具体取决于您的发行版)
  2. 我 chown /var/www 给我的用户和组

瞧,Apache 具有读/写访问权限,而我在处理项目时也具有读/写访问权限。

答案1

我建议做的大部分是在询问 Ubuntu 问题中描述

对于这种特殊情况,我将安装 suPHP,简而言之,它允许您以 Apache 下的用户身份执行 PHP 脚本。

通过执行以下操作:

sudo chown -R youruser:youruser /var/www
find /var/www/ -type d -exec chmod 0755 {} \;
find /var/www/ -type f -exec chmod 0644 {} \;

安装suphp-commonlibapache2-mod-suphp这个ppa什么是 PPA?如何使用它们?

禁用mod_php5和启用mod_suphp

sudo a2enmod suphp
sudo a2dismod php5

更新您的虚拟主机以在其底部包含此行:

suPHP_UserGroup youruser youruser

替换youruser为用于在服务器上编辑文件的用户。重新启动阿帕奇。

从此时起,Apache 将执行您的用户的所有 php 脚本,这意味着它们可以由您的用户/组拥有,并且无需使用疯狂的权限,比如 777。由于一切都以您的用户身份运行,因此 php 脚本创建的所有文件也将归您的用户所有!使用 suPHP 还可以做许多其他很酷的事情;然而,听起来这就是您开始所需的全部内容。

答案2

您需要rw由其他人(不仅仅是组和所有者)创建文件。应该注意的是,这样做可能会存在安全问题,但我将chown文件夹返回给 Apache 用户/组,然后chmod o+rw在文件夹上使用以允许 Netbeens 读取/写入文件。我还没有测试过,但它应该有效。如果您更喜欢位掩码,我相信chmod 766在文件夹上会达到相同的结果。

答案3

将组设置/var/www/vhostnameapache递归。将您自己添加到apache群组中。将权限设置var/www/vhostname为 775。

chown -R apache /var/www/vhostname
chmod -R 775 /var/www/vhostname
usermod -a -g apache $USERNAME

这将确保您(以及apache组中的其他人,例如 Apache)可以写入服务器目录,但其他人不能。它还将确保失控的脚本无法在您的主目录上写入乱码,或者破解的脚本不能,例如,echo PATH=/path/to/evil/script/directory:$PATH >> ~/.bashrc

相关内容