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

gd исчезает с сервера apache

У нас есть веб-сервер (Debian, с Apache2, PHP4 и MySQL), используемый в интрасети. Его основное использование - обслуживание страниц с данными и графиками, динамически генерируемыми (с использованием jpgraph) из данных, хранящихся в БД.

Он отлично работал в течение нескольких лет, но на этой неделе мы обнаружили, что все, что связано с графиками, не работает. Сюда входят рисунки, сгенерированные jpgraph и gnuplot, оба зависят от библиотеки gd. Также нет ссылок на «gd» в phpinfo (), и любой прямой вызов функций gd (например, gd_info ()) приводит к ошибке.

Мы пытались переустановить php4-gd (и перезапустить Apache) безрезультатно. Очевидно, мы сделали что-то не так, но мы не можем понять, что это такое.

Что мы могли сделать? Есть ли какой-либо другой диагноз, который мы можем сделать, чтобы изолировать проблему?

Спасибо.

Задача решена. Проверка журнала apache /var/log/apache2/error.log после каждого перезапуска обнаруживалась следующая строка:

PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/20050606+lfs/gd.so' - /usr/lib/php 4/20050606+lfs/gd.so: undefined symbol: gdImagePngCtx in Unknown on line 0

Проблема решилась комбинацией добавления строки: extensions_dir = "/usr/lib/php4/20050606+lfs/ к /etc/php4/apache2/php.ini и делать то, что описано в bugs.debian.org, это в основном удаление из / usr / local / lib всех библиотек libgd.so * (?).

Не спрашивайте меня, почему, но после перезапуска Apache все снова заработало. Все еще не знаю, что мы сделали ... Конечно, вероятно, пора для полной переустановки и обновления сервера.

Спасибо за ваш интерес.

Возможно ли, что на вашем компьютере установлено несколько версий PHP, некоторые с поддержкой gd, а некоторые без, и что вы ссылаетесь не на ту?

Предполагая, что вы сохранили все в пакетах, загляните в /var/log/dpkg.log для любых пакетов, которые были изменены (установлены, обновлены или удалены) примерно в то время, когда все развалилось.

Другая вероятная проблема заключается в том, что extension строка в php.ini для плагина gd пошла блужданием; Он должен быть ближе к нижней части /etc/php4/apache2/php.ini (или похожие); добавьте его, если он отсутствует, и перезапустите Apache, посмотрите, к чему это приведет.