nginx getimagesize from local server: 403

Vincent M. mouseless at
Wed Aug 4 11:50:00 UTC 2021

I found the reason!

I have check and my files and folders are already with rights: 0755 for 
folders and 0644 for files.

I checked also the owner of the website and unfortunately I did some 
test and did not resolved the issue.

I have put a file aaa.jpg on my website root folder:

Locally this code is working fine:

list($imageWidth, $imageHeight) = 
echo $imageWidth;

So I change the code to:

list($imageWidth, $imageHeight) = 
echo $imageWidth;

and I get the error:
2021/08/04 11:33:00 [error] 2196869#2196869: *388196 FastCGI sent in 
stderr: "PHP message: PHP Warning: 
getimagesize( failed to open stream: HTTP 
request failed! HTTP/1.1 403 Forbidden

I change the right to 0777 to file and still have the 403.

I changed the owner of the file aaa.jpg to www-data and changed the 
owner of the website root folder to www-data as well but still have the 403.

On /etc/nginx/nginx.conf file I have:
user www-data;

I didn't know where to look at!

And unexpectedly I remembered that yesterday I added some rules to nginx 
to block bad bots. Which I didn't do locally.

I added this configuration rules: 

And took a look at it and notified this rules:

## Add here all hosts that should be spared any referrer checking.
## Whitelist all your own IPs in this section, each IP followed by a 0;
geo $bad_referer { 0; 0;

I added the comment for and it's now working fine.

What is the line 111.1111.111.111 0 for ?

Do you have any advise on this rules added from ?

Thanks :)

Le 03/08/2021 à 21:14, Vincent M. a écrit :
> Hello all,
> I have a 403 error when trying to use the PHP function getimagesize on 
> nginx based web server:
> list($imageWidth, $imageHeight) = getimagesize($imagesSource['Main']);
> Where $imageSource['Main'] is like:
> https://mywebsite/include/php/render/canvas/VR/2/image/U35p/ver//bgColor/ffffff/widthMM/300/heightMM/388/aube-sunny.jpg
> It's an image generated by PHP-imagick module and is not locally 
> available. This image can be opened by a browser with no problem.
> To generate this image which go through 404. Nginx is configured like 
> that:
> error_page 404 = /url_rewriting.php;
> And in the file url_rewriting.php, we analyse the URL to see if it's 
> real 404 or an image which must be generated:
> if((isset($urlHash[2]) && $urlHash[2] === 'render')) {
> ...
>     header('Status: 200 OK', false, 200);
>     chdir('include/php/render/'.$_GET['render']);
>     require ('include/php/render/'.$_GET['render'].'/render_img.php');
>     exit;
> }
> All is working fine but not the getimagesize from my own server.
> What is strange is that it's working fine on my development 
> environment which has the same versions of nginx and PHP and pretty 
> the same configuration.
> It might a configuration issue or a right issue on a certain file but 
> I don't know where to check.
> Thank you,
> Vincent.
> _______________________________________________
> nginx mailing list
> nginx at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list