y2blog » OSXServerのPHPにGDライブラリを組み込む方法

4

29

2008

OSXServerのPHPにGDライブラリを組み込む方法

OSXServerのPHPにGDライブラリを組み込む方法


これまで何度か OS X Server について紹介してきましたが、今回は OS X Server に標準で備わっている PHP5 に GD ライブラリを組み込む方法について紹介します.

OSX Server 10.5 では 標準で PHP 5.2.5 (4/28 2008 時点)が組み込まれていますが、残念ながら GD ライブラリが組み込まれていません.GD ライブラリはJPEGやPNGなどの画像を扱う際にとても便利なグラフィックライブラリで、画像のサムネイル(縮小画像)を作成したり、簡単なグラフィック描画機能をPHPに組み込むことができます.先日紹介した WordPress の NEXTGen Gallery プラグインを動かすのにも、この GDライブラリが必要です.

Apple が最初から OS X Server の PHP に GDライブラリを組み込んでくれれば問題ないのですが、OSX Server の次のマイナーバージョンUP (10.5.3 : 多分今週中にぐらいに正式にリリースされるかも)でも、GDライブラリは組み込まれていません.

仕方がないので自分でGDライブラリをインストールするしかないのですが、GDライブラリを組み込むには PHPのライブラリそのものを入れ替える必要があります.このような方法を採ってしまうと、セキュリティーアップデートなどで、PHPのモジュールが入れ替わってしまった場合に、また作り直しになってしまうという厄介な問題が発生します.OS X Server に All in one サーバの快適さを求めるユーザには向きませんが、どうしてもGDライブラリが使えるPHPを使いたい方は、リスクを承知の上でトライして見て下さい.


GD ライブラリをPHPに組み込む際に参考になるサイトを幾つか挙げておきます.

・iFranky さんの “Mac OS X Server – Installing GD Library

(英語のサイトですが、 詳しい手順を載せたPDFマニュアルが用意されています.残念ながら OSX Server 10.4 に関する情報ですが、10.5 でも殆ど同じ手順でインストール可能です)

 Installing GD Library (PDF)

 Updating PHP (PDF)

上記の PDF マニュアルをダウンロードしておいて下さい.


日本 PHP ユーザ会


PHPマニュアル

インストール手順


詳しいインストール手順は、 iFranky さんのPDFのマニュアルに書かれているので、そちらを参照下さい.ここでは要約だけを書きます.

