imagecreatefromjpeg та подібні функції не працюють у PHP


78

Я шукав це, і рішення, надані в минулих питаннях, для мене абсолютно незрозумілі. Кожного разу, коли я запускаю такі функції imagecreatefromjpeg, я отримую таке:

Фатальна помилка: Виклик невизначеної функції imagecreatefromjpeg () ...

Я працюю над новою установкою PHP; моя остання установка ніколи не мала цієї проблеми. Я не розумію, що відбувається.


3
чи ввімкнено / встановлено GD?
Остін Бранкхорст,

2
Переконайтеся, що ви GD2не тільки встановили, але й активували у своєму php.ini.
Havelock

3
Як би я це зробив?
UserIsCorrupt

Відповіді:


83

Гах, рішення за цим посиланням спрацювало нормально. Я возився з цим вічно і не міг змусити це працювати, не знав, що це все так просто. Дякуємо, що знайшли це!
UserIsCorrupt


18

Ви все ще можете отримати, Fatal error: Call to undefined function imagecreatefromjpeg()навіть якщо встановлено GD.

Рішення полягає в тому, щоб встановити / увімкнути jped lib:

На Ubuntu :

    apt-get install libjpeg-dev
    apt-get install libfreetype6-dev

На CentOS :

    yum install libjpeg-devel
    yum install freetype-devel

При компіляції з джерела додати --with-jpeg-dir --with-freetype-dirабо --with-jpeg-dir=/usr --with-freetype-dir=/usr.

Для отримання детальної інформації перевірте https://www.tectut.com/2015/10/solved-call-to-undefined-function-imagecreatefromjpeg/


17

Ви повинні увімкнути бібліотеку GD2.

Знайдіть свій (належний) файл php.ini

Знайдіть рядок:; extension = php_gd2.dll і видаліть крапку з комою спереду.

Рядок повинен виглядати так:

extension=php_gd2.dll

Потім перезапустіть Apache, і ви вже можете піти.


Просто примітка для тих, хто дивиться на це, оскільки php.ini - це великий файл. Цей рядок входить до Dynamic Extensionsкатегорії (приблизно в середині документа)
Ерік Ф,




8

Якщо ви схожі на мене, і ви використовуєте в якості основи одне із зображень PHP Docker , вам потрібно додати розширення gd, використовуючи інші інструкції, ніж описано вище.

Для php:7.4.1-apacheзображення потрібно додати Dockerfile:

RUN apt-get update && \
    apt-get install -y zlib1g-dev libpng-dev libjpeg-dev

RUN docker-php-ext-configure gd --with-jpeg && \
    docker-php-ext-install gd

Ці пакети розробників потрібні для компіляції розширення GD php. Для мене це призвело до активації GD із підтримкою PNG та JPEG у PHP.


1
Дякую Поле, це спрацювало як принада для мене! \ o /: ракета:
Тьяго Сільва Феррейра

6

У CentOS, RedHat тощо використовуйте команду нижче. не забудьте перезапустити Apache. Тому що модуль PHP повинен бути завантажений.

yum -y install php-gd
service httpd restart


1

Як вже згадувалося раніше, вам може знадобитися встановлена ​​бібліотека GD.

На оболонці спочатку перевірте свою версію php:
php -v

Потім встановіть відповідно. У моїй системі (Linux-Ubuntu) це php версії 7.0:
sudo apt-get install php7.0-gd

Перезапустіть веб-сервер:
systemctl restart apache2

Тепер у вас повинна бути встановлена ​​та ввімкнена бібліотека GD.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.