【问题标题】:CentOs Magento files created as directories?CentOs Magento 文件创建为目录?
【发布时间】:2015-08-26 12:48:34
【问题描述】:

几天前我注意到一些属于某个 Magento 扩展名的文件实际上被创建为目录,而不是它们应该是的 .png .css 和 .js 文件。更新扩展时会出现错误,因为文件无法覆盖现有目录。我主要注意到这一点是因为 Magento 管理面板中缺少图标。虽然令人费解,但没什么大不了的,我删除了目录 (x4) 并从原始发行版中复制了正确的文件。问题解决了。

我用了 find 。 -type d "." 以及 'empty' 选项来识别应该是文件的目录。这可以解决症状,但不能解决原因。大约有 10 个文件,主要是图像,但一些 .js 和 .css 受到影响。

我刚刚通过 Magento connect 运行了 M2e 的更新,“成功”,但是注意到管理员中缺少一些图标/图形,我检查了代码并确定了 17 个应该是图像文件的空目录(.png 和.gif)。

我想我的问题是这是如何发生的以及为什么会发生?我怎样才能阻止它再次发生?

我有一个运行 Apache 的专用 CentOS 服务器。安装是通过 Filezilla FTP 上传或 Magento Connect 完成的,似乎很可能是 Connect 导致了问题,这两个扩展程序在其生命周期中都至少被 Connect 更新过一次。

希望有人能启发我,虽然这本身不是一个大问题,但关键文件(而不是图像)可能容易出现同样的问题是一个问题......以前有人见过吗??

干杯 罗布H

【问题讨论】:

    标签: magento centos m2e-pro


    【解决方案1】:

    这是一个长期存在的问题,存在多个向量,而最初的 Magento Connect 团队非常不愿意与外部社区互动,这使问题更加严重。

    问题是,Magento Connect 包几乎是,但不完全是 tar 档案。 Magento Connect 档案的打包和解包由 downloaderlib 文件夹中的自定义代码处理(取决于上下文)

    downloader/lib/Mage/Archive/
    lib/Mage/Archive/
    

    也就是说——而不是依赖于命令行tar的存在,这段代码在PHP中重新实现了tar。

    这段代码可以很好地处理 80% 的用例——但多年来,Magento 社区发现(正如您所见)它并不总是按预期工作。代码在内部是一致的,但是尝试用一个版本的 Magento 打包并用另一个版本解包,你会遇到奇怪的边缘情况。当这段代码遇到用实际的 tar 程序制作的档案时,也会出现一些奇怪的边缘情况——尤其是在 OS X 上的tar(至少在 10.6 时代)

    因此,此代码有时是错误的,Magento Connect 本身并不能很好地验证上传的扩展,甚至可能使用此代码的某些版本来打包/重新打包用户上传的扩展。

    除了“尝试另一台计算机”之外,我从未找到过很好的解决方案,这也是我向validate installed Connect packages 编写n98-magerun 命令的部分原因。

    希望有帮助!

    【讨论】:

    • 感谢艾伦。看起来我的服务器上的权限存在问题,这可能与我将 Magento 从旧(共享)主机移动到新(专用)主机的方式有关。这是通过旧服务器上的完整 cPanel 备份完成的,并通过 WHM 在新的现有用户上进行恢复,在恢复期间作为选项被覆盖。如果我对我的 FTP/cPanel 用户的所有文件和目录进行 chown 和 chgrp,即使我设置了 777 权限(!),我也无法通过浏览器访问 Magento(!)新服务器上的默认组是“nobody”(apache 用户), chgrp -R nobody 也无法访问。
    猜你喜欢
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2014-10-07
    • 2012-06-12
    相关资源
    最近更新 更多