2009-05-23 12 views
8

Ho sfogliato tutti i risultati di Google, ho letto tutti i post del forum su questo errore, ma non riesco a risolverlo.Installazione PECL fallisce

Quando si utilizza PECL installare per qualsiasi cosa, finisco sempre per questo errore:

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

Tutto il resto riesce fino a quel punto li Bam!

Sto usando CentOS 4.3, PEAR è l'ultima versione stabile, GCC è una versione stabile e recente. Tutto funziona come dovrebbe, ma il compilatore C sembra sempre un errore. Ho cercato di rendere tmp avere i privilegi di giusti per l'operazione attivando temporaneamente utilizzando:

mount -o remount,exec,suid /tmp 

Ma questo non funziona.

Ho letteralmente provato tutto ciò che è stato suggerito da inutilmente. Qualche idea?

+0

Urto? Ho davvero bisogno di aiuto qui ragazzi! Qualcuno ha avuto più idee? – James

+0

Domanda ovvia. * Può * eseguire programmi compilati C? Hai compilato un'app hello-world (o altro)? echo 'int main() {printf ("Ciao, mondo! \\ n");}' | gcc -xc - -o ciao && ./hello –

+0

Ma sì, sono sicuro che può eseguire applicazioni C-compilate, quando no usando PECL ho compilato una serie di altre app. – James

risposta

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 

Ho scritto rapidamente e ho potuto installare APC con un po 'di lavoro manuale. Come copiare il modulo in moduli PHP e aggiungere l'estensione al php.ini. Funziona perfettamente ora.

+0

Questo ha funzionato per me, per installare l'estensione oauth che prima avevo bisogno di installa: pcre-d, l'ho fatto con: yum install pcre pcre-d. Nel caso qualcuno abbia lo stesso problema. –

9

Sono su CentOS 5.3 e sono stato in grado di ottenere gli installatori PECL esecuzione (APC nel mio caso) con successo togliendo il flag noexec sia/tmp e/var/tmp

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

Doing questo solo su/tmp non ha funzionato - ho ancora ricevuto l'errore "controllando se il compilatore C funziona ... configure: errore: impossibile eseguire programmi compilati C".

Ricordare di eseguire nuovamente questi remounts con noexec al termine dell'installazione.

+0

mi hai appena salvato la vita ... – kubilay

2

Quando ho avuto problemi simili l'installazione del driver MongoDB, questo ha funzionato per me:

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 

Poi:

sudo sudo pecl install XXX 

(Questo non si apre un buco nella sicurezza, perché solo root può creare eseguibili in queste due directory.)

Si noti che quanto segue: non lavoro per PECL:

sudo pear config-set temp_dir /var/tmp/pear/temp 
Problemi correlati