8

私はすべてのGoogleの結果を閲覧し、このエラーに関するすべてのフォーラムの投稿を読みましたが、解決できません。

PECLインストールを何かに使用すると、常に次のエラーが発生します。

checking whether the C compiler works... configure: error: cannot run C compiled programs.

それまでは他のすべてが成功します。

私はCentOS4.3を使用しています。PEARは最新の安定バージョンであり、GCCは安定した最新バージョンです。すべてが正常に機能していますが、Cコンパイラは常にエラーのようです。以下を使用して一時的に有効にすることで、tmpに操作に適した特権を持たせようとしました。

mount -o remount,exec,suid /tmp

しかし、それはうまくいきません。

私は文字通り、提案されたすべてのことを無駄に試しました。何か案は?

4

3 に答える 3

9

私はCentos5.3を使用しており、/tmp/var / tmpの両方でnoexecフラグを削除することで、PECLインストーラー(私の場合はAPC)を正常に実行できました。

mount -o remount,exec,suid /tmp
mount -o remount,exec,suid /var/tmp

/ tmpでのみこれを実行しても機能しませんでした-「Cコンパイラが機能するかどうかを確認しています...configure:エラー:Cコンパイル済みプログラムを実行できません」というエラーが発生しました。

インストールが完了した後、noexecを使用してこれらの再マウントを再度実行することを忘れないでください。

于 2009-11-21T03:24:48.837 に答える
7
cd ~
mkdir setups
cd setups
wget http://pecl.php.net/get/APC-3.1.2.tgz
tar -xvf APC-3.1.2.tgz
cd APC-3.1.2
phpize && ./configure --with-apxs && make

私はすぐにそれを書き留め、少しの手作業でAPCをインストールすることができました。モジュールをPHPモジュールにコピーしたり、php.iniに拡張機能を追加したりします。今は完璧に動作します。

于 2009-05-25T13:34:48.313 に答える
2

MongoDBドライバーのインストールで同様の問題が発生した場合、これはうまくいきました。

sudo mkdir /root/tmp.pear
sudo mkdir /root/tmp.pear-build-root

sudo ln -s /root/tmp.pear /tmp/pear
sudo ln -s /root/tmp.pear-build-root /tmp/pear-build-root

それで:

sudo sudo pecl install XXX

(これらの2つのディレクトリに実行可能ファイルを作成できるのはrootだけなので、これによってセキュリティホールが開かれることはありません。)

以下はPECLでは機能しないことに注意してください。

sudo pear config-set temp_dir /var/tmp/pear/temp
于 2011-03-13T19:00:40.650 に答える