Назад | Перейти на главную страницу

Как я могу установить PHP5 на Fedora Core 5?

Я пытаюсь установить PHP5 из исходного кода на FC5, и все настраивается и компилируется нормально. Однако когда я пытаюсь запустить php, я получаю следующие ошибки.

PHP Warning:  PHP Startup: mysql: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: mysqli: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: gd: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: ldap: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: mysql: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: mysqli: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: PDO: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: pdo_mysql: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match in Unknown on line 0

PHP Warning:  PHP Startup: pdo_sqlite: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0

Я настроил PHP со следующими параметрами:

./configure --with-mysql --with-gd --enable-modules=php5 -with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared

Кто-нибудь знает, что происходит. Я знаю, что это модули неправильной версии, но я не знаю, как это исправить.

Как я могу правильно установить это?

Почему вы все еще используете Fedora Core 5? Я бы посоветовал переключиться на что-то с более длительным сроком службы, например CentOS 5 (у которого, кстати, есть php 5.1 из коробки). Вы используете Fedora трехлетней давности, так что прошло 2 года после окончания срока ее действия ...

Вы сначала удалили старые RPM-пакеты PHP? Похоже, что некоторые старые библиотеки все еще существуют, и новый двоичный файл PHP пытается получить к ним доступ.

Я не очень люблю собирать пакеты из исходного кода в дистрибутивах на основе RPM, если только сборка не приводит к созданию RPM, который я могу установить. Мое мнение таково, что установка без RPM на такие машины просто "забивает" машину.

Это выглядит как Реми Коллетт поддерживает некоторые довольно свежие RPM для php-5 и модулей (на самом деле, он только что собрал PHP-5.3 пару дней назад для группы дистрибутивов Fedora Core, но остановился на 6! См.: http://blog.famillecollet.com/post/2009/06/30/PHP-5.3.0-Released).

Я посмотрю, сделает ли какой-нибудь из его RPM то, что вы хотите (http://rpms.famillecollet.com/fedora/5/ или зеркало). Если вы действительно хотите скомпилировать из исходного кода (потому что, возможно, вам нужна еще более новая версия, чем то, что предлагает Реми Коллетт), я бы загрузил SRPM с сайта Реми, установил их, изменил файлы .spec, чтобы ссылаться на более новые версии, и построить, используя его .specfiles. (Это может не сработать в первый раз, но вы сможете выяснить, что изменилось, что нарушает сборку, и это даст вам хороший опыт работы с RPM).

Вы даже можете обнаружить, что его RPM-пакеты PHP-5.3 для FC6 нормально устанавливаются на FC5.

Я регулярно создаю пакеты RPM для программного обеспечения для установки на несколько машин на базе RPM (обычно CentOS). Установка нового программного обеспечения из RPM означает, что мои "производственные" машины остаются чистыми и не нуждаются в установке компиляторов. Я очень рекомендую эту стратегию.

  1. Обновите Fedora 11, если это возможно. Оно того стоит.

  2. Если вы не можете обновить ОС по какой-либо причине, настройте PHP без поддержки mysql, gd и т.д. и посмотрите, сможете ли вы заставить его работать. Тестируйте с помощью простых или скриптовых.

    Если это сработает. затем обновите mysql и попробуйте только с --with-mysql, не добавляйте другие библиотеки одновременно. Если это сработает. Затем обновите zlib и добавьте флаг zlib. Если какое-то обновление, такое как mysql, не работает, обновите другие вещи и позаботьтесь о mysql позже. На то, чтобы все заработало, потребуется больше суток. Надеюсь, оно того стоит.

  3. Переадресуйте порт 80 этого сервера на порт 80 сервера с последней версией ОС, если это приемлемо.