1.ソースコードの入手


  次のソースコードを適当なサイトからダウンロードして下さい.

  

   ・PHP 5.2.5 ダウンロード先

   ・gd 2.0.35  GDライブラリ

    (現時点での安定版は 2.0.35 です)

   ・libpng 1.2.26 libpng

    ( 1.2.26にはバグがあるようです.次期バージョン 1.2.27 でこのバグを解消する予定だそうです

     ので、注意して下さい.CVE-2008-1382

   ・jpeg-6b 入手先:Source Forge  

   iFranky さんのマニュアルでは zlib 1.2.3 も入手するように書かれていますが、OSX Server に

  ライブラリがインストールされているので、ソースからインストールする必要はありません.

2.ソースコードを適当なディレクトりの下で展開します.


server3:PHP5WithGD yasuaki$ ls -la
total 16
drwxr-xr-x    9 yasuaki  staff   306 Apr 28 22:32 .
drwxr-xr-x   37 yasuaki  staff  1258 Apr 28 23:23 ..
-rw-r--r--@   1 yasuaki  staff  6148 Apr 28 22:32 .DS_Store
drwxr-xr-x    7 yasuaki  staff   238 Apr 28 22:32 Archives
drwxr-xr-x@  98 yasuaki  staff  3332 Apr 28 22:31 gd-2.0.35
drwxr-xr-x@ 147 yasuaki  staff  4998 Mar 28  1998 jpeg-6b
drwxr-xr-x@ 163 yasuaki  staff  5542 Apr 28 23:28 libpng-1.2.26
drwxr-xr-x@  76 yasuaki  staff  2584 Nov  9 00:36 php-5.2.5
drwxr-xr-x@  46 yasuaki  staff  1564 Jul 18  2005 zlib-1.2.3
server3:PHP5WithGD yasuaki$



3.libpng のインストール


  libpng を展開したディレクトリに移動して、scripts ディレクトリにある darwin 用の makefile を

  本番用の Makefile として用意する

  server3:libpng-1.2.26 yasuaki$ cp scripts/makefile.darwin Makefile

  Makefile の内容を修正する 【修正前】

    
# Where the zlib library and include files are located
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=../zlib
ZLIBINC=../zlib

【修正後】
    
# Where the zlib library and include files are located
ZLIBLIB=/usr/local/lib
ZLIBINC=/usr/local/include
#ZLIBLIB=../zlib
#ZLIBINC=../zlib


  そのまま make するとエラーとなるので、一旦 configure を行ってから make する.

 server3:libpng-1.2.26 yasuaki$ ./configure

 server3:libpng-1.2.26 yasuaki$ make

 server3:libpng-1.2.26 yasuaki$ sudo make install

4.libjpeg のインストール

 libjpeg をインストールする前に、GDライブラリを展開したディレクトリに移り、一旦 configure を

 行い、libtool というシェルスクリプトを libjpeg を展開したディレクトリにコピーする.

  

 server3:gd-2.0.35 yasuaki$ cp libtool ../jpeg-6b/.

 libjpegを展開したディレクトリに移り、 –enable-shared オプションを付けて configure してから

 make , make install を行う.

 ( make install 時に “/usr/local/man/man1” ディレクトリが無いとエラーになるので、予め

   作成しておくと良い.man ページのインストールエラーになっても特に問題はない.)

 server3:gd-2.0.35 yasuaki$ cd ../jpeg-6b

 server3:jpeg-6b yasuaki$ ./configure –enable-shared

 server3:jpeg-6b yasuaki$ make

 server3:jpeg-6b yasuaki$ sudo make install

5.GDのインストール


 GDのインストール作業を行う前に、次のシンボリックリンクを貼る.

 server3:gd-2.0.35 yasuaki$ sudo ln -s /usr/X11R6/include/fontconfig /usr/local/include

 GDを展開したディレクトリで、 –with-freetype=/usr/X11R6 オプションを付けて configure、

 make , make install する.

 server3:gd-2.0.35 yasuaki$ ./configure –with-freetype=/usr/X11R6

 server3:gd-2.0.35 yasuaki$ make

 server3:gd-2.0.35 yasuaki$ sudo make install

 以上の処理が無事終了すると、/usr/local/lib ディレクトリに GD 、libjepeg, libpng のシェアード

 ライブラリが作成される.


sh-3.2# ls -la /usr/local/lib
total 4648
drwxr-xr-x  23 root  wheel     782 Apr 28 23:52 .
drwxr-xr-x  10 root  wheel     340 Apr 28 23:41 ..
-rwxr-xr-x   1 root  wheel  274632 Apr 28 23:52 libgd.2.0.0.dylib
lrwxr-xr-x   1 root  wheel      17 Apr 28 23:52 libgd.2.dylib -> libgd.2.0.0.dylib
-rw-r--r--   1 root  wheel  667240 Apr 28 23:52 libgd.a
lrwxr-xr-x   1 root  wheel      17 Apr 28 23:52 libgd.dylib -> libgd.2.0.0.dylib
-rwxr-xr-x   1 root  wheel    1071 Apr 28 23:52 libgd.la
-rwxr-xr-x   1 root  wheel  140772 Apr 28 23:42 libjpeg.62.0.0.dylib
lrwxr-xr-x   1 root  wheel      20 Apr 28 23:42 libjpeg.62.dylib -> libjpeg.62.0.0.dylib
-rw-r--r--   1 root  wheel  182584 Apr 28 23:42 libjpeg.a
lrwxr-xr-x   1 root  wheel      20 Apr 28 23:42 libjpeg.dylib -> libjpeg.62.0.0.dylib
-rwxr-xr-x   1 root  wheel     808 Apr 28 23:42 libjpeg.la
-rwxr-xr-x   1 root  wheel  170032 Apr 28 23:30 libpng.3.26.0.dylib
lrwxr-xr-x   1 root  wheel      19 Apr 28 23:30 libpng.3.dylib -> libpng.3.26.0.dylib
lrwxr-xr-x   1 root  wheel      10 Apr 28 23:30 libpng.a -> libpng12.a
lrwxr-xr-x   1 root  wheel      14 Apr 28 23:30 libpng.dylib -> libpng12.dylib
lrwxr-xr-x   1 root  wheel      11 Apr 28 23:30 libpng.la -> libpng12.la
-rwxr-xr-x   1 root  wheel  170520 Apr 28 23:30 libpng12.0.26.0.dylib
lrwxr-xr-x   1 root  wheel      21 Apr 28 23:30 libpng12.0.dylib -> libpng12.0.26.0.dylib
-rw-r--r--   1 root  wheel  706008 Apr 28 23:30 libpng12.a
lrwxr-xr-x   1 root  wheel      21 Apr 28 23:30 libpng12.dylib -> libpng12.0.26.0.dylib
-rwxr-xr-x   1 root  wheel     818 Apr 28 23:30 libpng12.la
drwxr-xr-x   4 root  wheel     136 Apr 28 23:30 pkgconfig
sh-3.2#


6.PHP5.2.5 のインストール

 OSXServer ではインストール先やオプションの構成が一般的な PHPのインストールと異なっているので、

 予め、次のコマンドでディレクトリ情報や構成オプションなどを確認しておいて下さい.

 server3:php-5.2.5 yasuaki$ /usr/bin/php -i

 上記のコマンドの出力情報を確認しながら、次のような構成オプションを付けて configure します.

 
server3:php-5.2.5 yasuaki$ ./configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --disae-dependency-tracking --with-apxs2=/usr/sbin/apxs
--with-ldap=/usr --with-kerberos=/usr --enable-cli --with-zlib-dir=/usr --enable-trans-sid
--with-xml --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-dbx
--enable-sockets --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc
--sysconfdir=/private/etc --with-mysql-sock=/var/mysql --with-mysqli=/usr/bin/mysql_config
--with-mysql=/usr --with-openssl --with-xmlrpc --with-xsl=/usr --without-pear
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/X11R6
--with-gd=/usr/local 

loading cache ./config.cache
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for egrep... grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking host system type... powerpc-apple-darwin9.3.0
checking target system type... powerpc-apple-darwin9.3.0
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes


途中省略 Thank you for using PHP. Notice: Following unknown configure options were used: --disable-dependency-tracking --enable-trans-sid --with-xml --enable-dbx Check './configure --help' for available options


注)上記の例では、表示の都合で改行を入れてありますが、実際は1行のコマンドです.

