php curl not working on ubuntu server got http_code 403

Posted August 9, 2015 10.6k views

I using curl php to get data from another server. When I test on localhost it working fine.

These are my testing code


$data = file_get_contents_curl(',web-elements.json');

function file_get_contents_curl($url) 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec($ch);
    return $data;


I got this error when using on vps server

["url"]=> string(79) ",web-elements.json" ["content_type"]=> string(9) "text/html" ["http_code"]=> int(403) ["header_size"]=> int(148) ["request_size"]=> int(231) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(0.076722) ["namelookup_time"]=> float(0.038561) ["connect_time"]=> float(0.045397) ["pretransfer_time"]=> float(0.045438) ["size_upload"]=> float(0) ["size_download"]=> float(564) ["speed_download"]=> float(7351) ["speed_upload"]=> float(0) ["download_content_length"]=> float(564) ["upload_content_length"]=> float(0) ["starttransfer_time"]=> float(0.07661) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(12) "" ["certinfo"]=> array(0) { } ["primary_port"]=> int(80) ["local_ip"]=> string(14) "" ["local_port"]=> int(34671)

My server using Ubuntu php 5.5


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.

Submit an Answer
3 answers

May be because graphicriver is requiring authentification? 403 -> forbidden

If it’s working from your local machine, it could be the case that your VPS IP address was blacklisted in some way in that API. A good idea is to create a new droplet and test from it.