Ответ 1
Есть много вещей, которые могут вызвать эту проблему, но вот несколько вещей, которые вы могли бы попробовать:
-
Убедитесь, что в каталоге /media и во всех подкаталогах есть группа пользователей Apache (обычно это "www-data" или "httpd" ):
sudo chgrp -R www-data /path/to/magento/media
-
Убедитесь, что каталог /media и все подкаталоги имеют соответствующие разрешения для вашей группы пользователей Apache:
sudo chmod -R 775 /path/to/magento/media
-
В System- > Configuration- > General- > Web убедитесь, что "Base URL" и "Base Media URL" являются правильными как для "Secure", так и "Unsecure"
-
В вашей базе данных Magento таблица
core_config_data
содержит исходные значения для ваших{{secure_base_url}}
и{{unsecure_base_url}}
Убедитесь, что эти значения верны и имеют косые черты, например
http://example.com/
-
В приведенной выше конфигурации системы убедитесь, что эти значения правильно учитывают конечную косую черту в исходном значении. Это означает, что они должны выглядеть как
{{secure_base_url}}media
, например, без косой черты
-
-
В System- > Cache Management отключите кеширование
-
Возьмите файлы .htaccess из новой загрузки вашей версии Magento (включая .htaccess в корне вашего документа и любые файлы .htaccess в /media и все подкаталоги /media ), создайте резервную копию текущего .htaccess, а затем явно скопируйте свежие файлы .htaccess, чтобы их заменить.
Потому что .htaccess начинается с '.' символ, он будет проигнорирован некоторыми командами Linux, которые могут заставить людей думать, что они скопировали или перезаписали файл .htaccess, когда они на самом деле этого не сделали, поэтому сделайте это осторожно.
Теперь попробуйте еще раз, и если вы получите ту же ошибку, это исключит .htaccess.
-
Если вы используете SSL, попробуйте отключить SSL, и если вы получите ту же ошибку, это будет исключать SSL
-
Перейдите к
app/code/local
иapp/code/community
и обратите внимание на пространства имен в этих каталогах. Теперь перейдите кapp/etc/modules
и отредактируйте каждый *.xml файл в этом каталоге, соответствующий указанным пространствам имен, со следующим значением для<active>
node:<?xml version="1.0"?> <config> <modules> <Namespace_*> <!-- set this value to "false" --> <active>false</active> <!-- more nodes here, just leave every node alone except <active> --> </Namespace_*> </modules> <config>
Теперь попробуйте еще раз, и если вы получите ту же ошибку, это исключит конфликты модулей.
-
Если изображения достаточно велики, вы можете ограничить ваши настройки PHP:
-
Определите загруженный php.ini:
<?php phpinfo(); // Look for "Loaded Configuration File"
-
Отредактируйте свой php.ini(если вы на Ubuntu, возможно, он был в
/etc/php5/apache2/php.ini
):sudo vi /path/to/php.ini # Make these three values higher than the filesize of the images you're # trying to upload: upload_max_filesize = 200M post_max_size = 200M memory_limit = 200M
Перезагрузите веб-сервер:
sudo /etc/init.d/apache2 restart
-
Если вы дошли до этого, и ничего не сработало, вот некоторые из длительных вещей, которые вы могли бы сделать, чтобы сузить, в чем проблема:
-
Создайте новую установку Magento на одном веб-сервере и загрузите тестовые изображения.
-
Если они все еще не работают, это проблема с конфигурацией Apache или PHP (или, возможно, даже с версией)
-
Если они действительно работают, вероятно, это проблема с вашими основными файлами Magento или с вашей конфигурацией Magento или с базой данных Magento или с виртуальным хостом Apache. Выполните следующие шаги, чтобы определить, что:
-
Создайте новую базу данных
-
Удалить все в
/path/to/new/magento/var/*
sudo rm -rf /path/to/new/magento/var/*
-
В старшем администраторе Magento перейдите к
System->Tools->Backups
и нажмитеCreate Backup
. После этого перейдите в/path/to/old/magento/var/backup/
и вставьте свою резервную копию в новую созданную вами базу данных:mysql -p -u username database_name < backup_file
-
В новой файловой системе Magento перейдите к
/path/to/new/magento/app/etc/local.xml
и отредактируйте ее, чтобы указать на новую базу данных:<username>{{db_user}}</username> <password>{{db_pass}}</password> <dbname>{{db_name}}</dbname>
-
Повторите загрузку изображений на новой установке Magento, и если вы получите сообщение об ошибке, проблема будет в конфигурации Magento или в вашей базе данных Magento. Если вы не получили ошибку, проблема была в ваших основных файлах Magento или на вашем виртуальном хосте Apache.
-
-
Если вы хотите предоставить дополнительную информацию, возможно, наиболее полезными являются копии загруженных php.ini
, apache2.conf
и/или httpd.conf
, а также копии ваших файлов .htaccess
из document root
через все подкаталоги /media
, с любой конфиденциальной информацией, запутанной, конечно.