イタリック体の太字の部分が今回新たに加えた構成オプションです.幾つかの構成オプションが不明だと文句を

言われてしまいますが、無視して下さい.


後は、いつものように make, make install して下さい.この作業は結構時間が掛かります.

できれば make install する前に、 オリジナルの PHP ライブラリ /usr/libexec/apache2/libphp5.so を

どこか別な場所にバックアップしておいてください.



server3:php-5.2.5 yasuaki$ sudo make install
Installing PHP SAPI module:       apache2handler
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1/build-1/libtool' libs/libphp5.so /usr/libexec/apache2
/usr/share/apr-1/build-1/libtool --mode=install cp libs/libphp5.so /usr/libexec/apache2/
cp libs/libphp5.so /usr/libexec/apache2/libphp5.so
Warning!  dlname not found in /usr/libexec/apache2/libphp5.so.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/libexec/apache2/libphp5.so
[activating module `php5' in /private/etc/apache2/httpd.conf]
Installing PHP CLI binary:        /usr/bin/
Installing PHP CLI man page:      /usr/share/man/man1/
Installing build environment:     /usr/lib/php/build/
Installing header files:          /usr/include/php/
Installing helper programs:       /usr/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/share/man/man1/
  page: phpize.1
  page: php-config.1
Installing PDO headers:          /usr/include/php/ext/pdo/
server3:php-5.2.5 yasuaki$



7.Apache の再起動


  Server Admin Tool か、コマンドラインを用いて Apche サーバを再起動して下さい.

  エラーがないかどうか Apache のログ出力を確認しておきましょう.

  server3: yasuaki$ sudo apachectl graceful restart

8.PHP の情報確認


  info.php などの名前で適当な場所に次の1行を記述したファイルを置き、実際に WEBブラウザから

  info.php にアクセスしてPHPの詳しい情報を表示してみましょう.

  <?php phpinfo(); ?>


以上簡単にGDライブラリをPHPに組み込む手順を紹介しました.参考までにGD組み込み後のphpinfo() の情報を載せておきます. 


Local Search

Calendar

February 2019
S M T W T F S
« Jan    
 12
3456789
10111213141516
17181920212223
2425262728  
  • Blogroll

  • Meta