Summary: | PHP не может загрузить MySQL extension после обновления | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Anatoly Lyutin <vostok> |
Component: | php-base | Assignee: | Anton Farygin <rider> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | boris, lav, legion, naf, php-coder, rider, vvk, zidex |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Anatoly Lyutin
2009-10-27 17:15:11 MSK
Я не знаю, что такое Платформу5 (Сизиф ?). Это новое имя сизифа ? Если это какой-то дистрибутив, то обращайтесь к мантейнерам в этом дистрибутиве. Какая версия php ? php 5.2.11 Платформа 5 - это http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ как я понимаю за этим сейчас скрывается сизиф. Пакет : php5-5.2.11.20090722-alt1 А что творится в /php.d/ ? У меня достаточно регулярно при обновлении (и при начальной установке тоже) наблюдается появление там файлов <extension>.rpmnew с загрузкой внутри совсем отличных от <extension> модулей. Т.е., например, может появится suhosin.rpmnew с содержимым "extension=dom.so". И отсутствием файла dom.ini. Или наоборот. Системы пока я не нашёл, увы. Началось такое где-то начиная с 5.2.7. В 5.2.11 В apache_mod_php/php.d есть только mysqli.ini В cgi/php.d нет ничего с mysql* В cli/php.d есть mysql.ini и mysqli.ini P.S: Кстати, у меня php так же перестал загружать mcrypt. Это сюда же или в отдельную багу? P.P.S: mcrypt.ini есть только в cli/php.d (В ответ на комментарий №5) > В 5.2.11 > > В apache_mod_php/php.d есть только mysqli.ini Значит, mysql.ini не создался при установке пакета. Соответственно, расширение не загружается. > ... > Кстати, у меня php так же перестал загружать mcrypt. ... > mcrypt.ini есть только в cli/php.d Это то же самое. Где-то сбоит создание файлов *.ini в /php.d/. Причём случайным образом, и результаты зависят от того, какие и в каком порядке ставились расширения, и сколько их ставилось в одном вызове apt-get. (В ответ на комментарий №6) > Где-то сбоит создание файлов *.ini в /php.d/. > Причём случайным образом, и результаты зависят от того, какие и в каком порядке > ставились расширения, и сколько их ставилось в одном вызове apt-get. Я тогда правильно всё в этой баге описал? Или она трудновоспроизводимая и, следовательно, починке не подлежит? P.S: В оставшемся у меня /etc/php/5.2.7/apache-mod_php/php.d mysql.ini присутствует, так же как mcrypt.ini (В ответ на комментарий №6) > Где-то сбоит создание файлов *.ini в /php.d/. > Причём случайным образом, и результаты зависят от того, какие и в каком порядке > ставились расширения, и сколько их ставилось в одном вызове apt-get. $ rpmquery --lastchange php-base |sed -e 's/altlinux//' * Птн Окт 10 2008 Alexey Gladkov <legion@.ru> 2.4-alt1 - Create .phpnew only if config file changed. - Change license. - Fix Requires. Пакет реализующий механизм создания *.ini не менялся очень давно (предполагаю, что это было даже до branch-5.0). Если что-то и сломалось, то вокруг него. (В ответ на комментарий №8) > ... > Пакет реализующий механизм создания *.ini не менялся очень давно (предполагаю, > что это было даже до branch-5.0). Если что-то и сломалось, то вокруг него. В branch-5.0 проблема с потерей *.ini уж есть. На текущем Sisyphus, для x86_64, воспроизводится при установке в пустую VE пачки пакетов: # apt-get install apache2-httpd-prefork apache2 apache2-mod_php5 \ apache2-mod_rpaf apache2-mod_security \ php5-bz2 php5-calendar php5-curl php5-dba php5-dom \ php5-exif php5-gd2 php5-gmp php5-mbstring php5-mcrypt \ php5-mhash php5-mysql php5-mysqli php5-simplexml \ php5-soap php5-suhosin php5-xmlrpc php5-xsl php5-zip В итоге # ls /etc/php/5.2.11/apache2-mod_php/php.d bz2.ini curl.ini exif.ini gmp.ini mcrypt.ini mysql.ini simplexml.ini suhosin.ini xmlrpc.ini zip.ini calendar.ini dba.ini gd.ini mbstring.ini mhash.ini mysqli.ini soap.ini suhosin.ini.phpnew xsl.ini Где # cat /etc/php/5.2.11/apache2-mod_php/php.d/suhosin.ini.phpnew extension=dom.so Т.е., dom.ini отсутствует; то, что должно быть dom.ini - suhosin.ini.phpnew. В ходе установки: ... 1: php-base ... 22: php5-libs 23: php5-suhosin 24: php5 25: php5-dom ... 50: apache2-mod_php5 warning: /etc/php/5.2.11/apache2-mod_php/php.d/suhosin.ini created as /etc/php/5.2.11/apache2-mod_php/php.d/suhosin.ini.phpnew ... 53: php5-bz2 ... и остальные php5-* ... (В ответ на комментарий №9) > Т.е., dom.ini отсутствует; то, что должно быть dom.ini - suhosin.ini.phpnew. Подтверждаю. Проверьте это на свежем Sisyphus У меня вроде как нормально. У меня всё так же как и в комментарии №5 или мне надо удалить phpmyadmin, php и mysql и поставить заново? Да, здесь нужна именно переустановка. Единственное, вылезает проблема: 15: php5-suhosin ################################################################################################### [ 28%] cp: cannot create regular file `/etc/php/5.2.11/cli/php.d/suhosin.ini': No such file or directory error: execution of %post scriptlet from php5-suhosin-0.9.27-alt3 failed, exit status 1 Это связано с тем, что /usr/share/php/5.2.11/service/cli запакован в php5-libs, а не в php5 Соответственно пытается запускаться настройка для suhosin.ini. Да, подтверждаю что mysql.ini и mcript.ini появляются в /etc/php/5.2.11/apache-mod_php/php.d/ после переустановки пакетов.
Наверное эту багу можно закрыть.
>Это связано с тем, что /usr/share/php/5.2.11/service/cli
> запакован в php5-libs, а не в php5
>Соответственно пытается запускаться настройка для suhosin.ini.
В другую багу? Я не сталкивался с ней, поэтому прошу пересоздать заинтересованное лицо.
Пересоздавать новую не будем, исправление уже у меня в git'е: http://git.altlinux.org/people/rider/packages/php5.git?p=php5.git;a=commitdiff;h=750956351920505430be36ba1bc56affc3bfe2d8 Эта ошибка исправлена в php-base-2.4-alt2 Хорошо. (In reply to comment #14) > 15: php5-suhosin > cp: cannot create regular file `/etc/php/5.2.11/cli/php.d/suhosin.ini': No such > file or directory > error: execution of %post scriptlet from php5-suhosin-0.9.27-alt3 failed, exit > status 1 > > Это связано с тем, что /usr/share/php/5.2.11/service/cli > запакован в php5-libs, а не в php5 > Соответственно пытается запускаться настройка для suhosin.ini. Именно так. Объясню подробнее. Несколько дней назад я отправил в Сизиф новую сборку php-base (2.4-alt2), которая должна была закрыть (и закрыла) эту багу в том числе. По существу, в старой версии alt1 была путаница с именами файлов, которую я устранил. Вот этот коммит: http://git.altlinux.org/people/kurakin/packages/?p=php-base.git;a=commitdiff;h=0b7862f83d88a9b17764b216559cd6234d33bc19 Кроме того, я сделал еще одно изменение: http://git.altlinux.org/people/kurakin/packages/?p=php-base.git;a=commitdiff;h=b7e292e9561f4e595c4f11cd9aaef6935fe746b2 Суть его в том, чтобы получать список установленных sapi не через /etc/php/5.2.11/sapi_name, а через /usr/share/php/5.2.11/service/sapi_name. Что, вообще говоря, правильнее, поскольку /etc/php/5.2.11/sapi_name может оставаться и после удаления sapi, например, из-за лежащего там php.ini.rpmsave. Но я не обратил внимание, что /etc/php/5.2.11/cli и /usr/share/php/5.2.11/service/cli оказались в разных пакетах. Как заметил Антон, они должны бы оба быть запакованы в php5. Сейчас сделаю временный костыль (дополнительную проверку существования директории) для обхода этой проблемы в php-base. да, как временное решение - сделай пожалуйста. Вообще, корректное исправление - это перенос каталога. Я уже начал набивать task с новым PHP, постараюсь закончить как можно быстрее. |