git pullエラーlibcurl.so.3が見つかりません

git pullエラーlibcurl.so.3が見つかりません

githubリポジトリのPHPスクリプトがあり、git pullWebサービスフック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

まず、これはUbuntu関連の問題ではありません。ここではどのトピックを質問できますか?– 共有ホスティングのCentOSで実行されるPHPスクリプトについて質問しています。誰でもUnixとLinuxスタックオーバーフローサーバー障害または他のスタック交換サイトこの質問に答えるのに適しています。

それにもかかわらず、GitHubからインポートするには別のURLを使用しているようです。 HTTPSアクセスがgit-remote-https必要です。curlSSHまたはGit(読み取り専用)プロトコルを使用してください。つまり[email protected]:user/repository.gitgit://github.com/user/repository.gitリモートURLを変更するか、リポジトリを再複製してみてください。また、Gitが正しいディレクトリで実行されていることを確認してください(例:add cd /my/repo;toshell_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がインストールされて動作しない場合、rootシステムyumが深刻に破損する可能性があります。私が知る限り、yumこれはCentOSのデフォルトのパッケージマネージャであり、そこにある必要があり、動作するはずです。

~/git/usr/bin/git

本当に変な道です。gitパッケージをホームディレクトリに手動で抽出したと思いますか?

error while loading shared libraries: libcurl.so.3

さて、パッケージを手動で抽出した場合、パッケージが依存しているライブラリが見つからない可能性がありcurlますgit。ライブラリを抽出してみることもできますが、ホームディレクトリに入れるだけでは魔法のようには機能しません。ライブラリが動作する$LD_LIBRARY_PATHようにするには、あちこちを歩く必要があるかもしれませんが、私の経験では簡単ではありません。

作業に着手しyumたら、それを使って `gitパッケージを正しくインストールすると、この問題は解決します。

関連情報