Opened 2 months ago
Last modified 4 weeks ago
#41973 assigned defect (bug)
HTTP Error when uploading images on PHP 7.1.9
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Milestone: | 4.9.1 | Priority: | high |
| Severity: | normal | Version: | 4.8.2 |
| Component: | Media | Keywords: | reporter-feedback |
| Focuses: | Cc: |
Description
I experienced a problem with image upload, looks like a problem with image.php and/or upload.php
Reverting to a prior version of PHP resolved it for now.
For a more detailed explanation of the problem and my actions see https://wordpress.org/support/topic/http-error-115/#post-9524067
Change History (19)
#1
@SergeyBiryukov
2 months ago
- Summary changed from php 7.1.9 to HTTP Error when uploading images on PHP 7.1.9
#2
@joemcgill
2 months ago
#3
@robhindle
2 months ago
with PHP 7.0.23 imagick module version is V3.4.1
ImageMagick library vsn: ImageMagick 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
with PHP 7.1.9 module version is V3.4.3 RC1
ImageMagick library vsn: 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
#4
@WraithKenny
2 months ago
Might be related to a PHP 7.1 change: http://php.net/manual/en/migration71.incompatible.php#migration71.incompatible.empty-string-index-operator
"Applying the empty index operator to a string (e.g. $str[] = $x) throws a fatal error instead of converting silently to array."
In PHP < 7.1, you could have
$variable = ''; // say, from an empty return on `get_post_meta()`
$variable['key'] = 'anything';
This will turn into a fatal error on PHP >= 7.1
I believe there are probably a few places in core where this is happening, as well as countless plugins. (#41496 possibly related).
#5
@dd32
8 weeks ago
- Keywords reporter-feedback added
Hey @robhindle
Would you be able to check your PHP errors for the exact error which PHP is encountering?
Were you able to attempt deactivating plugins to see if that helped?
I've just tested WordPress trunk & 4.8 on PHP 7.1.9 with (and without) ImageMagick 3.4.3 (lib 6.7.2-7) and I don't see any issues immediately.
as @WraithKenny says, this could quite possibly be due to a plugin with code incompatible with PHP 7.1, although I'm not aware of any locations in core which would be affected by the stated change.
#6
@robhindle
8 weeks ago
Errors from log file are:
[Sat Sep 23 16:04:32.736522 2017] [proxy_fcgi:error] [pid 27185:tid 140636833384192] (104)Connection reset by peer: [client 80.0.10.2:49601] AH01075: Error dispatching request to :, referer: https://pdmhs.co.uk/wp-admin/upload.php
[Sat Sep 23 16:14:56.993005 2017] [proxy_fcgi:error] [pid 27188:tid 140636883740416] [client 80.0.10.2:49723] AH01071: Got error ‘PHP message: PHP Warning: Illegal string offset ‘width’ in /var/www/vhosts/pdmhs.co.uk/httpdocs/wp-content/themes/twentyeleven/image.php on line 34\nPHP message: PHP Warning: Illegal string offset ‘height’ in /var/www/vhosts/pdmhs.co.uk/httpdocs/wp-content/themes/twentyeleven/image.php on line 35\n’, referer: https://pdmhs.co.uk/wp-admin/upload.php?item=2482
I was reluctant to deactivate plugins as without them the site's a mess but I summoned the courage, switched to PHP 7.1.9 then progressively re-enabled, testing image upload as I went along. Now I am confused, when I'd finished adding them all back image upload was still working. I rechecked imagemagick version in case of update at the server - no change.
#7
@dd32
8 weeks ago
@robhindle Thanks, but unfortunately neither of those are very useful. I was hopeful that there'd be something labeled a PHP Fatal Error available
The first is PHP-fpm's internal error, not the actual fatal error from the PHP worker, which doesn't reveal anything. It's simply saying PHP didn't return it any data, most likely due to it hitting a fatal error.
The second is from the theme (on another HTTP request, ~10 minutes later), which doesn't impact the upload screen, it's saying that for some reason the images metadata in the database is corrupt/incomplete, most likely due to the upload fatal error being hit.
#8
@tr1988
8 weeks ago
Exactly the same issue here too with WordPress 4.8.2. Switching PHP from v7.1.9 to v7.0.23 fixes the problem for me.
Also getting the same "Connection reset by peer" error in the PHP logs, but nothing else relevant.
This ticket was mentioned in Slack in #core by sergey. View the logs.
8 weeks ago
#10
@joemcgill
8 weeks ago
Generally, when we see this error it's a misconfiguration with the Imagick PHP extension, so that's where I'd check first. On a broken environment, you can try switching to GD as the image handler to see if that, in fact, is the culprit.
This filter will reprioritize GD as the default image editor used by WordPress:
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib() {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}
#11
@joemcgill
8 weeks ago
- Owner set to joemcgill
- Priority changed from normal to high
- Status changed from new to assigned
#12
@joemcgill
8 weeks ago
- Milestone changed from Awaiting Review to 4.9
This ticket was mentioned in Slack in #core-media by joemcgill. View the logs.
8 weeks ago
This ticket was mentioned in Slack in #core-media by joemcgill. View the logs.
7 weeks ago
#15
@mikeschroder
7 weeks ago
I was not able to reproduce this on a PHP 7.1.9 install with the following configuration/versions of related libraries (retrieved via Debug Media plugin):
Active Editor WP_Image_Editor_Imagick Imagick Module Number 1655 ImageMagick Version ImageMagick 6.7.7-10 2017-07-15 Q16 http://www.imagemagick.org GD Version bundled (2.1.0 compatible) Ghostscript Version 9.05 Memory Limit 128M Max Execution Time 30 Max Input Time -1 Upload Max Filesize 64M Post Max Size 65M Imagick Resource Limits Imagick area limit 2 GB Imagick disk limit -1 Imagick file limit 6000 Imagick map limit 2 GB Imagick memory limit 1,000 MB Imagick thread limit Not Available
This ticket was mentioned in Slack in #core-media by blobfolio. View the logs.
6 weeks ago
#17
@joemcgill
5 weeks ago
For the purposes of 4.9, I don't see this currently being a blocker, and is probably an ImageMagick/Imagick server level issue and not a core issue based on observations so far, but I want to keep this open through the release so it stays front of mind.
#18
@SergeyBiryukov
5 weeks ago
- Milestone changed from 4.9 to 4.9.1
Looks like there are no actionable items for 4.9 here. 4.9-beta3 is in a few hours, so I'm punting.
Hi @robhindle,
Can you check to see if you are using a compatible version of ImageMagick + the right Imagick PHP extension for that version, and/or a compatible version of GD?