Использование php для подключения к URL-адресу в гостевой виртуальной коробке, не удается открыть поток

Я использую виртуаблбокс. На моем хосте я запускаю приложение PHP, которое должно подключаться к другому приложению на моем гостевом веб-сервере.

Я использую ip при попытке подключения.

Я могу подключиться к точно такому же URL-адресу из браузера, и он работает.

С PHP я могу успешно подключаться к URL-адресам в Интернете.

Мне нужна помощь с идеями (или решениями), в чем может быть проблема. Направления для поиска решения также в порядке. Мне очень трудно найти решение.

Точное сообщение об ошибке:

[Сб, 30 июля, 19:35:10 2011] [ошибка] [клиент :: 1] Предупреждение PHP: fopen(): php_network_getaddresses: ошибка getaddrinfo: имя узла или имя сервера не указано или неизвестно в /Library/WebServer/Documents/SMICTestProject/ test.php в строке 10

[Сб, 30 июля, 19:35:10 2011] [ошибка] [клиент ::1] Предупреждение PHP: fopen(http://\xef\xbb\xbf192.168.1.105/otrs/test.pl): не удалось открыть поток: php_network_getaddresses: ошибка getaddrinfo: указано имя узла или имя сервера или неизвестно в /Library/WebServer/Documents/SMICTestProject/test.php в строке 10

Это мой PHP-файл, работающий на хосте:

<?php

$handle = fopen("http://192.168.1.105/otrs/test.pl", "r");
if(!$handle){

    echo "Failed";
}else{

    echo "Succeeded";
}


?>

Файл, к которому я пытаюсь подключиться, является файлом PERL.

Гость использует OpenSUSE/Apache.

Мой хост - Mac OSX, и я также использую apache для PHP.

«allow_url_fopen = On» в php.ini.

Заранее спасибо!


person Nicsoft    schedule 30.07.2011    source источник


Ответы (3)


Ваш хост VirtualBox настроен для работы в режиме моста? Режим NAT по умолчанию в VirtualBox не позволит любым внешним (хостовым) запросам достичь гостя.

Из какого именно браузера вы смогли подключиться к запрошенному ресурсу — из гостевой или из хостовой ОС?

person brezanac    schedule 30.07.2011
comment
Он настроен для работы в режиме моста. Мне удалось подключиться с помощью Firefox как с гостя, так и с хоста. - person Nicsoft; 30.07.2011
comment
Я немного озадачен тем, какая часть на самом деле делает запрос. Поправьте меня, если я ошибаюсь, но вы пытаетесь получить доступ к скрипту PHP, расположенному в гостевой ОС (SUSE), которая, с другой стороны, пытается получить доступ к веб-серверу по адресу 192.168.1.105? Это тот же IP-адрес, что и адрес машины, на которой выполняется PHP-скрипт? - person brezanac; 30.07.2011
comment
Извините, я был немного неясен. На моем хосте я запускаю приложение, которое должно получить доступ к некоторому контенту в гостевой системе через http. PHP-файл, который я включил в свой пост, работает на хосте. - person Nicsoft; 30.07.2011

Похоже, у вас не установлен параметр «allow_url_fopen» в вашем файле PHP.INI.

Проверьте это для получения дополнительной информации: http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

person k0d3g3ar    schedule 30.07.2011
comment
Спасибо! На самом деле включено: allow_url_fopen = On - person Nicsoft; 30.07.2011

Проблема решена. Я понятия не имею, в чем проблема, но перезапуск все исправил. Я сижу в другой сети, но думаю, это не имеет значения.

person Nicsoft    schedule 03.08.2011