1. php curl的默认调用方法,get方式访问url
$ch = curl_init()
curl_setopt($ch, CURLOPT_HTTPHEADER, $header) //设置http头
curl_setopt($ch, CURLOPT_ENCODING, gzip )//设置为客户端支持gzip压缩
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ) //设置连接等待时间
curl_setopt($ch, CURLOPT_URL, $url )
curl_exec( $ch )
if ($error = curl_error($ch) ) {//出错处理return -1}fclose($fp)
$curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE) //获取http返回值
if( $curl_code == 200 ) {
//正常访问url}//异常
2. 设置http header支持curl访问lighttpd服务器Java代码$header[]= 'Expect:'
$header[]= 'Expect:'
3. 设置curl,只获取http header,不获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 1)
curl_setopt($ch, CURLOPT_NOBODY, 1)
curl_setopt($ch, CURLOPT_HEADER, 1)
curl_setopt($ch, CURLOPT_NOBODY, 1)
或者只获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 0) // make sure we get the body
curl_setopt($ch, CURLOPT_NOBODY, 0)
curl_setopt($ch, CURLOPT_HEADER, 0) // make sure we get the body
curl_setopt($ch, CURLOPT_NOBODY, 0)
4. 访问虚拟主机,需设置Host
$header[]= 'Host: '.$host
5. 使用post, put, delete等REStful方式访问urlpost:curl_setopt($ch, CURLOPT_POST, 1 )
put, delete:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, DELETE) //或者PUT,需要服务器支持这些方法。
6. 保存下载内容为文件
一、原因分析
web站点目前主要分为http和https两种协议,其中https类型的网站都是通过ssl协议+http协议的,是目前最安全的网站协议,访问此类网站的时候,会走ssl协议,验证访问者的证书,检测是否安全。
通过curl访问此类网站也是如此流程,但是curl中需要添加相应的参数,绕过ssl证书的验证,才可以正常访问,如出现此错误的一般原因是没有加此参数。
CURLOPT_SSL_VERIFYHOST的值
设为0表示不检查证书
设为1表示检查证书中是否有CN(common name)字段
设为2表示在1的基础上校验当前的域名是否与CN匹配。
二、解决方案
如果出现:
PHP Notice: curl_setopt():
CURLOPT_SSL_VERIFYHOST with value 1 is deprecated and will be removed as of libcurl 7.28.1. It is recommended to use value 2 instead in
一般原因是你设置了 curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, true )
改成curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, 2 )就行了。
扩展资料
PHP其他原因错误:
1、错误现象
在用curl进行模拟调用时,curl接收内容会出现"Empty reply from server" 和 "Recv failure: Connection was reset"的错误。
2、解决方案
经过对apache的error_log进行跟踪,出现错误"Connection reset by peer: core_output_filter: writing data to the network"
修改httpd.conf,在虚拟主机上添加如下内容:
EnableSendfile off
EnableMMAP off
修改后"Empty reply from server"错误消失。
反向绑定域名最初应该是应用在站点负载均衡和域名内网转发上,利用反向绑定域名的 方法 可以将用户的不同请求分发到不同的服务器上,下面是我给大家整理的一些有关反向绑定域名的方法,希望对大家有帮助!反向绑定域名的方法
一、利用虚拟主机空间作反向绑定域名
1、先找到一个支持自定义.htaccess,apache服务器,允许有反向代(^_^)理的权限的免费空间或者虚拟主机,将空间的.htaccess文件下载到本地,用记事本打开,将下列代码添加进去,再上传,如下:RewriteEngine On RewriteBase / RewriteRule ^(.*)$ hp://域名/$1 [P]
2、注意把代码中的网址替换成你想要反向绑定域名的域名,这里是强制将域名绑定到SAE空间上,用了SAE的二级域名地址
3、如果你找不到支持.htaccess的URL地址重写的虚拟主机或者空间,可以直接使用7ghost这个PHP程序,只要空间支持allow_furl_open和curl、容量至少要有500K即可。如果启用缓存的话需要 写权限和空间足够大。
4这是7ghost程序设置界面(点击放大),利用它你可以反向Dai理任何网站,详细的操作方法
二、利用Nginx反向绑定域名
1如果你有VPS主机,那么可以用Nginx的反向配置来搭建一个反向绑定域名的平台了,Nginx强大之处还在于还可以变成一个缓存平台,大大加快你反向Dai理的网站的访问速度。
2因为国内的空间不让绑定没有BA的域名,部落之前利用Nginx反向绑定域名到国内的空间上
三、利用kangle web搭建反向绑定域名服务器
1kangle web服务器是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向Dai理服务器软件,能实现强大的访问请求控制(url,ip地址,连接数/网速限制,hp头,时间控制,多种hp认证,#服务器负载,url重定向,url重写,内容过滤等等)。
2与上面的采用Nginx反向配置来搭建反向绑定域名不同的是,kangle web有良好的Web操作界面,通过搭建不同的配置可以实现复杂的反向域名
四、利用AMH和upupw来反向绑定域名
1AMH是国内一个开源的主机面板,可以创建 LNMP、LAMP、LNMH 等不同WEB应用环境,新版本的AMH还支持apache2.4和HHVM。AMH相应的功能模块也非常地多,其中AMProxy就是一个反向绑定域名模块。
AMProxy的2.0版本支持缓存管理功能,支持在线关键字添加、替换,支持设置不同类型文件替换、与支持添加自定义首尾html代码块等。利用CDN智能解析功能,将不同路线、地理位置的用户解析到相应服务器,对用户访问进行缓存加速,同时减轻源站的服务器压力
利用AMH反向绑定域名并成功绕过白**名单的方法,首先是要求:一个有BA号的域名、一个没有BA号的域名、一台可以访问的境外主机,美国的VPS主机就可以。
使用 root 账号登录 Linux 服务器。执行 amh 安装脚本:wget hp://amh.sh/amh.sh &&bash amh.sh 2>&1 | tee amh.log,根据提示输入选择1~3选项。输入1回车,进入安装
极速安装方式大约只需要1至3分钟(以服务器性能为准),成功安装后系统会提示AMH与MySQL默认账号密码。可使用普通连接访问面板,ip:8888,或加密的连接访问面板,ip:9999
登陆后台找到 模块扩展 >下载模块,大约在第3页找到 AMProxy-2.0 下载并安装。在管理模块中找到并进入设置界面,可以看到新增AMProxy反向代理网站一栏。绑定域名:输入没有BA号的域名(IP),反代域名:输入有BA号的域名(IP)
用上面的方法,默认是反代到国内主机的80端口上,可是有些主机反代到80端口后还是无法访问,下面说一下如何使用其他端口建站。这里以没有BA号的域名 bukets.net和有BA号的域名 demo.vsen.me来作演示,环境是upupw+amh。
先在国内的云主机上安装upupw,然后新建虚拟主机域名输入为 demo.vsen.me,目录自设。打开upupw目录进入 Apache2\conf,找到hpd-vhosts.conf并打开(注意不要使用系统的 笔记本 或文本文档打开,我用的是Notepad++)
找到刚刚新建的虚拟主机规则,并将 servername demo.vsen.me:80 改为 servername demo.vsen.me:8000,保存并关闭。继续打开目录下的hp.conf文件,在最下方 # upupw apache conf end 前增加如下代码,保存并关闭。
# 新增监听端口Include conf/hpd-listen.conf
在 Apache2\conf 目录下新建 hpd-listen.conf 文件,在里面写入 Listen 8000,保存并关闭。打开系统防火墙(控制面板中),选择 例外 选项卡,点击下方的 添加端口 按钮,名称自起,端 口号 写入8000,确定。回到upupw面板,重启
没有意外的话,访问bukets.net就可以成功打开网站了。上面只做了一个网站的例子,如果以后有多个网站,那就需要重复以上步骤了
END
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)