Мне нужна помощь с php-скриптом. Это CMS, которая была внедрена на веб-сайт. При попытке добавить новое ИЗОБРАЖЕНИЕ ИЗОБРАЖЕНИЯ или попытку редактировать текущие изображения, я получаю следующую ошибку:
Неустранимая ошибка: вызов неопределенной функции imageantialias () в /home/mounts/home/m/mclh/web/admin/library/functions.php в строке 233
Это мой код для этой области:
if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg") { $destFile = substr_replace($destFile, 'jpg', -3); $dest = imagecreatetruecolor($w, $h); imageantialias($dest, TRUE); } elseif ($tmpDest['extension'] == "png") { $dest = imagecreatetruecolor($w, $h); imageantialias($dest, TRUE); } else { return false; }
Строка 233 – 5-я строка вниз.
ОБНОВЛЕНИЕ : Кажется, функция imageantialias()
доступна только в том случае, если PHP скомпилирован с GD, поэтому недостаточно, чтобы расширение включалось через файл расширения.
Из руководства по PHP :
Примечание. Эта функция доступна только в том случае, если PHP скомпилирован в комплекте с библиотекой GD.
Проверьте phpinfo()
и посмотрите, если вы найдете флаг --with-gd=shared
(или похожий флаг, возможно, просто --with-gd
). Если вы не можете найти его, ваш PHP должен быть перекомпилирован с этим флагом.
Более подробно: расширения PHP могут быть загружены, включая файл .dll (Windows) или .so (Unix) через php.ini или их можно скомпилировать с помощью PHP. Компиляция звуков ужасна и сумасшедшая, но на самом деле это очень просто. Все, что вам нужно сделать (Unix):
Первый ответ (не оказался правильным):
imageantialias()
является функцией расширения PHP GD . Установлен и правильно настроен GD?
Из вашего кода кажется, что GD установлен, потому что imagecreatetruecolor()
также является функцией GD и, похоже, работает. Это приводит к выводу, что вы используете версию PHP до 4.3.2, которая не поддерживает imageantialias()
.
Посмотрите на свой phpinfo (), чтобы узнать, правильно ли сделаны мои выводы. Там вы увидите, какую версию PHP вы используете, и вы также увидите, установлена ли GD и работает!
Вот обходной путь для вашей проблемы. Просто скачайте rpm, извлеките gd-bundled.so отсюда и замените оригинальный gd.so на него.
Похоже, что Debian / Ubuntu PHP не связывает библиотеку GD с ней, по какой-то причине безопасности. Вы должны перекомпилировать PHP, следуйте этому полезному пошаговому руководству по этому поводу с Debian / Ubuntu: http://www.maxiwebs.co.uk/gd-bundled/compilation.php
Откройте терминал. Станьте root, набрав su и введите свой пароль root при появлении запроса.
Загрузите некоторые пакеты, которые нам понадобятся для установки. Тип apt-get install build-essential debhelper fakeroot dpkg-dev mysql-server. Когда MySQL устанавливает пароль root, подумайте об одном, а затем сохраните его в безопасности. Измените текущий каталог на свой источник. cd / usr / src.
Загрузите исходный код PHP 5, набрав apt-get source php5. Нам также нужны зависимости PHP 5. Чтобы загрузить их, введите apt-get build-dep php5.
Войдите в загруженный каталог PHP. cd php5-XXXX. просто нажмите после того, как вы набрали php5-, чтобы завершить имя папки.
Теперь нам нужно отредактировать файл конфигурации, чтобы изменить его в комплекте GD. Введите nano debian / rules.
Найдите строку, которая говорит –with-gd = shared, / usr –enable-gd-native-ttf \ и измените ее на -with-gd = shared -enable-gd-native-ttf \, удалив / USR. (Нажмите ctrl + w, чтобы найти что-то, если вы ищете gd, это почти второе вхождение). Чтобы сохранить файл, нам нужно нажать ctrl + x, затем нажмите y, а затем введите.
Теперь нам нужно отредактировать файл установки MySQL. Тип nano debian / setup-mysql.sh. Примечание. Если этот файл не существует, не беспокойтесь, вы можете пропустить шаги 10 и 11.
Найдите строку $ mysqld> $ datadir / run.log 2> & 1 & и измените ее на $ mysqld –user = root> $ datadir / run.log 2> & 1 &, добавив к ней –user = root. Чтобы сохранить файл, нам нужно нажать ctrl + x, затем нажмите y, а затем введите.
Теперь мы сделали настройку, и теперь нам нужно ее скомпилировать. Введите dpkg-buildpackage -rfakeroot или если вы используете Ubuntu 11.10, вы должны ввести dpkg-buildpackage -d, это займет некоторое время.
Когда это будет сделано, вы должны загрузить файлы .deb в родительский каталог. Найдите тот, который начинается с php5-gd.
Установите его, дважды щелкнув по нему или с терминала, введите dpkg -i php5-gdXXXXXXX, просто нажмите после того, как вы набрали php5-gd, чтобы завершить имя файла.
Теперь нам нужно остановить обновления, заменив вашу блестящую новую GD-библиотеку на обычную несвязанную версию, удерживая пакет. Выполните следующую команду: apt-get install wajig. Скажите «да» установке.
После установки введите следующее: wajig удержать php5-gd.
Поздравления! Теперь у вас есть комплектная версия библиотеки GD, теперь иди и будь с ней творческой!
Эта функция является частью библиотеки GD. Возможно, библиотека не установлена в вашей среде PHP.
Подробные сведения о том, как включить GD, можно найти здесь: http://www.php.net/manual/en/image.installation.php
В соответствии с Changelog руководства PHP для PHP версии 7.2.0 :
imageantialias () теперь вообще доступен. Раньше он был доступен только в том случае, если PHP был скомпилирован в комплекте с библиотекой GD.
Поэтому есть некоторые возможности исправить это.
./configure
скриптом с флагом --with-gd
. Это означает, что вы либо неправильно imageantialias()
функцию imageantialias()
либо не imageantialias()
что эта функция в вашем коде или принадлежащем ей третьему коду не была включена в ваш текущий документ.
UPDATE: установлен GD. Это тайна.