nginx getimagesize from local server: 403


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:


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);
    require ('include/php/render/'.$_GET['render'].'/render_img.php');

All is working fine but not the getimagesize from my own server.

What is strange is that it’s working on my development environment which has the same versions of nginx and PHP and pretty the same configuration.

It might a a configuration issue or a right issue on a certain file but I don’t know where to check.

Any idea?

Thanks for any help :) Vincent

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hi @Adam0101,

This sounds to be an issue with your permissions or ownership. I’ll recommend checking them.

Your files should be 644 permissions and folders 755. You can do achieve that by running :

find /path/to/app -type d -exec chmod 0755 {} \;
find /path/to/app -type f -exec chmod 0644 {} \;

Notice you need to change /path/to/app with your actual path. Additionally, the above permissions are the standard ones however some applications might need some different perms here and there.

Next one is your ownership. Check what ownership your Website needs to be from Nginx and once done just execute:

chmod -R own:own /path/to/app

Again you need to change /path/to/app with your actual path. Here you do need to change own:own with the ownership of Nginx as well.

Once you do run those, I believe you’ll be able to use the getimageise function.