Показать полную графическую версию : [решено] php52-5.2.17_2 не устанавливается из портов
Здравствуйте Уважаемые участники дискуссии.
Я новичок во FreeBSD и прошу помощи.
В общем после установки системы (FreeBSD 8.2) я обновил дерево портов
#portsnap fetch extract
#portsnap fetch update
Затем я установил почти все, что нужно для WEB сервера (Apache22 и MySQL55), но при установке php52 столкнулся с проблемой:
#/usr/ports/lang/php52
#make install clean
===>php52-5.2.17_2 has known vinerabilities:
=>php -- NULL byte poisoning.
Reference: http://portaudit.FreeBsd.org/3761df02-0f9c-11e0-becc-0022156e8794.
=>Please update your ports tree and try again.
***Error code 1
Stop in /usr/ports/lang/php52
***Error code 1
Stop in /usr/ports/lang/php52
Еще я использовал утилиту portupgrade та же ошибка.
Кто-то наверно скажет, а не проще ли сделать так?
pkg_add -r php52
Нет, не проще! Мне в Apache нужна поддержка PHP (модуль libphp5.so), скомпилировать PHP из порта с поддержкой Apache я не могу (причина выше), а пакет устанавливается без поддержки Apache, следовательно установки модуля не происходит.
Помогите пожалуйста, я вынужден перейти временно на версию php5 пока не решится этот вопрос. Заранее спасибо.
#make install clean
===>php52-5.2.17_2 has known vinerabilities:
=>php -- NULL byte poisoning.
Reference: http://portaudit.FreeBsd.org/3761df0...c-0022156e8794.
=>Please update your ports tree and try again. »
Отказывается ставить из-за известной уязвимости. А майнтайнер то ли забил на порт, то ли не успел обновить. Вы можете заставить систему игнорировать известные уязвимости, прописав в /etc/make.conf:
DISABLE_VULNERABILITIES=yes
или, что разумнее, не применять эту гайку глобально, а передать этот аргумент портапгрейду только при установке php52:
portupgrade -m DISABLE_VULNERABILITIES=yes php52
я вынужден перейти временно на версию php5 пока не решится этот вопрос. »
Чем PHP 5.3 не угодил?
vadblm спасибо большое за помощь, разобрался. Но не кажется ли Вам, что в портах версия 5.3 и должна называться php53 а не php5? Вводят людей в заблуждение, особенно новичков.
Появилась другая проблема - то-ли у тех, кто выкладывает дерево портов одна извилина пунктиром, либо я в чем - то неправ. В общем:
#cd /usr/ports/databases/phpmyadmin
#make install clean
Затем после установки прописываю алиас как положено в файле httpd.conf, но при переходе на страницу phpmyadmin вижу следующее:
Fatal error: Call to undefined function _pgettext() in /usr/local/www/phpMyAdmin/libraries/core.lib.php on line 264
И PHP и MySQL, и Apache функционируют нормально.
И как мне работать вообще? Что-нибудь да не так. Помогите пожалуйста.
Но не кажется ли Вам, что в портах версия 5.3 и должна называться php53 а не php5? »
Не кажется, но все вопросы по этому поводу к майнтайнеру порта.
Fatal error: Call to undefined function _pgettext() in /usr/local/www/phpMyAdmin/libraries/core.lib.php on line 264 »
Установите php5-gettext.
vadblm, спасибо Вам большое, хочу заметить что есть ошибка в коде - до установки php5-gettext я переименовывал _pgettext в gettext но ошибка оставалась, после установки она исчезла. Но появилась другая:
The session extension is missing. Please check your PHP configuration.
PHP5-session установлен, файл php.ini находится в /usr/local/etc и подгружается. В чем может быть дело?
Форум не дает подгружать длинные изображения, каким образом можно предоставить эту информацию?
Ну ссылку дайте. Или, если пускаете в консоли, то вывод можно положить на pastebin или что-то подобное. Или прикрепить к сообщению архивом. Что вы, вчера что ли в интернеты вышли? :)
Извините, не допер сразу. Отправляю
Почему-то файл не прикрепился или мне так кажется?
session не видать. Если это расширение точно установлено, то проверьте прописано ли оно в /usr/local/etc/php/extensions.ini:
extension=session.so
dmitryst
07-09-2011, 16:39
насколько я помню, нужно ставить еще и php-extensions
нужно ставить еще и php-extensions »
php5-extensions это мета-порт, облегчающий установку расширений пачкой, а так их можно ставить и по отдельности.
dmitryst
07-09-2011, 16:50
php5-extensions это мета-порт, облегчающий установку расширений пачкой »
ну да, зато не будет потом моральных и физических страданий, что какой-то порт не стал или стал криво (сам пару раз переустанавливал рнр с нуля из-за одного расширения)
сам пару раз переустанавливал рнр с нуля из-за одного расширения »
Хорошо хоть не всю систему ;)
dmitryst
07-09-2011, 18:18
php.ini находится в /usr/local/etc и подгружается. »
а попробуйте его убрать или так отредактировать, чтобы потом через phpinfo() посмотреть, а действительно ли читается этот файл
Действительно странные вещи творились на неделе. Я выяснил, что была проблема с портами (наверно их в это время как-то изменяли, я понял это по тому, что у меня вчера обновилась программа, которая долго отказывалась обновляться (Unknown build error)).
Перед всеми операциями, перечисленными ниже, я вводил следующие команды:
#portsnap fetch update
#pkgdb -fu
#pkgdb -F
так что ошибок, связанных с деревом портов просто быть не могло (значит они были вызваны вытягиванием некорректных значений первой командой)
Я удалил php5-extensions (сделал это не через порт, а через команду удаления пакета):
#pkg_delete php5-extensions-*.* (где * - цифры версии)
но сами расширения не удалились! По идее они должны были удалиться автоматически. Мне пришлось удалять их вручную! Более того перед этим я сделал следующее:
#cd /usr/ports/lang/php5-extensions
#make deinstall
и система сообщает, что данное приложение не установлено, и его удаление невозможно! Хотя команда:
#pkg_version -v | grep php5
показала мне все установленные расширения, в том числе php5-extensions! Я даже лазил в папку /usr/local/etc/php/extensions.ini и смотрел там extension=session.so, все на месте было!
Пришлось мне удалять все расширения вручную:
#pkg_delete php5-****-5.3.8 (где * - название расширения)
Были удалены:
php5-mysql
php5-gettext
php5-mbstring
php5-curl
php5-openssl
php5-xmlrpc
php5-tokenizer
php5-ctype
php5-iconv
php5-bz2 (для suPHP)
php5-session
php5-zip
php5-zlib
php5-filter
php5-json
php5-mcrypt
php5-mysqli
phpMyAdmin-3.4.4
Затем я, не доверяя пока портам, установил все расширения пакетами, не используя php5-extensions:
#pkg_add -r php5-**** (где * - название расширения)
После этого я установил все-таки phpMyAdmin из портов:
#cd /usr/ports/databases/phpmyadmin
#make install clean
После этого запустил процесс обновления:
#portupgrade -arR
После обновления:
#apachectl restart
#/usr/local/etc/rc.d/mysql-server restart (на всякий случай)
После этого phpMyAdmin стал запускаться нормально и перестал ругаться на отсутствие расширений. Более того, исчезла ошибка:
Fatal error: Call to undefined function _pgettext() in /usr/local/www/phpMyAdmin/libraries/core.lib.php on line 264
которую выдавал phpMyAdmin при запуске (даже после установки расширения php5-gettext-5.3.8 и то оно должно было вылезти с зависимостями при установке phpMyAdmin, и то, чтобы устранить эту ошибку мне ранее пришлось исправить код в указанном файле, который вызвал ошибку (_pgettext - gettext), а после всех вышеперечисленных операций мне ничего исправлять не пришлось, все запустилось корректно!)
Все проблемы устранены, спасибо Вам!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.