이전 버전의 PHP에서는 gd를 활성화해야 합니다.

이전 버전의 PHP에서는 gd를 활성화해야 합니다.

PHP 버전은 5.6으로 꽤 오래된 버전입니다. 더 이상 사용할 apt-get install php5-gd수 없습니다.

나는 이것을 찾을 수 있습니다 gd.so:

/usr/lib/php/20151012/gd.so
/usr/lib/x86_64-linux-gnu/libgd.so.3 -- links to 3.0.0 below
/usr/lib/x86_64-linux-gnu/libgd.so.3.0.0

gd활성화하려면 등에서 이들 중 하나를 설정 해야 할 것 같습니다 .mods_availablemods_enabled

위의 항목 중 하나에 연결하려면 공통 위치에 별칭을 사용해야 할 것 같은데 gd.so, 어디에 두어야 하고 어느 항목에 연결해야 할까요?

수동으로 설정하는 단계별 가이드가 있나요?

답변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

이 SO에 대한 INI 파일을 만듭니다.

$ 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로 업그레이드하는 것입니다!

관련 정보