Linux apache 开发配置

Linux apache 开发配置

最近重新安装了我的系统,并且到了需要 apache 和 php 的时候。

我已经搜索了很长时间,但我不知道如何为开发人员计算机配置 apache 的最佳方式。计划很简单,我想安装 apache 2 + mysql 服务器,这样我就可以开发一些 php 网站。

不过我不想安装 lamp,只想安装 apache2、php5 和 mysql。我一直在寻找答案的问题是 /var/www/ 文件夹的权限。我尝试使用 chown 命令将其设为我的文件夹,然后使用 chmod -R 755 /var/www。大多数方法都可以,但例如 fwrite 不起作用,因为我需要向所有人授予写入权限,除非我将全局 umask 更改为 000,否则我不确定我能做什么。

简而言之:我想在不使用 lamp 的情况下安装 apache2、php5、mysql-server,但要配置成可以打开 netbeans、在 /var/www/ 中以 root 身份启动项目并运行每个函数而不会出现权限错误。有人有这方面的经验或解决方法吗?

额外的:

  • 操作系统:Ubuntu 10.04
  • 架构: x86_64

答案1

我已经找到答案了,所以我会在这里发布

首先以 root 身份登录使用:

sudo su

添加一个新组,该组的所有用户都可以控制/var/www/文件夹

groupadd www-pub

像这样将您自己的用户名添加到此组

usermod -a -G www-pub username

现在更改 /var/www/ 文件夹的所有者,作为所有者,我不会以 root 身份,而是以 www-data 身份,并将组更改为刚刚创建的组:www-pub

chown -R www-data:www-pub /var/www/

我们仍然需要更改权限,以便我们可以在 /var/www/ 上创建文件。如果您不知道“2”是什么意思,它代表 SGID,有关此信息可以在以下位置找到http://www.codecoffee.com/tipsforlinux/articles/028.html

chmod 2775 /var/www/

如果 /var/www/ 中有文件,请像这样更新权限

find /var/www/ -type f -exec chmod 664 {} \;
find /var/www/ -type d -exec chmod 775 {} \;

最后将文件 /etc/profile 中的 umask 更改为 002,umask 应该是该文件的最后一行

www-data 信息:

Apache 以用户 www-data 的身份运行。使用通用 www-data 用户而不是特定的“apache”,允许所有为 Debian 打包的 Web 服务器共享文件归 www-data 所有的文件根目录。

答案2

你最大的问题是你坚持处理 /var/www。

启用用户目录要容易得多(参见用户目录) 并让 apache 从你的主目录提供内容,就像在大多数托管服务上一样。

答案3

另一个解决方案可能是 ACL。

在现代 Linux 中,您可以使用 setfacl 和 getfacl 在旧的用户:组:其他模型之上添加 ACL。

不过,您需要在挂载文件系统时启用扩展 ACL 才能使用 ACL。这可以通过重新挂载实时完成。

除其他事项外,ACL 还允许在目录上设置默认 ACL。即,您可以在目录上设置默认 ACL,并且该 ACL 将应用于在该目录中创建的每个对象。

相关内容