Установка PECL не удалась
Вопрос
Я просмотрел все результаты Google, прочитал все сообщения на форуме об этой ошибке, но не могу ее решить.
При использовании установки PECL для чего-либо я всегда получаю эту ошибку:
checking whether the C compiler works... configure: error: cannot run C compiled programs.
Все остальное удается до этого момента, бац!
Я использую CentOS 4.3, PEAR — последняя стабильная версия, GCC — стабильная и последняя версия.Все работает как надо, но компилятор C всегда выдает ошибку.Я попытался предоставить tmp необходимые привилегии для этой операции, временно включив его, используя:
mount -o remount,exec,suid /tmp
Но это не работает.
Я буквально перепробовал все, что предлагали, но безрезультатно.Есть идеи?
Решение 2
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.Сейчас работает отлично.
Другие советы
Я использую Centos 5.3, и мне удалось успешно запустить установщики PECL (в моем случае APC), удалив флаг noexec в обоих файлах /tmp. и /вар/тмп
mount -o remount,exec,suid /tmp
mount -o remount,exec,suid /var/tmp
Выполнение этого только в /tmp не помогло — я все равно получал сообщение об ошибке «проверка работы компилятора C...».настроить:ошибка:не может запускать программы, скомпилированные на языке C».
Не забудьте снова запустить эти перемонтирования с помощью noexec после завершения установки.
Когда у меня возникли аналогичные проблемы с установкой драйвера 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
(Это не создает дыры в безопасности, поскольку только root может создавать исполняемые файлы в этих двух каталогах.)
Обратите внимание, что следующее нет работа в PECL:
sudo pear config-set temp_dir /var/tmp/pear/temp