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