Php Curl错误:没有到主机的路由
因此,我们正在用PHP构建一个web应用程序,并尝试向外部API发出请求。问题是我们得到了一个旋度错误: cURL错误7:无法连接到external.api.com端口443:没有到主机的路由 现在有一点背景知识Php Curl错误:没有到主机的路由,php,apache,ssl,curl,guzzle,Php,Apache,Ssl,Curl,Guzzle,因此,我们正在用PHP构建一个web应用程序,并尝试向外部API发出请求。问题是我们得到了一个旋度错误: cURL错误7:无法连接到external.api.com端口443:没有到主机的路由 现在有一点背景知识 我们正在使用 我们在Apache上托管,Apache在Linux机器上运行,我们还使用SSL API也使用SSL,因此错误消息中的端口443 HTTP请求包括用于身份验证的证书 我已经设法让它在两个不同的开发环境中运行,但在生产环境中没有。我怀疑问题出在Apache的配置上,好像我
- 我们正在使用李>
- 我们在Apache上托管,Apache在Linux机器上运行,我们还使用SSL李>
- API也使用SSL,因此错误消息中的端口443
- HTTP请求包括用于身份验证的证书李>
$netstat-rn
来寻找答案,但我不确定该看什么
编辑:
甚至不能在没有任何参数和任何东西的情况下发出简单的get请求。
但我可以向和提出请求。将在几分钟内编写更多内容。
netstat-aln | grep 443
将显示您的Web服务器是否正在侦听该端口
根据您安装配置文件的Web服务器的不同,该站点将位于/etc/nginx/sites available/default
、/etc/nginx/sites available/yourSite
、/etc/nginx/nginx.conf
或apache的其他类似路径
无论位于何处,配置文件都应包含以下内容:
server {
listen 80;
listen 443 ssl;
server_name yourSite.com;
root "/path/to/yourSite";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /path/to/webserver/youSite.error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
ssl_certificate /path/to/yourSite.crt;
ssl_certificate_key /path/to/yourSite.key;
}
更改此文件后,请确保sudo service nginx reload
或sudo service nginx restart
(或相关apache命令)
sudo服务nginx configtest
或sudo nginx-t
将有助于调试配置文件。今天我遇到了同样的问题,就像这样
我使用curlhttp://localhost:8080
检查我的tomcat是否可以工作
连接到::1:没有到主机的路由时出错
我终于解决了。显然,这是你的ApacheTomcat的问题。
所以你必须先检查你的日志。如果你发现你的端口被使用,找到那条航线并杀死它。然后重新启动你的tomcat
按端口查找课程:netstan-lnp | grep port
kill课程:kill-9****
在大量调试和测试我的所有代码后,我联系了该服务,我正试图使用它的API
他们是一家欧洲服务提供商,并将欧洲知识产权列入了白名单。我们的生产服务器在美国,在他们将我们的IP列入白名单后,一切正常。搜索了大约一整天后,我发现问题出在iptables规则中。
在我的案例中,解决方案是恢复iptables规则,如下所示:
创建包含以下文本的文件:
*滤器
:输入接受[10128:1310789]
:正向接受[0:0]
:输出接受[9631:1361545]
承诺*
运行命令:sudo iptables restore
如果这是一个iptables问题,这将有望解决您的问题。它对我的apache(httpd)有效
这通常是防火墙问题。某些公司环境甚至会阻止生产区的出站流量。@JeffPuckettII$sudo ufw status
返回非活动状态。但您甚至无法访问google.com,这有什么关系?@Houman I能够访问google.com.:)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT