загрузка изображений с использованием неправильных разрешений


У меня возникла странная проблема при загрузке изображения через серверную часть magento. В настоящее время у меня /media/разрешения установлены на 777, однако всякий раз, когда я загружаю изображение, оно изменяет разрешения на 600, что делает его недоступным для просмотра, пока я не изменю его вручную обратно на 777. Есть ли способ установить его по умолчанию, чтобы он был 777?

Author: saravanavelu, 2016-01-29

2 answers

В принципе, последнее исправление безопасности Magento SUPEE-7405 влияет на права доступа к файлам для изображений, загруженных с панели администратора Magento. Перед применением исправления загруженные файлы через панель администратора, такие как изображения продуктов, страницы cms и т.д., использовали разрешения 0777, и исправление изменяет эти разрешения на 0640 и 0750, что делает их недоступными для всех пользователей.

Для упрощения демонстрации вы можете проверить изменения в этом файле: lib/Varien/File/Uploader.php

diff --git lib/Varien/File/Uploader.php lib/Varien/File/Uploader.php
---
---
-        chmod($destinationFile, 0777);
+        chmod($destinationFile, 0640);
---
---
-        if (!(@is_dir($destinationFolder) || @mkdir($destinationFolder, 0777, true))){
+        if (!(@is_dir($destinationFolder) || @mkdir($destinationFolder, 0750, true))){

Для решения этой проблемы была выпущена новая версия SUPEE-7405, но даже без этой исправленной версии вы можете навсегда исправить ее одним из следующих способов:

Вариант 1:

Вы можете вручную изменить файл в файле lib/Varien/File/Uploader.php для настройки разрешений 0640/0750.

Вариант 2:

Потому что Magento ожидает, что веб-сервер будет владеть сайтом файлы:

Http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html#privs-after

Другой способ решить проблему - сделать веб-сервер владельцем файлов

веб-сервер chown-R-имя пользователя magento/root/путь

Имя пользователя веб-сервера обычно является www-data или apache.

Для получения более подробной информации вы можете посетить этот учебник

 10
Author: Jameslj, 2016-08-25 04:33:22

Использование Magento 700 permissions (drwx------) для каталогов media/ и var/ предоставляет полный контроль (то есть чтение/запись/выполнение) владельцу и никаких разрешений никому другому.

Magento ожидает, что веб-сервер будет владеть файлами сайта:

Http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html#privs-after

Вы можете решить эту проблему, сделав веб-сервер владельцем файлов.

chown -R web-server-user-name magento/root/path

Имя пользователя веб-сервера обычно www-data или apache.

Если вы будете следовать инструкциям по приведенной выше ссылке, веб-сервер получит доступ на чтение ко всем файлам и доступ на запись к медиафайлам и файлам var. Это должно быть все, что вам нужно для обычной работы сайта. Если вам нужно использовать Magento Connect, вам придется временно предоставить веб-серверу доступ на запись ко всем файлам.

Все права доступа к файлам установлены на CHMOD 640, что делает их недоступными для всех пользователей.

Только пользователь веб-сервера необходим доступ к файлам. Нет необходимости предоставлять какие-либо разрешения всем пользователям.

Вы можете предоставить доступ определенному пользователю, если, например, вам нужно отредактировать или загрузить файлы через FTP. В этом случае я устанавливаю пользователя, которому принадлежит файловая система, и устанавливаю группу файлов на веб-сервер:

cd magento/root/directory

# Set ownership 
# 'username' should be the file system owner username
# 'webserver' should be the webserver username
chown -R username:webserver .

# Give the user read/write access to all files.
# Give the webserver read access to all files
find . -type f -exec chmod 640 {} \;
find . -type d -exec chmod 2750 {} \; 

# Give the user and the webserver read/write access to var and media
find var/ -type f -exec chmod 660 {} \;
find media/ -type f -exec chmod 660 {} \;
find var/ -type d -exec chmod 2770 {} \;
find media/ -type d -exec chmod 2770 {} \;
chmod 2770 includes
chmod 660 includes/config.php

Приведенные выше команды предоставят владельцу вашей файловой системы доступ на чтение/запись ко всему, а веб-серверу - доступ на чтение ко всему. Веб-сервер также сможет писать в каталоги мультимедиа и var.

Это ошибка исправления 7405, посмотрите мой источник поиска

 1
Author: Jonatan Ribeiro dos Santos, 2017-05-23 12:37:14