【发布时间】:2018-02-27 18:31:08
【问题描述】:
在 Centos 7 机器上的 PHP 7.2 中,我正在尝试访问 Apache Jena Fuseki 3.6 SPARQL 端点。
Fuseki 在端口 3030 上运行,数据集的名称是 ds,我可以成功运行 curl http://localhost:3030/ds - 即使使用没有任何权限的用户登录该系统。
到目前为止一切似乎都很好。
但是,当我尝试在 PHP 脚本中执行 fopen("http://127.0.0.1:3030/ds","r"); 或 fopen("http://localhost:3030/ds","r"); 时,我总是以 PHP Warning: fopen(http://localhost:3030/ds): failed to open stream: Permission denied 结束。
不过,从 WWW 甚至从同一个 Apache 服务器(如 fopen("http://localhost/mytest.html","r");)获取文件也可以。
访问不同的本地主机端口是否需要任何特殊权限? firewalld 已停用,顺便说一句。
【问题讨论】:
-
听起来您可能有一些冲突的 DNS 条目或其他东西。如果切换到 100% 基于 IP 的
fopen()会发生什么? -
附加服务器日志或 php 代码的堆栈跟踪可能是个好主意
-
@MonkeyZeus 我得到了 localhost 和 127.0.0.1 的错误
-
那么您是在与 SPARQL 端点相同的服务器上运行 PHP 脚本吗?
-
@georoot 我引用的警告来自 Apache 的日志。里面什么都没有。