2009-05-23 33 views
8

Ich habe jedes Google-Ergebnis durchsucht, lesen Sie alle Forenbeiträge zu diesem Fehler, aber ich kann es nicht lösen.PECL Installation schlägt fehl

Wenn für irgendetwas mit PECL installieren, ich am Ende immer diesen Fehler:

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

Alles andere bis zu diesem Punkt sie bam!

Ich benutze CentOS 4.3, PEAR ist die neueste stabile Version, GCC ist eine stabile und aktuelle Version. Alles funktioniert wie es soll, aber der C-Compiler scheint immer Fehler zu machen. Ich habe versucht, indem es vorübergehend ermöglicht tmp haben den richtigen privilages für den Betrieb zu machen mit:

mount -o remount,exec,suid /tmp 

Aber das funktioniert nicht.

Ich habe buchstäblich alles versucht, was ohne Erfolg vorgeschlagen wurde. Irgendwelche Ideen?

+0

Bump? Brauche wirklich Hilfe hier Jungs! Hat jemand mehr Ideen? – James

+0

Offensichtliche Frage. Können Sie C-kompilierte Programme ausführen? Hast du eine Hello-World-App (oder etwas anderes) kompiliert? echo 'int main() {printf ("Hallo, Welt! \\ n");}' | gcc -xc - -o Hallo && ./hello –

+0

Aber ja, ich bin sicher, dass es C-kompilierte Apps ausführen kann, wenn nicht Mit PECL habe ich eine Reihe anderer Apps zusammengestellt. – James

Antwort

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 

Ich schrieb das schnell und war in der Lage, APC mit ein wenig Handarbeit zu installieren. Zum Beispiel das Kopieren des Moduls in PHP-Module und das Hinzufügen der Erweiterung zur php.ini. Funktioniert jetzt perfekt.

+0

Dies hat für mich funktioniert, um die oauth Erweiterung zu installieren, die ich zuerst benötigt install: pcre-d, habe ich das mit: yum install pcre pcre-d. Nur für den Fall, dass jemand das gleiche Problem hat. –

9

Ich bin auf Centos 5.3 und ich konnte PECL Installateure zum Laufen bringen (APC in meinem Fall) erfolgreich durch den noexec-Flag auf beiden Entfernen/tmp und/var/tmp

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

Doing das nur on/tmp hat nicht funktioniert - ich habe immer noch den Fehler "überprüft, ob der C-Compiler funktioniert ... configure: error: kann keine C-kompilierten Programme ausführen."

Denken Sie daran, diese Remounts nach der Installation erneut mit noexec auszuführen.

+0

Sie haben gerade mein Leben gerettet ... – kubilay

2

Wenn ich ähnliche Probleme hatte die MongoDB-Treiber installieren, das für mich gearbeitet:

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 

Dann:

sudo sudo pecl install XXX 

(Dies ist kein Sicherheitsloch nicht geöffnet werden, da nur root ausführbare Dateien erstellen in diesen beiden Verzeichnissen)

Beachten Sie, dass die folgenden nicht Arbeit für PECL tut.

sudo pear config-set temp_dir /var/tmp/pear/temp 
Verwandte Themen