500 - php curl_exec()方法 报500错误
最近在用做商城的微信扫码支付功能时,在代码构建微信订单然后通过curl向微信请求的时候,curl_exec函数报500错误,且没有详细的错误信息给出。之前用阿里云服务器、我的本地测试时,均无问题,因为客户需要现在程序放在了阿里云的虚拟主机上,就出现这个问题了,并且我确认curl已开启可以用,错误显示display_errors和error_reporting也已经设置成显示所有错误。但:
1、只显示500错误,不显示任何详细的错误信息。
2、该主机只能看到访问日志,无法看到错误日志,也无法看到和修改php.ini设置和apache设置等。
3、利用@、try catch也无法使这个错误跳过,并且curl的资源参数也是正确的(我每个参数都打印过)
综上所述,我仍未找到方法定位这个错误,希望大神指导指导。
<code> $ch = curl_init(); //设置超时 curl_setopt($ch, CURLOPT_TIMEOUT, $second); //如果有配置代理这里就设置代理 if(WxPayConfig::getValue('curl_proxy_host') != "0.0.0.0" && WxPayConfig::getValue('curl_proxy_port') != 0){ curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::getValue('curl_proxy_host')); curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::getValue('curl_proxy_port')); } curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验 //设置header curl_setopt($ch, CURLOPT_HEADER, FALSE); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); if($useCert == true){ //设置证书 //使用证书:cert 与 key 分别属于两个.pem文件 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::getValue('sslcert_path')); curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::getValue('sslkey_path')); } //post提交方式 curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); //运行curl $data = curl_exec($ch); //返回结果 if($data){ curl_close($ch); return $data; } else { $error = curl_errno($ch); curl_close($ch); throw new WxPayException("curl出错,错误码:$error"); }</code>
回复内容:
最近在用做商城的微信扫码支付功能时,在代码构建微信订单然后通过curl向微信请求的时候,curl_exec函数报500错误,且没有详细的错误信息给出。之前用阿里云服务器、我的本地测试时,均无问题,因为客户需要现在程序放在了阿里云的虚拟主机上,就出现这个问题了,并且我确认curl已开启可以用,错误显示display_errors和error_reporting也已经设置成显示所有错误。但:
1、只显示500错误,不显示任何详细的错误信息。
2、该主机只能看到访问日志,无法看到错误日志,也无法看到和修改php.ini设置和apache设置等。
3、利用@、try catch也无法使这个错误跳过,并且curl的资源参数也是正确的(我每个参数都打印过)
综上所述,我仍未找到方法定位这个错误,希望大神指导指导。
<code> $ch = curl_init(); //设置超时 curl_setopt($ch, CURLOPT_TIMEOUT, $second); //如果有配置代理这里就设置代理 if(WxPayConfig::getValue('curl_proxy_host') != "0.0.0.0" && WxPayConfig::getValue('curl_proxy_port') != 0){ curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::getValue('curl_proxy_host')); curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::getValue('curl_proxy_port')); } curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验 //设置header curl_setopt($ch, CURLOPT_HEADER, FALSE); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); if($useCert == true){ //设置证书 //使用证书:cert 与 key 分别属于两个.pem文件 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::getValue('sslcert_path')); curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::getValue('sslkey_path')); } //post提交方式 curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); //运行curl $data = curl_exec($ch); //返回结果 if($data){ curl_close($ch); return $data; } else { $error = curl_errno($ch); curl_close($ch); throw new WxPayException("curl出错,错误码:$error"); }</code>
一般来说虚拟主机会让你看错误日志的,不过可能是最后的多少条。
我猜想可能是超出内存限制了吧,你提交工单问问。
何不贴代码?
在php文件最开始加入以下代码:
<code>set_error_handler(function(){ echo '<pre class="brush:php;toolbar:false">'; var_dump(func_get_args()); debug_print_backtrace(); },E_ERROR); set_error_handler(function(\Exception $e){ echo '<pre class="brush:php;toolbar:false">'; echo $e->getFile().PHP_EOL; echo $e->getLine().PHP_EOL; echo $e->getMessage().PHP_EOL; echo $e->getTraceAsString().PHP_EOL; });

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP의 핵심 이점에는 학습 용이성, 강력한 웹 개발 지원, 풍부한 라이브러리 및 프레임 워크, 고성능 및 확장 성, 크로스 플랫폼 호환성 및 비용 효율성이 포함됩니다. 1) 배우고 사용하기 쉽고 초보자에게 적합합니다. 2) 웹 서버와 우수한 통합 및 여러 데이터베이스를 지원합니다. 3) Laravel과 같은 강력한 프레임 워크가 있습니다. 4) 최적화를 통해 고성능을 달성 할 수 있습니다. 5) 여러 운영 체제 지원; 6) 개발 비용을 줄이기위한 오픈 소스.

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.

여전히 인기있는 것은 사용 편의성, 유연성 및 강력한 생태계입니다. 1) 사용 편의성과 간단한 구문은 초보자에게 첫 번째 선택입니다. 2) 웹 개발, HTTP 요청 및 데이터베이스와의 우수한 상호 작용과 밀접하게 통합되었습니다. 3) 거대한 생태계는 풍부한 도구와 라이브러리를 제공합니다. 4) 활성 커뮤니티와 오픈 소스 자연은 새로운 요구와 기술 동향에 맞게 조정됩니다.
