I modified the ParallelReportDownload.php file in the adwords-examples-39.0.0 folder to retrieve campaign statistics. It works very well locally but when I test from the server this generates an HTTP 500 error that seems to come from the ReportDownloader class.
[2019-02-10 10:22:08] AW_SOAP.INFO: clientCustomerId=xxx-xxx-xxxx operations=1 service=ManagedCustomerService method=get responseTime=209 requestId=00058186b9ed12710a1b731184092ffc server=adwords.google.com isFault=0 faultMessage=
[2019-02-10 10:22:08] AW_SOAP.DEBUG: POST /api/adwords/mcm/v201806/ManagedCustomerService?wsdl HTTP/1.1
Host: adwords.google.com
Connection: close
User-Agent: PHP-SOAP/7.0.33
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 999
Authorization: REDACTED
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201806" xmlns:ns2="https://adwords.google.com/api/adwords/mcm/v201806"><SOAP-ENV:Header><ns2:RequestHeader><ns1:clientCustomerId>xxx-xxx-xxxx</ns1:clientCustomerId><ns1:developerToken>REDACTED</ns1:developerToken><ns1:userAgent>unknown (AwApi-PHP, googleads-php-lib/39.0.0, PHP/7.0.33)</ns1:userAgent><ns1:validateOnly>false</ns1:validateOnly><ns1:partialFailure>false</ns1:partialFailure></ns2:RequestHeader></SOAP-ENV:Header><SOAP-ENV:Body><ns2:get><ns2:serviceSelector><ns1:fields>CustomerId</ns1:fields><ns1:predicates><ns1:field>CanManageClients</ns1:field><ns1:operator>EQUALS</ns1:operator><ns1:values>false</ns1:values></ns1:predicates><ns1:paging><ns1:startIndex>0</ns1:startIndex><ns1:numberResults>500</ns1:numberResults></ns1:paging></ns2:serviceSelector></ns2:get></SOAP-ENV:Body></SOAP-ENV:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8
Date: Sun, 10 Feb 2019 09:22:08 GMT
Expires: Sun, 10 Feb 2019 09:22:08 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alt-Svc: quic=":443"; ma=2592000; v="44,43,39"
Accept-Ranges: none
Vary: Accept-Encoding
Connection: close
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><ns2:ResponseHeader xmlns:ns2="https://adwords.google.com/api/adwords/mcm/v201806" xmlns="https://adwords.google.com/api/adwords/cm/v201806"><requestId>00058186b9ed12710a1b731184092ffc</requestId><serviceName>ManagedCustomerService</serviceName><methodName>get</methodName><operations>1</operations><responseTime>209</responseTime></ns2:ResponseHeader></soap:Header><soap:Body><ns2:getResponse xmlns="https://adwords.google.com/api/adwords/cm/v201806" xmlns:ns2="https://adwords.google.com/api/adwords/mcm/v201806"><ns2:rval><totalNumEntries>1</totalNumEntries><Page.Type>ManagedCustomerPage</Page.Type><ns2:entries><ns2:customerId>xxxxxxxxxx</ns2:customerId></ns2:entries></ns2:rval></ns2:getResponse></soap:Body></soap:Envelope>