PHP

php gdのインストール @alpine Linux

alpine Linux on DOCKERでのPHP モジュールGDで手こずりました。

メモ同然の記事になっておりますが、
そこは、ご割愛。

***

ftp > GD > gettextとくるはずが、GDが非表示

PHP GDモジュール

php_infoを吐き出していたけど、
コマンド上で、「php -m」してみると、

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xsl.so' - Error loading shared library libexslt.so.0: No such file or directory (needed by /usr/local/lib/php/extensions/no-debug-non-zts-20160303/xsl.so) in Unknown on line 0

エラーでてるや~ん!

※imagegickも別のモジュールがないとエラー出ていたが、GDが使えるなら、今回は不要なんで除外。

 

xsl.soをインストール。

 

Linux Alpine

今回、DockerでPHP7.1を構築していることもあり、
いくら頑張っても親のAmazon Linuxでxsl.soをインスコ出来なかったわけで、

以下のモジュールを追加した。

  • libxslt 22Mib
  • libx11 24Mib
  • openssl-dev 40Mib
  • libxpm 45Mib
  • libpng 45Mib
  • gd 48Mib
  • libpng-dev 45Mib

libssl.so.10が見つからない

参考 > https://hub.docker.com/r/labianchin/alpine-tomcat/dockerfile

cd /usr/lib && ln -s libssl.so.1.0.0 libssl.so.10

別名みたい?

 

結局

docker-php-ext-install -j$(nproc) gd

で、成功!

参考 >> https://hub.docker.com/_/php

  • libfreetype6-dev
  • libjpeg62-turbo-dev
  • libpng-dev

も追加で必要。

Alpine PHP-FPM GD

PS.

ftp用

  • openssl-dbg 60Mib
-

PHPのデバッグ

PHPのデバッグといえば、
var_dumpでブラウザー上にデータを表示して、
値を確認しながら、という原始的な方法から、

今では、Xdebugを使うのが、当たりなんですが、
未だに、原始的な方法を使っております。

「学習コストをかけても、見合う収穫がある」

はずなんですが、
どうも新しいことを覚えるのは、億劫になっておりますが、
そんな中、良い方法を見つけました。

***

  1. function error_logで、debug.logに、変数を保存し、
  2. SSHで接続したターミナルで、tailf -f debug.logで監視。

都度都度、error_logを書くのも面倒なので、

function var_dump2($log, $file = 'debug.log') {
	if (DEBUG_MODE === true or $_SESSION['customer']['customer_id'] == 1)
		var_dump($log, $file);
}

本環境でも、ブラウザーに表示されずに、
デバッグ出来るようになりました。

 

-