Erro Git pull libcurl.so.3 não encontrado

2

Eu tenho um script php para git pull do meu repositório github configurado em meus URLs de hooks do serviço da Web da seguinte forma:

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

Quando abro este script no navegador, recebo este erro:

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

Estou em um servidor godaddy executando a versão 5.9 do CentOS e uname -mrs yields:

Linux 2.6.18-348.3.1.el5PAE i686

Quando tentei fazer:

yum install curl

Eu recebo um erro que o comando yum não pode ser encontrado.

Eu realmente não tenho idéia do que está acontecendo aqui porque quando eu ssh no meu servidor e faço git pull do terminal ou executo o script como php myscript.php , ele funciona bem e todas as mudanças são buscadas. Como as dependências são alteradas quando eu o executo no navegador?

Qualquer ajuda é muito apreciada.

    
por Vivek Pradhan 09.06.2013 / 09:02

2 respostas

1

Em primeiro lugar, esta não é uma questão relacionada ao Ubuntu, consulte Quais tópicos posso perguntar aqui? - você está perguntando sobre o script PHP sendo executado no CentOS em uma hospedagem compartilhada. Unix & Linux , Stack Overflow , Falha do servidor , ou outros sites do Stack Exchange são mais adequados para essa pergunta.

De qualquer forma, parece que você está de alguma forma usando URLs diferentes para extrair do GitHub; git-remote-https precisa de curl para o acesso HTTPS. Use o protocolo SSH ou Git (somente leitura), ou seja, [email protected]:user/repository.git ou git://github.com/user/repository.git ; tente alterar sua URL remota ou clonar o repositório novamente. Além disso, certifique-se de que o Git seja executado no diretório correto, por exemplo, adicione cd /my/repo; ao comando shell_exec . Além disso, o melhor é especificar a ramificação remota para pulls automatizados, ou seja, git pull origin master .

É possível que o GoDaddy limite o acesso de scripts PHP a certas bibliotecas - o que também afeta os scripts de shell executados no contexto do PHP. Se tudo mais falhar, você pode considerar pesquisar o repositório remoto, ou seja, executar git pull periodicamente com o Cron.

    
por 11.06.2013 / 13:02
0
yum install curl

I get an error that the command yum cannot be found

Você é root ? É possível que o seu $PATH não contenha /sbin:/usr/sbin ? Experimente /sbin/yum e /usr/sbin/yum para se certificar de que não é um problema $PATH .

Eu não sou um especialista do CentOS, mas se você estiver de fato trabalhando como root , e yum realmente não estiver instalado e funcionando, seu sistema poderá ser seriamente danificado. Até onde sei, yum é o gerenciador de pacotes padrão do CentOS e deve absolutamente existir e funcionar.

~/git/usr/bin/git

Esse é um caminho muito estranho. Parece que você extraiu manualmente o pacote git em seu diretório pessoal?

error while loading shared libraries: libcurl.so.3

Bem, se você extraiu o pacote manualmente, provavelmente está faltando a biblioteca curl da qual o pacote git depende. Você poderia tentar extrair esta biblioteca também, mas apenas colocá-la em seu diretório home não vai magicamente fazê-la funcionar ... você provavelmente precisará mexer com $LD_LIBRARY_PATH para fazer esse trabalho, o que na minha experiência não é muito fácil .

Se você puder obter yum funcionando e, em seguida, usá-lo para instalar o pacote 'git corretamente, isso resolverá esse problema para você.

    
por 19.09.2013 / 01:52

Tags