2015-07-28 2 views
0

Я хотел проверить некоторые основные функции http_request (то есть: echo http_request(HTTP_METH_GET,"http://www.example.com");), но расширения PECL, похоже, не работают в среде Cloud9. Что странно, потому что подсказки кода показывают, что http_request и http_response_code оба доступны, что похоже на то, что расширения PECL установлены. Есть трюк, который мне не хватает? спасибоЯвляются ли PHP PECL расширениями на Cloud9 работоспособными?

ответ

2

Вы должны установить эти пакеты первой:

sudo apt-get install php-http 
sudo apt-get install php5-dev 
sudo apt-get install libcurl3 
sudo apt-get install libpcre3-dev 
sudo apt-get install libcurl4-openssl-dev 
sudo pecl install raphf 
sudo pecl install pecl_http-1.7.6 

Затем измените конфигурацию php.ini (добавьте строки с "расширением" и изменить enable_dl от Off Вкл):

enable_dl = On 
extension = raphf.so 
extension = propro.so 
extension = hash.so 
extension = iconv.so 
extension = json.so 
extension = http.so 

Затем остановите и запустите проект, и PECL/HTTP должен работать правильно.

Я попробовал этот код и работает отлично:

$r = new HttpRequest('http://rss.cnn.com/rss/edition.rss', HttpRequest::METH_GET); 
$r->addQueryData(array('category' => 3)); 
$r->send(); 
if ($r->getResponseCode() == 200) 
    print $r->getResponseBody(); 
+0

Так что делает трюк, но я не могу получить доступ к любому из методов HttpRequest. Я должен использовать массив & $ info. Это по дизайну или ограничению Cloud9 ?? –

+0

@JohnR Я добавил код ответа, который я успешно запускаю в Cloud9 –