- Главная... arrow - Статьи... arrow FreeBSD 8.1 обновление php5-5.3.3_2 до 5.3.4 и возможные проблемы.

#Записки о Unix/Linux/BSD/Solaris

FreeBSD 8.1 обновление php5-5.3.3_2 до 5.3.4 и возможные проблемы.
Автор Охальников Олег   
27:12:2010 г.
Исходные данные - важный сервер под хостинг, где-то в Нидерландах )))). В ежедневных отчетах по безопасности с недавнего времени неприятная новость:

Checking for packages with security vulnerabilities: Affected package: php5-5.3.3_2 Type of problem: php -- multiple vulnerabilities. Reference: 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately.

Линк с описанием того, что пофиксили в 5.3.4: http://portaudit.freebsd.org/b2a6fc0e-070f-11e0-a6e9-00215c6a37bb.html  Тут собственно обновление в виде 5.3.4 поспело, надо обновлять ибо не секюрно. Запускаем скрипт ./ports.sh, он делает все сам, чистит, обновляет дерево портов, ищет устарелое и пересобирает. Все проходит без ошибок и вроде работает, но не тут то было, запускаем php -v :

# php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/pcre.so' - Cannot open "/usr/local/lib/php/20090626/pcre.so" in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/fileinfo.so' - Cannot open "/usr/local/lib/php/20090626/fileinfo.so" in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/ming.so' - Cannot open "/usr/local/lib/php/20090626/ming.so" in Unknown on line 0

Deprecated: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0

Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0
PHP 5.3.4 with Suhosin-Patch (cli) (built: Dec 21 2010 12:36:31)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Эта картина наблюдается на нескольких серверах, один важный, другой домашний, пишу по памяти на важном все сделал. Смотрим на что жалуется пых. Начнем с конца.  

Deprecated: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0
Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0

В новом пыхе не поддерживаются эти директивы, поэтому лезем в php.ini и комментируем register_long_arrays и magic_quotes_gpc, после чего перезапускаем апач и сново выводим php -v

 # mcedit /usr/local/etc/php.ini

;magic_quotes_gpc = On
;register_long_arrays = On

# apachectl restart

и php -v:

# php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/pcre.so' - Cannot open "/usr/local/lib/php/20090626/pcre.so" in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/fileinfo.so' - Cannot open "/usr/local/lib/php/20090626/fileinfo.so" in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/ming.so' - Cannot open "/usr/local/lib/php/20090626/ming.so" in Unknown on line 0
PHP 5.3.4 with Suhosin-Patch (cli) (built: Dec 21 2010 12:36:31)
Copyright (c) 1997-2009 The PHP Group
  Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Ну вот, картина уже лучше, остаются модули, чтобы излечить эти ошибки, надо найти порты этих модулей, сделать make deinstall и make install clean, т.е. пересобрать каждый такой кривой модуль. Причем  два сервера, одинаковые действия, а вот списки кривых модулей разные, на одном скривил gd.so, тут другой набор. Приступим к пересборке:

# pkg_info | grep fileinfo
pecl-fileinfo-1.0.4 A PECL extension to retrieve info about files

# whereis pecl-fileinfo
  pecl-fileinfo: /usr/ports/sysutils/pecl-fileinfo

# cd /usr/ports/sysutils/pecl-fileinfo && make deinstall && make install clean

Cмотрим, что получилось:

# php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/pcre.so' - Cannot open "/usr/local/lib/php/20090626/pcre.so" in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/ming.so' - Cannot open "/usr/local/lib/php/20090626/ming.so" in Unknown on line 0
PHP 5.3.4 with Suhosin-Patch (cli) (built: Dec 21 2010 12:36:31)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Т.е. fileinfo.so отсутствует после пересборки. Остальное пересобираем по аналогии с выше написанным. Бывают случаи посложнее, т.е. пересборки какого то модуля php не достаточно, надо пересобирать еще то, от чего он зависит. В целом думаю можно пересобрать полностью php со всеми зависимостями, но это займет очень много времени.
Будем считать, что с этими проблемами справились, вывод php -v имеет следующий вид, без предупреждений:

# php -v
PHP 5.3.4 with Suhosin-Patch (cli) (built: Dec 21 2010 21:10:53)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

 

Данная статья не тянет на руководство, которое построено по принципу делай раз, делай два и на выходе готовый положительный результат. Здесь лишь описано направление, в котором надо копать. Повторюсь из двух серверов список проблемных модулей совершенно разный, методы устранения тоже немного разнятся. На удаленном сервере все прошло более менее гладко, на домашнем пришлось попотеть. Если простой пересборкой модулей и портов зависящих от модулей проблему решить не удалось, можно кардинальным способом снести php полностью и пересобрать заново, примерно так:

# pkg_delete -f php5*
# rm -rf php5-extensions/
# rm -rf /usr/local/lib/php/
# rm -rf /usr/local/include/php
# cd /usr/ports/lang/php5 && make install clean
    # cd /usr/ports/lang/php5-extensions && make install clean

Первая команда по зависимостям снесет phpmyadmin, тщательно думайте прежде чем что-то делать.

Эту часть статьи заканчиваю, в следующей кратко расскажу о проблемах падения деток httpd, а именно появления большого количества записей следующего вида:

(httpd), uid 80: exited on signal 6  

Что также явилось следствием обновления php.

Материал подготовил:
Охальников Олег aka H@wk!
 

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code


Просмотров: 9651

  Коментарии (1)
RSS комментарии
 1 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 17:37 18.05.2011
Супер. 5+
 
« FreeBSD 8.1 обновление php5-5.3.3_2 до 5.3.4 - (httpd), uid 80: exited on signal 6   FreeBSD 8.1-RELEASE, PHP, PHP-FFMPEG »

#COMMENT

Блокируем Ylmf-pc на Exim, Bru...
Благодарю за кучу уцелевших нервов:) постоянно приходилось б...
30/05/17 00:02 More...
By Mus

Установка даты и времени в кон...
Спасибо
12/05/17 17:49 More...
By dushka

Раскладка в rdesktop
Огромное спасибо!
28/04/17 14:01 More...
By Виктор

Аутентификация средствами Apac...
подскажите как писать пороль цифры ?пж! :sigh
28/03/17 13:06 More...
By Лиза

Logwatch - мониторинг журналов...
Отлично, очень не хватало. Автору большое спасибо, пиши еще.
25/01/17 02:44 More...
By Gregg

Сейчас на сайте находятся:
1 гость