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にアップグレードすることです!