使用 php 连接到 virtualbox guest 中的 URL,出现“无法打开流...”
我正在使用 Virtuablbox。在我的主机上,我正在运行一个 PHP 应用程序,该应用程序应该连接到我的来宾 Web 服务器上的另一个应用程序。
我在尝试连接时使用 ip。
我可以从浏览器连接到完全相同的 URL,并且它可以工作。
通过 PHP,我可以成功连接到互联网上的 URL。
我需要一些关于问题所在的想法(或解决方案)的帮助。寻找解决方案的方向也很好。我发现很难找到解决办法。
确切的错误消息:
[2011 年 7 月 30 日星期六 19:35:10] [错误] [客户端 ::1] PHP 警告:fopen(): php_network_getaddresses:getaddrinfo 失败:节点名或服务名 提供或未知 /Library/WebServer/Documents/SMICTestProject/test.php 第 10 行
[2011 年 7 月 30 日星期六 19:35:10] [错误] [客户端 ::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。
php.ini 中的“allow_url_fopen = On”。
先感谢您!
I am using Virtuablbox. On my host I am running a PHP application that should connect to another application on my guest's web server.
I am using ip when trying to connect.
I can connect to exactly the same URL form the browser and it works.
From PHP I can connect to URLs on the internet with success.
I need som help with ideas (or solutions) what the problem can be. Directions to look for a solution is also fine. I find it very difficult to find a solution.
Exact error message:
[Sat Jul 30 19:35:10 2011] [error] [client ::1] PHP Warning: fopen():
php_network_getaddresses: getaddrinfo failed: nodename nor servname
provided, or not known in
/Library/WebServer/Documents/SMICTestProject/test.php on line 10[Sat Jul 30 19:35:10 2011] [error] [client ::1] PHP Warning:
fopen(http://\xef\xbb\xbf192.168.1.105/otrs/test.pl): failed to open
stream: php_network_getaddresses: getaddrinfo failed: nodename nor
servname provided, or not known in
/Library/WebServer/Documents/SMICTestProject/test.php on line 10
This is my PHP-file running on the host:
<?php
$handle = fopen("http://192.168.1.105/otrs/test.pl", "r");
if(!$handle){
echo "Failed";
}else{
echo "Succeeded";
}
?>
The file I'm trying to connect to is a PERL file.
Guest is using OpenSUSE/Apache.
My host is Mac OsX and I'm using apache for PHP as well.
"allow_url_fopen = On" in php.ini.
Thank you in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的 VirtualBox 主机是否配置为在桥接模式下运行? VirtualBox 中的默认 NAT 模式将阻止任何外部(主机)请求到达来宾。
您究竟能够从哪个浏览器连接到所请求的资源 - 是来宾操作系统内部的还是主机操作系统内部的?
Is your VirtualBox host configured to run in Bridged mode? The default NAT mode in VirtualBox will prevent any external (host) requests to reach the guest.
From which browser were you exactly able to connect to the requested resource - the one inside the guest or inside the host OS?
听起来您的 PHP.INI 文件中没有设置“allow_url_fopen”。
查看此以获取更多信息:
http://www.php.net/manual /en/filesystem.configuration.php#ini.allow-url-fopen
Sounds like you don't have the 'allow_url_fopen' set in your PHP.INI file.
Check this out for more info:
http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
问题解决了。我不知道问题是什么,但重新启动一切都解决了。我坐在不同的网络上,但我想这应该不重要。
Problem is solved. I have no idea what the problem was but restaring everyting fixed it. I am sitting on a different network, but I guess that shouldn't matter.