本地开发,Apache vs Developer - 文件权限

Posted

技术标签:

【中文标题】本地开发,Apache vs Developer - 文件权限【英文标题】:Local Development, Apache vs Developer - file permissions 【发布时间】:2010-11-10 04:39:09 【问题描述】:

我有兴趣使用灯堆栈设置本地 php 测试/开发环境。 我想为 eclipse 使用 php 插件(我通常使用 java 并且对 eclipse 非常熟悉)。

首先,直接在 apache /var/www 目录中本地开发我的站点是否正确? 如果没问题,有人可以描述如何正确设置 www 目录的权限,以便 eclipse(不是以 root 身份运行)有权读取/修改该目录中的 php 文件吗?

这仅限于本地开发,所以我认为安全性不是那么高的问题。

【问题讨论】:

【参考方案1】:

没关系,我个人把它放在/var/www/下,放在www-data组下,把我的用户名放在www-data组下。

您将自己添加到组中:

sudo usermod -a -G www-data <username>

将组更改为 www-data 以防万一:

sudo chgrp -R www-data /var/www

获取新文件以继承权限(750)

sudo chmod -R 2750 www-data /var/www

有些人喜欢把它放在 /home/username/www/ 中,这样会更容易。

【讨论】:

所以你说你在 /var/www 中创建了一个 www-data 目录?另外,我将如何将其放入/home/username/www/? php 解释器还会在此处提取 php 文件吗? 不,他让你成为“apache组(www-data)”的成员,然后给/var/www目录适当的所有权和权限,让你作为@的成员工作987654325@组。 您还需要确保 Apache 以该组中的用户身份运行。【参考方案2】:

绝对可以直接在您服务器的 /var/www/ 目录中处理您的网站。但是,最好设置一个本地环境(使用类似XAMPP 的东西)在开发机器上编辑您的网站,然后在准备好时将其上传到您的实时服务器。这样您就不会暂时将任何错误或错误引入实时站点。

【讨论】:

【参考方案3】:

如果您喜欢将其放在其他位置,例如 Eclipse 工作区目录,您可以更改 Apache 的 DocumentRoot(或创建一个具有不同 DocumentRoot 的 VirtualHost)。编辑 Apache 的 httpd.conf 文件,并在最后添加:

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName mytestserver.localhost
  DocumentRoot /path/to/project/dir
</VirtualHost>

*s 可以保持原样;这意味着无论您的 IP 地址如何,它们都可以正常工作。

ServerName 可以是任何你想要的,只要你在 /etc/hosts 文件中添加相应的条目,例如:

127.0.0.1 mytestserver.localhost

我经常让我所有的本地服务器都以“.localhost”结尾,就像约定一样。

最后,重启 Apache。然后您可以通过http://mytestserver.localhost 访问服务器。根据需要重复使用多个虚拟主机,每个虚拟主机指向不同的项目。

只要每个人都可以读取文件(通常是默认设置),就可以了。

【讨论】:

我也会将这一点与 KahWee 的想法结合起来,让您自己从 www-data 组中脱颖而出。这样您就不需要对目录拥有如此宽松的权限。 这似乎正是我所需要的。请原谅我的无知,但你能否详细说明我将如何填写这个假设我正在本地开发(即我将为 NameVirtualHost 等填写什么)?谢谢 我想我要问的是那个虚拟主机,我将如何在网络浏览器中访问这些文件?之前我会去localhost,但现在呢?

以上是关于本地开发,Apache vs Developer - 文件权限的主要内容,如果未能解决你的问题,请参考以下文章

VS轻松开发Node.js应用

本地主机上 ColdFusion 9 和 ColdBox 中的 NullPointerExceptions

developer express怎么用

Lightswitch无法连接到本地开发的数据库(VS 2012)

VS2017+QT开发COM组件: 本地与远程附加到进程调试DLL

VS2017+QT开发COM组件: 本地与远程附加到进程调试DLL