curl_init () 함수가 작동하지 않습니다.
PHPcurl_init () 함수가 작동하지 않습니다.
안녕하세요, POST 요청 내에서 PHP 포스트 요청을 시도합니다 내게 유용 할 수 있다고 생각하고 아래 코드를 제공합니다.
$sub_req_url = "http://localhost/index1.php";
$ch = curl_init($sub_req_url);
$encoded = '';
// include GET as well as POST variables; your needs may vary.
foreach($_GET as $name => $value) {
$encoded .= urlencode($name).'='.urlencode($value).'&';
}
foreach($_POST as $name => $value) {
$encoded .= urlencode($name).'='.urlencode($value).'&';
}
// chop off last ampersand
$encoded = substr($encoded, 0, strlen($encoded)-1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_exec($ch);
curl_close($ch);
index.php 파일을 만들고 index2.php는 같은 디렉토리에있는 또 다른 파일이며, 페이지를 열면 error.log 파일에 다음 오류가 표시됩니다.
[Sat Dec 18 15:24:53 2010] [error] [client ::1] PHP Fatal error: Call to undefined function curl_init() in /var/www/testing1/index.php on line 5
내가 원하는 것은 게시 요청을 보내는 예약 양식을 가지고 게시 값을 처리하고 다시 게시 요청을 paypal에 보내려고합니다.
해결법
-
==============================
1.PHP에 대한 CURL 지원을 설치해야합니다.
PHP에 대한 CURL 지원을 설치해야합니다.
우분투에서는 이것을 통해 설치할 수 있습니다.
sudo apt-get install php5-curl
apt-get을 사용하고 있다면 PHP 구성을 편집 할 필요가 없지만 Apache를 다시 시작해야합니다.
sudo /etc/init.d/apache2 restart
그래도 문제가 계속되는 경우 phpinfo ()를 사용하여 CURL이 설치된 것으로 표시되는지 확인하십시오. (그렇지 않은 경우 패키지를 설치하지 않는 이유를 묻는 또 다른 질문을 열어야 할 수도 있습니다.)
PHP CURL 설명서에는 설치 설명서가 있습니다.
-
==============================
2.Windows의 경우 관심있는 사람이 있으면 php.ini에서;를 제거하여 다음 줄의 주석 처리를 제거하십시오.
Windows의 경우 관심있는 사람이 있으면 php.ini에서;를 제거하여 다음 줄의 주석 처리를 제거하십시오.
;extension=php_curl.dll
아파치 서버를 다시 시작하십시오.
-
==============================
3.우분투의 경우 : 필요한 경우 extension = php_curl.so를 php.ini에 추가하십시오. 그런 다음 sudo 서비스 apache2 restart
우분투의 경우 : 필요한 경우 extension = php_curl.so를 php.ini에 추가하십시오. 그런 다음 sudo 서비스 apache2 restart
이것은 일반적으로 자동으로 처리되지만 상황 (예 : 공유 개발 환경)은 수동으로 다시 활성화해야하는 상황이 있습니다.
지문은 다음 세 가지 조건 모두와 일치합니다.
-
==============================
4.나는 우분투 16.04에서 steps.My PHP 버전을 사용하여 7.0 일하고 있어요
나는 우분투 16.04에서 steps.My PHP 버전을 사용하여 7.0 일하고 있어요
나는이 링크에서 자세한 정보를 확인했다.
-
==============================
5.제 경우에는 Xubuntu에서 libcurl3 libcurl3-dev 라이브러리를 설치해야했습니다. 이 명령으로 모든 것이 작동했습니다 :
제 경우에는 Xubuntu에서 libcurl3 libcurl3-dev 라이브러리를 설치해야했습니다. 이 명령으로 모든 것이 작동했습니다 :
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
-
==============================
6.Windows 플랫폼에서 PHP7 / Apache 2.4를 사용하여이 오류가 발생했습니다. curl_init는 CLI에서는 작동했지만 Apache 2.4에서는 작동하지 않았습니다. libeay32.dll 및 ssleay32.dll에 대한 LoadFile 지시문을 추가하여이 문제를 해결했습니다.
Windows 플랫폼에서 PHP7 / Apache 2.4를 사용하여이 오류가 발생했습니다. curl_init는 CLI에서는 작동했지만 Apache 2.4에서는 작동하지 않았습니다. libeay32.dll 및 ssleay32.dll에 대한 LoadFile 지시문을 추가하여이 문제를 해결했습니다.
LoadFile "C:/path/to/Php7/libeay32.dll" LoadFile "C:/path/to/Php7/ssleay32.dll" LoadFile "C:/path/to/Php7/php7ts.dll" LoadModule php7_module "C:/path/to/Php7/php7apache2_4.dll"
-
==============================
7.이 버그를 수정하려면 다음과 같이하십시오.
이 버그를 수정하려면 다음과 같이하십시오.
-
==============================
8.1 단계 :
1 단계 :
C:/(path to php folder)/php.ini enable extension=php_curl.dll
(줄 끝 부분에있는;
2 단계 :
이것을 Apache / conf / httpd.conf에 추가하십시오 (libeay32.dll, ssleay32.dll, libssh2.dll은 php7 폴더에서 직접 찾습니다)
# load curl and open ssl libraries LoadFile "C:/(path to php folder)/libeay32.dll" LoadFile "C:/(path to php folder)/ssleay32.dll" LoadFile "C:/(path to php folder)/libssh2.dll"
-
==============================
9.시스템에 여러 버전의 PHP가 설치되어있는 경우에 대한 답을 추가하면 PHP 컬 패키지를 이미 설치했지만 Apache는 여전히 동일한 오류를 표시합니다.
시스템에 여러 버전의 PHP가 설치되어있는 경우에 대한 답을 추가하면 PHP 컬 패키지를 이미 설치했지만 Apache는 여전히 동일한 오류를 표시합니다.
curl_init ()는 PHP 7에서 php-curl이 활성화되어 있어도 정의되지 않았습니다.
-
==============================
10.(Windows에서 PHP와 Apache를 통해 Curl을 사용하려고 시도하는 중 ...)
(Windows에서 PHP와 Apache를 통해 Curl을 사용하려고 시도하는 중 ...)
계속 오류가 발생했습니다. 정의되지 않은 함수 'curl_init ()'호출
필자는 php.ini 파일에서이 줄로 컬을 활성화했는지 확인했습니다. extension = php_curl.dll
extension_dir 변수가 다음과 같이 올바르게 설정되었는지 확인했습니다. extension_dir = "ext"
다른 사람들이 포럼에서 말한 모든 것을하고 curl이 phpinfo ()에 대한 호출에서 나타나지 않고 위와 같은 오류가 계속 발생했습니다.
마지막으로 아파치는 기본적으로 C : \ Windows 폴더에서 php.ini를 찾는다. PHP 설치 폴더에서 php.ini를 변경했습니다. php.ini를 C : \ Windows에 복사하면 모든 것이 잘 작동합니다.
그걸 알아내는 데 영원히 동원되었으므로 누군가에게 도움이 될 경우를 대비하여 게시 할 것이라고 생각했습니다.
-
==============================
11.RusAlex 대답은 바로 아파치에 대해 curl을 설치하고 활성화하고 아파치 서비스를 다시 시작해야한다는 것입니다.
RusAlex 대답은 바로 아파치에 대해 curl을 설치하고 활성화하고 아파치 서비스를 다시 시작해야한다는 것입니다.
sudo apt-get install php5-curl sudo service apache2 restart
내 우분투 서버에서 nginx와 php5-fpm을 사용했지만 다음과 같은 문제가 발생했습니다. 나는 nginx와 php5-fpm을 다시 시작해야만했다.
sudo service nginx restart sudo service php5-fpm restart
하지만 나는 php5-fpm 프로세스가 작동하지 않는데, 이는 우분투의 버그 다. https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1242376 그래서 모든 유휴 php5-fpm 프로세스를 종료시켜 php5-fpm을 다시 시작하여 컬 모듈이 실제로로드되도록해야했습니다.
sudo kill <Process Id of php5-fpm Process)
-
==============================
12.함수 curl_int (); 서버 오류를 일으키고, sudo를 설치하십시오. apt-get install php5-curl apache2 서버를 다시 시작합니다 .. 매력처럼 작동합니다.
함수 curl_int (); 서버 오류를 일으키고, sudo를 설치하십시오. apt-get install php5-curl apache2 서버를 다시 시작합니다 .. 매력처럼 작동합니다.
-
==============================
13.이 답변은 https 요청입니다.
이 답변은 https 요청입니다.
컬에는 루트 인증서가 내장되어 있지 않습니다 (대부분의 최신 브라우저처럼). 명시 적으로 cacert.pem 파일을 지정해야합니다.
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/file/cacert.pem');
이것이 없으면, 컬링은 ssl을 통해 다시 전송 된 인증서를 검증 할 수 없다. Curl에서 SSL을 사용할 때마다이 동일한 루트 인증서 파일을 사용할 수 있습니다.
여기서 cacert.pem 파일을 얻을 수 있습니다. http://curl.haxx.se/docs/caextract.html
PHP cURL이 HTTPS에서 작동하지 않음
-
==============================
14.PHP 7 및 Windows x64의 경우
PHP 7 및 Windows x64의 경우
libeay32.dll, libssh2.dll 및 ssleay32.dll은 apache / bin에 있으면 안되며 php 디렉토리에만 존재하고 php 디렉토리를 시스템 환경 변수에 추가해야합니다. 나를 위해 일하는이.
물론 php.ini에서 php_curl.dll도 활성화해야합니다.
-
==============================
15.그냥 wamp 서버의 마지막 버전을 설치하십시오.
그냥 wamp 서버의 마지막 버전을 설치하십시오.
from https://stackoverflow.com/questions/4477535/curl-init-function-not-working by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
php 함수를 비동기 적으로 호출하는 PHP 스레딩 (0) | 2018.09.19 |
---|---|
<? ?> PHP 5.3.1에서 작동하지 않는 태그 (0) | 2018.09.19 |
CORS 작동하지 않는 PHP (0) | 2018.09.19 |
PHP 세션 파일 정리 (0) | 2018.09.19 |
500 내부 서버 오류가 HTML 파일이 아닌 [중복] (0) | 2018.09.19 |