git pull 오류 libcurl.so.3을 찾을 수 없습니다.

git pull 오류 libcurl.so.3을 찾을 수 없습니다.

github 저장소의 PHP 스크립트가 있으며 git pull웹 서비스 후크 URL에 다음과 같이 설정되어 있습니다.

<?php
  echo shell_exec('~/git/usr/bin/git pull 2>&1');
?> 

브라우저에서 이 스크립트를 열면 다음 오류가 발생합니다.

git-remote-https: error while loading shared libraries: libcurl.so.3: cannot open shared object file: No such file or directory

저는 CentOS 버전 5.9를 실행하는 godaddy 서버에 있으며 다음을 uname -mrs생성합니다.

Linux 2.6.18-348.3.1.el5PAE i686

내가 이것을 하려고 할 때:

yum install curl

yum명령을 찾을 수 없다는 오류 메시지가 나타납니다 .

git pull서버에 ssh로 접속하여 터미널에서 작업을 수행하거나 비슷한 스크립트를 실행 하면 php myscript.php제대로 작동하고 모든 변경 사항이 적용되기 때문에 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다 . 브라우저에서 실행할 때 종속성은 어떻게 변경됩니까?

어떤 도움이라도 대단히 감사하겠습니다.

답변1

우선 이것은 우분투 관련 문제가 아닙니다.여기서는 어떤 주제를 질문할 수 있나요?– 공유 호스팅의 CentOS에서 실행되는 PHP 스크립트에 대해 질문하고 있습니다. 누구나유닉스와 리눅스,스택 오버플로,서버 장애, 또는다른 스택 교환 사이트이 질문에 답하는 데 더 적합합니다.

그럼에도 불구하고 GitHub에서 가져오려면 다른 URL을 사용하는 것 같습니다. HTTPS 액세스가 git-remote-https필요합니다 . curlSSH 또는 Git(읽기 전용) 프로토콜을 사용하십시오. 즉 [email protected]:user/repository.git, git://github.com/user/repository.git원격 URL을 변경하거나 저장소를 다시 복제해 보십시오. 또한 Git이 올바른 디렉터리에서 실행되고 있는지 확인하세요(예: add cd /my/repo;to shell_exec명령). 또한 자동 풀링을 위한 원격 분기를 지정하는 것이 가장 좋습니다 git pull origin master.

GoDaddy는 특정 라이브러리에 대한 PHP 스크립트의 액세스를 제한할 수 있으며 이는 PHP 컨텍스트 내에서 실행되는 셸 스크립트에도 영향을 미칩니다. 다른 모든 방법이 실패하면 원격 저장소를 폴링하는 것을 고려할 수 있습니다. 즉, git pullCron을 사용하여 주기적으로 폴링하는 것입니다.

답변2

yum install curl

yum 명령을 찾을 수 없다는 오류가 발생합니다.

누구세요 root? 당신의 것에는 $PATH그것을 포함하지 않을 수도 있습니까 /sbin:/usr/sbin? 이것이 문제가 아닌지 확인해 /sbin/yum보세요 ./usr/sbin/yum$PATH

저는 CentOS 전문가는 아니지만 실제로 작업을 하고 있는데 CentOS rootyum설치되어 작동하지 않는다면 시스템이 심각하게 손상될 수 있습니다. 내가 아는 한, yum이는 CentOS의 기본 패키지 관리자이며 반드시 거기에 있어야 하며 작동해야 합니다.

~/git/usr/bin/git

참 이상한 길입니다. git패키지를 홈 디렉터리에 수동으로 추출한 것 같나요 ?

error while loading shared libraries: libcurl.so.3

글쎄, 패키지를 수동으로 추출한 경우 이제 패키지가 의존하는 라이브러리가 누락될 수 curl있습니다 git. 라이브러리를 추출해 볼 수도 있지만 홈 디렉토리에 넣는 것만으로는 마술처럼 작동하지 않습니다. 라이브러리가 작동 $LD_LIBRARY_PATH하도록 하려면 여기저기 돌아다녀야 할 수도 있는데 제 경험상 쉽지 않습니다.

작업 에 착수한 yum후 이를 사용하여 `git 패키지를 올바르게 설치하면 이 문제가 해결될 것입니다.

관련 정보