【问题标题】:Joomla Directory Permissions Unwriteable...But they are!Joomla 目录权限不可写......但他们是!
【发布时间】:2011-01-01 22:19:05
【问题描述】:

我正在尝试将 Joomla 站点从我的开发服务器移到客户端的实时服务器上。我正在安装一个新的 Joomla 副本。 我完成了安装,将新站点的配置代码粘贴在一起,但现在我无法更新任何站点设置或安装任何模块/插件/组件。我将所有文件夹更改为 777,并通过终端多次检查这些设置。但是...当我在 Joomla 管理员中时,我转到帮助 > 系统信息 > 目录权限,所有文件夹都读取为不可写。我不知道为什么会这样,我完全被困在这一点上,无法配置任何东西。 非常感谢任何和所有帮助。 谢谢 J

【问题讨论】:

    标签: permissions joomla


    【解决方案1】:

    设置网络服务器帐户(apache)的权限

    如果您在 OS X 上使用 XAMPP 运行 WordPress 进行本地开发,那么您可能尝试上传核心或插件,并在提示输入 FTP 连接信息时遇到以下错误:

    要执行请求的操作,WordPress 需要访问您的网络服务器。

    这是因为默认情况下 XAMPP 在 Mac 上以用户 nobody 运行,这会导致一些权限问题。此外,WordPress 在升级之前会将文件写入系统,然后检查是哪个用户编写了该文件。如果此文件与运行 PHP 的用户不匹配,它将拒绝升级,即使存在写入权限。 chmod 777 不足以解决这个问题;您还必须拥有正确的用户。我不知道他们为什么这样做,以及是否有技术原因,但这很烦人。

    解决方案:编辑您的 httpd.conf 以作为用户的用户名和组的员工运行。

    在 TextEdit 中打开 httpd.conf

    sudo open -e /Applications/XAMPP/xamppfiles/etc/httpd.conf
    

    变化:

    User nobody
    Group nogroup
    

    收件人:

    User your_mac_username
    Group staff
    

    重新启动 Xampp,这应该可以解决问题;您可以通过在 .php 文件中运行来验证它是否有效。

    如果您仍然遇到问题,可以检查其他几项。首先验证所有权(很可能是问题):

    sudo chown -R your_mac_username:staff /path_to_webroot/www/
    

    接下来确认权限(如果需要更高的安全性可以更改777):

    sudo chmod -R 777 /path_to_webroot/www/
    

    【讨论】:

      【解决方案2】:
      1. 设置权限为 777
      2. 对日志和 tmp 使用完整路径 例如:
        /var/www/vhosts/mydomain/httpdocs/tmp

      【讨论】:

        【解决方案3】:

        当我第一次在网络托管服务上安装 Joomla 时,我遇到了类似的问题。这是一个猜测,但它可能会对您有所帮助。

        由于 configuration.php 的权限错误,有些 Joomla 页面无法保存。我试图通过 FTP 更改此设置,但 CHMOD 命令失败。最初,我通过将 configuration.php 复制到另一台机器,将其从服务器中删除,然后将其复制回来来绕过它。这解决了管理问题。不幸的是,它造成了安全问题。

        正确的解决方案是在 Joomla 全局配置页面中定义 FTP 帐户和密码。 Joomla 使用幕后的帐户修改 configuration.php 帐户,通过将权限设置为 777 将其设置为不向黑客开放。我有一篇关于为什么这样做的文章,但我现在找不到参考。

        如果您已将所有文件权限更改为 777,那么您可能使 Joomla 安装处于不安全状态。我建议将它们恢复为默认值;或者可能只是重做安装,因为可能很难确定默认值是什么。

        【讨论】:

        • 所以configuration.php应该是755模式还是644?抱歉,我也有这个问题...我的目录权限已经设置为 joomla 文档的一般规则。但是系统信息似乎告诉我它是不可写的,尽管我已经在 configuration.php 中设置了 ftp 帐户集:(
        • 我不记得权限应该是什么,而且实际上我没有足够的安全经验来知道最佳选择。我在安装时将设置恢复为默认值。但是,我没有在configuration.php中设置ftp帐户。我从全局配置页面更改了 ftp 设置(也许最终写入 configuration.php - 我没有看到那个级别的问题)。
        • hmmm... ic ic ic,现在我的服务器团队支持已经解决了。出现问题是因为他们没有将 apache 的组和用户 ID 设置为相同的名称......这就是为什么目录的 755 权限和文件的 644 权限似乎一如既往地失败。但是,现在解决了! :D
        【解决方案4】:

        您使用的是什么joomla 版本

        不幸的是,当您通过管理安装组件/模块/等时,joomla 确实存在一些问题,这使得安装/上传的文件归根用户(服务器)所有,用户(您)使用版本 1.0.x

        但它已在较新版本的 joomla 1.5 中得到修复> 使用新的 FTP 层(安装时要求您进行 FTP 身份验证的表单),假设您是手动安装它而不是使用像幻想之类的自动脚本

        也就是说,这是我使用的一个技巧。尝试登录您的 Cpanel 帐户,并使用内置文件管理器删除文件并通过 FTP 重新上传文件,以便文件所有权属于您。

        请记住,这个问题不完全是 joomla 的错,它是一个已知的 php 文件上传问题。因此,如果您尝试在不使用 joomla 的 FTP 层的情况下安装/上传文件,问题将持续存在。尝试更新您的 joomla 设置并为您的上传和组件/模块/插件安装提供 FTP 身份验证。

        【讨论】:

          【解决方案5】:

          简单的问题和简单的答案..安装joomla时您正在跳过FTP设置...这是关键..填写FTP设置当您通过FTP上传joomla站点时使用这些设置然后您没有足够的权限然后 joomla 使用这些设置来处理服务器目录结构..

          【讨论】:

            【解决方案6】:

            问题是您的 FTP 用户名与 Joomla 在服务器上的权限不同,这就是您遇到此问题的原因。

            您应该联系您的系统管理员。

            【讨论】:

              【解决方案7】:

              只是为未来的googler添加另一个答案我今天遇到了这个问题,问题是SELINUX会默默地杀死php写检查过程。

              快速而肮脏的解决方法是禁用 SELINUX,但我相信您也可以在 selinux 中配置异常/规则

              【讨论】:

                【解决方案8】:

                您需要以拥有文件的用户身份运行 apache。在你的 apache 配置中改变这个:

                使用您的用户名

                将您的组名分组

                【讨论】:

                  【解决方案9】:

                  行之有效的最佳解决方案。

                  1. 您在根文件夹中创建一个 configuration.php 文件并将代码粘贴到错误框架内。
                  2. 手动删除安装文件夹。

                  Repete 删除安装文件夹或 F5 重复页面。 希望对您有所帮助!

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-10-26
                    • 2015-08-02
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-03-24
                    • 1970-01-01
                    相关资源
                    最近更新 更多