Необходимо включить gd для более старой версии PHP

Поскольку truncateиз этот ответ не решил проблему, я немного поэкспериментировал. В в каком-то месте я нашел предложение использовать resize2fsдля исправления изображения (resize2fs , например. resize2fs nand_2016_06_02.img 3779Mс учетом приведенных выше данных ), но это тоже не сработало для меня (, утверждая, что размер уже был таким ).

Для меня следующие два шага решили эту проблему:

  1. e2fsck -y -f nand_2016_06_02.img(можно сначала без yпроверить, есть ли ошибки вообще — если нет, то это не нужно)
  2. testdisk nand_2016_06_02.img, пройтись по меню (продолжить › (таблица разделов )нет › расширенные › создание образа )и позволить testdisk создать образ.

Образ, созданный testdisk (, носит имя image.dd), смонтирован идеально, а затем:

sudo mount image.dd /tmp/img -t ext4 -o loop,ro

(Я знал, что это ext4, и я явно хотел, чтобы он был смонтирован для чтения -только для того, чтобы случайно не изменить его — и в моем случае это был не загруженный образ, а «спасенная» SD-карта, которая отказалась от меня., данные извлечены с помощью myrescue -r 1000 -b 4096 /dev/sdf2 sdpart2.img, что заняло около 24 часов для раздела размером 8 ГБ с 1014 сбойными блоками )

.

0
14.10.2021, 13:34
1 ответ

Пытался установить gdнапрямую, но больше не доступен:

$ sudo apt-get install php5-gd
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php5-gd is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5-gd' has no installation candidate

Похоже, что он также недоступен в ppa:ondrej/php, что было лучшим вариантом.

У нас есть существующая SO,так что это были шаги, которые я сделал, чтобы попытаться исправить это.

Найдите другой SO:

$ locate gd.so
...
/usr/lib/php/20151012/gd.so
...

Создать ссылку в каталоге расширений PHP 20131226на существующий:

$ cd /usr/lib/php/20131226
$ sudo ln -s /usr/lib/php/20151012/gd.so gd.so

Создайте INI-файл для этой SO:

$ cd /etc/php/5.6/mods-available
$ echo -e '; configuration for php common module\n; priority=20\nextension=gd.so' | sudo tee gd.ini
; configuration for php common module
; priority=20
extension=gd.so

Включить модуль:

$ cd /etc/php/5.6/apache2/conf.d
$ sudo ln -s /usr/lib/php/5.6/mods-available/gd.ini 20-gd.ini

Перезапустите Apache и посмотрите, что произойдет:

$ sudo service apache2 restart
$ cat /var/log/apache2/error.log
...
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/gd.so' - /usr/lib/php/20131226/gd.so: undefined symbol: zend_list_close in Unknown on line 0
...

Да, не сработало, но похоже нашло и попыталось загрузить. Отмените все и перезапустите, чтобы убедиться, что все вернулось к норме:

$ cd /etc/php/5.6/apache2/conf.d
$ sudo rm 20-gd.ini
$ cd /etc/php/5.6/mods-available
$ sudo rm gd.ini
$ cd /usr/lib/php/20131226
$ sudo rm gd.so
$ sudo service apache2 restart

Единственным решением является предложение перейти на более позднюю версию PHP!

0
14.10.2021, 16:46

Теги

Похожие вопросы