【问题标题】:Joomla - File permissions & owner for a website under version control (svn)Joomla - 受版本控制(svn)的网站的文件权限和所有者
【发布时间】:2014-02-08 03:33:55
【问题描述】:

svn 下的joomla 项目中使用locally 的正确file owner 是什么?

当我的所有文件都归apache 用户所有时,我无法从svn 更新我的项目(并且我无法使用normal user 编辑这些文件)。
当我的文件归我的normal user 所有时,joomla administration (Information tab) 显示某些目录是read-only。我是否应该只将这些目录的所有者(pluginstmp...)更改为apache 用户,而让我的user 拥有的其他文件?

我必须在两个用户之间找到折衷方案(apache & normal user)。

【问题讨论】:

    标签: linux apache svn joomla file-permissions


    【解决方案1】:

    我做了完全不同的事情,因为这真的很痛苦,将文件从 Joomla 安装推回 repo。假设你是本地人,

    1. 将 /etc/passwd 中的 apache 或 www-data shell 从 bin/sh 更改为 bin/bash。
    2. 修复 www-data 的主目录(通常是 /var/www )的权限,以便 www-data 可以创建其 .svn 目录。这是由 # chown -hR www-data /var/www
    3. 完成的
    4. 作为 www-data 的根更改:# sudo su www-data
    5. 使用 svn 元文件转到 joomla 安装/文件夹
    6. 调用 svn info 或其他任何东西,以便它可以将 svn 凭据存储在 .svn 中
    7. 大功告成,现在可以在任意文件夹中通过 php/system svn update 调用

    我在这里 www.xappcommander.com 也为 Joomla 写了这篇文章,正是为了这个目的,它允许您在活动的 joomla 安装中更改代码,将更改推回到一个 repo,而没有替代方案的所有痛苦(sftp/ FTP)。通过它的外壳扩展,您只需编写#svn ci --message="whatever"。

    这在实时阶段也很有效,在 plesk 下 PHP 正在使用您的用户帐户运行,因此您可以跳过步骤 1-4。

    【讨论】:

      【解决方案2】:

      理想情况下,您应该为每个站点使用不同的用户,并为 svn/git 使用相同的用户。

      但假设这是不可能的,请记住 Joomla 需要 写入下面的文件夹。此外,如果没有图像的写入权限,您将无法上传图像。

      所以分配给 apache 用户的文件/文件夹列表是:

      • 管理员/缓存
      • 缓存
      • 日志
      • tmp
      • 配置.php
      • 图片

      所有其他文件都可以由 svn 用户拥有;但是,当您想从后端更新 Joomla 并安装新扩展时,您需要 chmod / chown。

      一种更简单的方法是仅将您的组件保留在 svn 下(您可以使用 svn 轻松地仅签出您想要的路径),其余的留给 apache。

      最后,考虑把你的svn用户和Apache放在同一个用户组,chmod为775。

      【讨论】:

      • 我会将目录的所有者(管理员、缓存...)更改为apache 用户。并将我的用户添加到与apache 用户相同的组中。最后还要把所有目录的权限改成775,文件改成664,对吗?
      • 是的,应该这样做,只要记住你最好编写一个 shell 脚本,因为你需要从前端运行更新,这会将属性重新分配给 apache 用户。
      猜你喜欢
      • 2014-09-13
      • 2018-02-20
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 2023-04-04
      • 2013-11-16
      • 1970-01-01
      • 2014-07-13
      相关资源
      最近更新 更多