Как исправить ошибку HTTP при загрузке изображений?
-
-
В чем причина `AddType x-mapp-php5 .php`?Казалось бы,это очень специфично для сервера.Я бы подумал,что вероятность того,что ваш сайт (например,PHP) будет нарушена (или ничего не делать,если вам повезет),больше,чем что-то улучшить?What is the reasoning behind `AddType x-mapp-php5 .php`? That would seem to be very server specific. I would think it is more likely to break your site (ie. PHP) horribly (or _do nothing_ if you are lucky) rather than improving anything?
- 0
- 2018-01-01
- MrWhite
-
6 ответ
- голосов
-
- 2012-07-26
После устранения неполадок с @Wyck в чате мы сузились до основной проблемы.
Проблема была связана с тем,что моя конфигурация сервера не имела надлежащего объема памяти,выделенного для Apache/PHP.
Если у кого-то есть такая же проблема,попробуйте убедиться,что у вас достаточно (64 МБ +) серверной памяти,выделенной для Apache/PHP,в настройках конфигурации вашего сервера. Вы также можете добавить это в свой файл wp-config.php:
define('WP_MEMORY_LIMIT', '64MB');
Если вышеуказанное решение не работает,прочтите статью Изображение/Media Uploader? для дальнейшего устранения неполадок.
Попробуйте добавить одну или все следующие настройки .htaccess в файл .htaccess в корневом каталоге установки WordPress.
Серьезно,попробуйте одно из приведенных ниже решений,чтобы узнать,какое из них сработало. Не вставляйте их все сразу в файл .htaccess.
Попробуйте эту строку:
AddType x-mapp-php5 .php
mod_security может вызывать проблемы. Отключите его,чтобы узнать,не в этом ли проблема. Для этого создайте файл .htaccess в каталоге wp-admin. Добавьте к этому:
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
Если вы используете контроль доступа на основе аутентификации на вашем веб-сервере (часто известный как htpasswd,базовая аутентификация,защищенный паролем каталог или аналогичный),WordPress не сможет обработать его для Flash Uploader,Cron и XMLRPC. Для работы необходимо исключить связанные файлы. Имейте в виду,что это может нарушить ваши соображения безопасности.
# Exclude the file upload and WordPress CRON scripts from authentication <FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch>
И последнее замечание: некоторые говорили,что при использовании более ранней версии PHP 5.3.X вы можете попробовать отключить безопасный режим PHP.
Если вы используете многосайтовый WordPress и получаете ошибки HTTP или внутренние ошибки сервера,связанные с загрузкой изображений,прочтите Загрузка изображений на несколько сайтов вызывает сбой HTTP-ошибки ) для других возможных идей и решений по устранению неполадок.
After troubleshooting with @Wyck in chat, we have narrowed to the underlying issue.
The issue was related to my server configuration not having the proper amount of memory allocated to Apache/PHP.
If anyone has this same problem, please try verifying that you have enough (64 MB+) server memory allocated to Apache/PHP in your server configuration settings. You can also add this to your wp-config.php file:
define('WP_MEMORY_LIMIT', '64MB');
If the above solution does not work, read the article Image/Media Uploader problems? for further troubleshooting.
Try adding one by one or all of the following .htaccess tweaks to the .htaccess file in the root directory of your WordPress installation.
Seriously, try one of each of the solutions below so you know which one did the trick. Don't just paste them all in your .htaccess file immediately.
Try this line:
AddType x-mapp-php5 .php
mod_security might be causing problems. Disable it to see if that is the problem. To do this, make an .htaccess file in your wp-admin directory. Add this to it:
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
If you're using access control based on authentication on your Webserver (often known as htpasswd, basic authentication, password protected directory or similar), WordPress is not able to handle it for Flash Uploader, Cron, and XMLRPC. Related files need to be excluded to work. Keep in mind that this might break your security considerations.
# Exclude the file upload and WordPress CRON scripts from authentication <FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch>
One final note: some have said that if using a lesser version of PHP 5.3.X you can try disabling PHP Safe Mode.
If you are running WordPress multi-site and are receiving HTTP errors or internal server errors, related to image uploading, please read Uploading Images to Multi-Site Causes Failure to HTTP Error) for other possible troubleshooting ideas and solutions.
-
хорошо ... полезно знать ... вы читали,что WP пытается выделить до 256 МБ оперативной памяти,поэтому этот `define ('WP_MEMORY_LIMIT','64MB');` должен быть больше,если возможно.ok ... good to know ... did you read that WP tries to allocate up to 256MB of ram so this `define('WP_MEMORY_LIMIT', '64MB');`should be larger if possible.
- 0
- 2012-07-26
- Damien
-
Если вы используете WP 4.1.1,`AddType x-mapp-php5 .php` больше не является жизнеспособным решением,так как заставляет страницу просто печатать PHP-код в виде обычного текста.If you're using WP 4.1.1, the `AddType x-mapp-php5 .php` is no longer a viable solution as it forces the page to simply print the PHP code as plain text
- 1
- 2015-03-27
- cameronjonesweb
-
Или добавьте это в файл конфигурации вашего сайта,если вы используетеnginx: `` client_max_body_size 128m; ''Or add this to your sites config file if you are using nginx: ```client_max_body_size 128m;```
- 1
- 2015-06-28
- Flatron
-
- 2014-04-30
Я поместил следующий код в свой файл
functions.php
.Работает!add_filter( 'wp_image_editors', 'change_graphic_lib' ); function change_graphic_lib($array) { return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' ); }
Когда это помогает,это связано с тем,что он изменяет модуль кода PHP,используемый для обработки загруженного изображения,для использования с WordPress.
Эта обработка включает перемещение изображения в базу данных медиатеки и создание изображений разного размера («эскизы»,«средний»,«большой»),которые WordPress всегда хочет,чтобы темы были доступны для доступа.
Это вызывает использование модуля "GD",потому что он первый.В некоторых настройках сервера более новая библиотека «Imagick» не работает с другими для определенных сценариев изображений,таких как большие размеры в пикселях,поэтому принудительное использование библиотеки «GD» является исправлением.
I put the following code into my
functions.php
file. It works!add_filter( 'wp_image_editors', 'change_graphic_lib' ); function change_graphic_lib($array) { return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' ); }
When this helps it is because it changes the PHP code module used for processing the uploaded image for use with WordPress.
This processing includes moving the image into the media library database and generating the different size images ("thumbnail", "medium", "large") that WordPress always wants available for themes to access.
It causes the "GD" module to be used, because it is first. In some server setups, the newer "Imagick" library isn't playing well with others for certain image scenarios, such as large pixel dimensions, so forcing the "GD" library to be used is a fix.
-
Лучше создать небольшой плагин,чем помещать его в `functions.php`,потому что если вы измените тему,вы потеряете код.И я уверен,что вы хотите,чтобы это работало после смены темыIt's better to create a little plugin than putting it in the `functions.php`, because if you change the theme, you lose the code. And I'm sure you want this working after a theme change
- 0
- 2018-01-15
- EliasNS
-
+1 Это сработало для меня,когда я столкнулся с этой проблемой с готовой настройкой WP 4.9.4 для новой учетной записи HostGator.@EliasNSnoob здесь;как правильно сделать для этого небольшой плагин?+1 This worked for me when running in to this problem with an out-of-the-box WP 4.9.4 setup on a new HostGator account. @EliasNS noob here; what's the right way to make a little plugin for this?
- 1
- 2018-02-27
- Andrew Janke
-
@AndrewJanke,вы можете использовать плагин https://es.wordpress.org/plugins/pluginception/@AndrewJanke, you could use a plugin https://es.wordpress.org/plugins/pluginception/
- 0
- 2018-02-27
- EliasNS
-
* "Imagick" *?Не * "ImageMagick" *?*"Imagick"*? Not *"ImageMagick"*?
- 0
- 2019-06-08
- Peter Mortensen
-
- 2014-05-30
Я столкнулся с той же ошибкой при загрузке мультимедиа в wordpress. В Chrome это отображается как http:error; в Firefox ошибка выглядит совсем иначе. В Интернете полно историй о людях,которые потратили дни на поиски ошибки (я тоже :-(). Решения имеются в большом количестве,но никто не объясняет почему,по крайней мере,не так,как это согласуется с симптомами.
Мой вклад - достойный вклад: я заметил,что проблема коррелирует с ошибкой сегментации,о которой сообщается в файле журнала apache2. Меня это беспокоит,потому что это сложно диагностировать.
Перезагрузка всего сервера устранила все симптомы,и я внезапно снова смог загрузить мультимедиа в Wordpress. К сожалению,я понятия не имею,почему это происходит. Перезагрузка фактически остановила меня от дальнейших исследований,и теперь мне придется ждать (недели? Месяцы?),Пока проблема не появится снова. Я надеюсь,что это поможет другим в поисках причины этой проблемы. Но моя жена счастлива,потому что я больше не могу проводить ночи в поисках этой проблемы ...
I ran into the same error, when trying to upload media in wordpress. In Chrome, it shows up as a http: error; in Firefox, the error looks quite different. The web is full stories of people who have spent days to chase the bug (so have I :-( ). Solutions abound, but nobody explains why, at least not in a way that is consistent with the symptoms.
My tuppence worthy contribution: I noticed that the problem correlates with a segmentation fault signalled in the log file of apache2. That disturbs me, because it is difficult to diagnose.
Rebooting the entire server took away all symptoms and all of a sudden I could upload media again in Wordpress. Frustratingly, I have no clue as to why this occurs. The reboot effectively stopped me from any further research, and I will now have to wait (weeks? months?) for the problem to reappear. I hope this will help others in their quest for the cause of this problem. My wife is happy, though, because I can no longer spend nights chasing this problem...
-
- 2013-10-29
Я решил эту проблему,сменив владельца с
root
наapache
,как показано ниже.chown -R apache:apache /var/www/html/mydomain
Затем я изменил разрешение для
wp-content/uploads/
на775
.После этого я попытался загрузить изображение на носитель.Мне удалось загрузить изображение.
I have resolved this issue by changing my owner from
root
toapache
as below.chown -R apache:apache /var/www/html/mydomain
And then I have change the permission of the
wp-content/uploads/
to775
.After that, I have tried to upload an image in the media. I was successful to upload the image.
-
- 2018-03-29
У меня была такая же проблема. Я пробовал различные исправления,включая изменение процессора изображений по умолчанию с PHP GD на ImageMagick с помощью Force Image Magick Plugin а>
Это помогло с ошибкой HTTP/500,но эскизы больше не создавались. Затем я снова деактивировал плагин,и тогда мне помог этот ответ на вопрос Похоже,изменение размера изображения не работает . Для моего
PHP_MEMORY_LIMIT
было установлено значение160MB
,что является абсолютным максимумом,который разрешает мой хостер.Для загрузки изображений это привело к максимально возможным размерам изображения около
6000 x 6000 px
при использовании PHP GD и создании эскизов. Поэтому важно проверять не только размер файла,но и размеры изображения. Загрузка изображения большего размера приводила к ошибке HTTP 500 даже при небольших размерах файлов.I had the same issue. I tried various fixes, including changing the default image processor from PHP GD to ImageMagick using the Force Image Magick Plugin
This helped with the HTTP Error / the 500 error but thumbnails were no longer being generated. I then deactivated the plugin again and what then helped me was this answer on the question Looks like image resize is not working well. My
PHP_MEMORY_LIMIT
was set to160MB
which is the absolute maximum my hoster allows.For uploading images this resulted in maximum possible dimensions of the image of around
6000 x 6000 px
when using PHP GD and generating thumbnails. So it's important to not only check the file size but also the dimensions of the image. Uploading an image with higher dimensions resulted in an HTTP Error / error 500 even with small file sizes. -
- 2019-10-07
Я сталкивался с такой проблемой много раз и решил,увеличив
memory_limit = 256M
вphp.ini ИЛИ добавивdefine( 'WP_MEMORY_LIMIT', '256M' );
вФайлwp-config.php
(* при необходимости вы можете увеличить объем памяти более чем256M
) в большинстве случаев.Другим возможным решением может быть разрешение на папку
\wp-content\uploads\
;команда:chmod -R 0755 wp-content\uploads\
.Надеюсь,вам это тоже поможет.
I've experienced such issue many times and solved by increasing
memory_limit = 256M
in php.ini OR addingdefine( 'WP_MEMORY_LIMIT', '256M' );
inwp-config.php
file (*If needed you can increase memory more than256M
) most of the time.Another possible solution could be giving permission to
\wp-content\uploads\
folder; command:chmod -R 0755 wp-content\uploads\
.Hope it may help you too.
Я использую WordPress 3.4.1 в Ubuntu 12.04 с использованием Apache и PHP 5.3.X
Когда я вхожу в панель управления и добавляю новую запись. Затем попробуйте загрузить изображение,чтобы установить его в качестве избранного,я получаю красное поле с сообщением «Ошибка HTTP».
Я читал о людях,которые говорили не использовать загрузчик флеш-памяти,а просто использовать загрузчик браузера,но когда я пытаюсь это сделать,я просто получаю 500 Internal Server Error.
Я попытался добавить
AddType x-mapp-php5 .php
в начало моего файла .htaccess,но без изменений.Отключение ВСЕХ плагинов не повлияло. Я пробовал новую установку. Не повезло.
Обновление 17.10.2016 - Если вы используете собственные роли или возможности,попробуйте использовать собственные роли/возможности и повторите попытку.
Что следует проверить:
Если вы работаете через прокси-сервер,убедитесь,что время ожидания прокси-сервера настроено правильно.