Intereting Posts
Получите результаты от php exec (), пока команда все еще работает? Ошибка SQL Query рядом с '' session_regenerate_id () не работает в IE11 / Edge Uncaught ReflectionException: Журнал классов не существует Laravel 5.2 Выбор миниатюры с внешней ссылки Перемещение строки из одной таблицы в другую (список значений вставки не соответствует списку столбцов) Настройка и проверка Cookie с PHP, не работающим в Safari Попытка понять оптимизацию array_diff_uassoc PHP: синтаксическая ошибка, неожиданное «&» в /etc/php5/cli/php.ini в строке 107 MYSQL не возвращает результат PHP при запросе только для первого рейтинга Как я могу получить простоту PHP (развертывания), но мощь Perl? Как читать XML-файл с неопределенным пространством имен с помощью XMLReader? как создать многомерный массив PHP PHP: Как вы определяете каждую N-ю итерацию цикла? Как очистить определенные данные от царапин с помощью простого анализатора html dom

Как изменить папку Pear / PECL по умолчанию из / var / tmp?

Я пытаюсь установить пакет PECL в Linux, но установщик никогда не проходит стадию настройки.

Мой хостинг-провайдер установил файловую систему в / var / tmp, которая предотвращает выполнение файлов, и это вызывает эту ошибку:

root@host [/usr/local/apache/conf/includes]# pecl install pdo downloading PDO-1.0.3.tgz ... Starting to download PDO-1.0.3.tgz (52,613 bytes) .............done: 52,613 bytes 12 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 building in /var/tmp/pear-build-root/PDO-1.0.3 running: /root/tmp/pear/PDO/configure checking for egrep... grep -E checking for a sed that does not truncate output... /bin/sed checking for cc... cc checking for C compiler default output file name... a.out checking whether the C compiler works... configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'. See `config.log' for more details. ERROR: `/root/tmp/pear/PDO/configure' failed 

Я на 99% уверен, что проблема в том, что вы не можете выполнять файлы в / var / tmp (я скопировал исполняемый файл здесь и попробовал проверить). Я уверен, что могу получить PECL для завершения, если у меня есть работа над его работой в другом месте, но я не могу найти подходящий параметр конфигурации.

Как вы сообщаете PECL о создании в папке, отличной от настроек по умолчанию?

Solutions Collecting From Web of "Как изменить папку Pear / PECL по умолчанию из / var / tmp?"

Whoa, почему вы устанавливаете PDO из PECL? PDO был встроен в PHP с 5.1. Вы используете 5.0?

Если вы используете 5.1 или выше и упускаете PDO, возможно, что:

  1. Ваша копия PHP была скомпилирована без него и должна быть перекомпилирована; или
  2. Ваша копия PHP была установлена ​​из репозитория вашей ОС без модуля PDO

Если 1, вам нужно либо перекомпилировать PHP с нуля, либо скомпилировать только общий модуль и скопировать его в нужное место.

Если 2, вам просто нужно установить расширение PDO вашей ОС. В RHEL и CentOS попробуйте yum search php-pdo . Я не знаю правильного синтаксиса для вызова установщика пакетов для других дистрибутивов, но пакет почти наверняка будет содержать строку «php-pdo». (Совет. Если вы получили свой PHP из своей ОС, они также могут предоставить общие пакеты PECL. Попробуйте найти «pecl» в своих хранилищах.)

Наконец, если вы используете 5.0 … ради всего, что хорошо в этом мире, обновите! Сначала прочитайте заметки об обновлении в руководстве по PHP , на случай, если вы случайно используете старое поведение.

(Кроме того, чтобы переконфигурировать pecl, попробуйте pecl config-show pecl, чтобы узнать, какие параметры доступны, за которым pecl config-set ... чтобы изменить параметр. Не пытайтесь установить расширение PDO для версии PHP более новой версии, чем 5.0 .x, он сломается . В верхней части страницы PDO на сайте PECL есть даже большая жирная коробка.)

Ответы выше могут помочь пользователю, но не те, которые сталкиваются с проблемой «noexec» с / tmp dir.

Вот как можно установить программу [program], когда она терпит неудачу, поскольку «ошибка конфигурации не может запускаться с скомпилированными программами», потому что вы не можете выполнить материал в каталоге / tmp:

Сначала перемонтируйте каталог / tmp с включенной опцией exec: mount -o, remount, rw, exec / tmp

Во-вторых, установите расширение pecl: pecl install [имя расширения]

В-третьих, как только вы закончите, вы должны установить его обратно в «noexec», используя: mount -o, remount, rw, noexec / tmp

В моем случае / tmp is noexec, / var является исполняемым.

 main10:~# mv /tmp/pear /var/tmp main10:~# ln -s /var/tmp/pear /tmp/pear 

Он решил проблему.