Magento 1.9.2.3,从后端上传图像后,权限设置为640而不是644

时间:2016-01-26 21:53:06

标签: magento permissions

在重新安装magento 1.9.2.3后,我意识到从后端上传图像时出现问题。文件获得权限640而不是644.如何调整此值,以便当magento将图像上传到服务器时,它会获得644?

目前我必须使用SSH或acp手动设置权限。

感谢分配!

5 个答案:

答案 0 :(得分:10)

打开以下文件:

lib/Varien/File/Uploader.php

寻找这一行:

chmod($destinationFile, 0640);

将此替换为此行:

chmod($destinationFile, 0644);

寻找这一行:

chmod($destinationFile, 0750);

将此替换为此行:

chmod($destinationFile, 0755);

答案 1 :(得分:2)

Magento 1.9.2.3或SUPEE-7405包含对文件权限的一些更改。通过Magento管理面板上传的文件(即产品图片上传)默认情况下不再是全局可读的(之前:644 /之后:640)。 目录也不是世界可执行的(之前:755 /之后:750)。这导致Web服务无法从Magento读取新创建的文件。

解决方案不是更改核心文件以更改文件权限,而是将运行Web服务的用户添加到PHP配置用户的组中。 例如,我在我的服务器上运行nginx,所以这是解决问题所必须做的事情:

  • usermod -a -G groupname username usermod -a -G
  • php-fpm-configured-groupname nginx

答案 2 :(得分:2)

升级到Magento 1.9.2.4,解决由补丁SUPEE-7405或Magento 1.9.2.3引起的问题。 如果由于某种原因你无法升级那么你应该安装SUPEE-7405 v 1.1,这将纠正权限问题。 Magento自己的这个补丁恢复了限制较少的文件权限(文件为0666,目录为0777),这使您可以正常查看图像等。

答案 3 :(得分:1)

file:- lib/Varien/File/Uploader.php


第219行:

chmod($destinationFile, 0640);
chmod($destinationFile, 0644);



第541行:

if (!(@is_dir($destinationFolder) || @mkdir($destinationFolder, 0750, true))) {

为:

if (!(@is_dir($destinationFolder) || @mkdir($destinationFolder, 0755, true))) {

答案 4 :(得分:0)

此解决方案适用于我们同样的问题。花了大约10个小时寻找解决方案,很高兴我们找到了它。

请参阅解决方案和参考链接。

Click Here to see solution link

<强>解决方案: Magento Community Edition 1.9.2.3和安全补丁SUPEE-7405引入了一个新的图像上传错误,导致新上传图像的文件权限不正确。

如果您上传了任何未显示的图像,首先要为文件和数据库设置正确的文件权限。

要永久解决问题,您需要修改Magento中的文件。

重要说明:这是一个手动黑客攻击,在Magento升级过程中会被覆盖。

打开以下文件: - LIB /瓦瑞恩/文件/ Uploader.php

寻找这一行: - chmod($ destinationFile,0640);

将此替换为此行: - chmod($ destinationFile,0644);

寻找这一行: - chmod($ destinationFile,0750);

将此替换为此行: - chmod($ destinationFile,0755);

保存文件,上传的下一张图片应正确加载。