このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

GD wz PHP for MacOSX Server

発言者:LAPSHA
( Date Tuesday, December 17, 2002 10:45:45 )


XserveでPHPを利用したいと思っているのですが、プレインストールされ
ているPHPバージョン4.1.2からMarc Liyanageで紹介されている4.2.3に
入れ換えました。この状態でphpinfo()など問題なく動き、PHP4.2.3+
MySQL3.23.39のスクリプトも正しく動きます。
ところがGDを利用したスクリプトは正しく動作せず、生成したイメージ
ファイルをブラウザで表示することができません。同じスクリプトをXserve
でないMacOSXマシンに入れてアクセスした場合は問題なく表示するのです
が...
Xserveの場合、通常のOSXとは違い、Apacheの設定httpd.confが
httpd_macosxserver.confによって上書きされます。これが関係しているの
でしょうか?
アンケートの集計結果のグラフを自動生成するスクリプトを使用したいので
GDが動かないと困ってしまいます。
どなたか解決方法をお教え下さい。



→  Marc Liyanage

稲垣 さんからのコメント
( Tuesday, December 17, 2002 20:07:14 )

 確かMacOS X Serverで標準インストールされているPHPはGDのサポートを
除外したもののはずです。
 それはMacOS X Serverでは標準でGDがインストールされていないからだと
どこかで読んだ記憶があります。

 ですので、GDサポートつきのPHPを利用するには、GDを入れた後にPHPを
GDサポート付きでコンパイルしなおす必要があるはずです。

 確かGDのインストール等はStepWiseのサイトで公開されていたと思います。
一応MacOS X 10.2での対応が載っていますので、こちらを参考にすれば大丈夫
かと思います。

→  Building GD on Mac OS X 10.2

稲垣 さんからのコメント
( Tuesday, December 17, 2002 20:10:20 )

 おっと、PHPは標準のものから別のものに置き換えているんですね。

 確認としては、以下の2点をまず確認してみましょう。

・GDがインストールされているか?
・PHPでGDサポート付きでコンパイルされたものか?


LAPSHA さんからのコメント
( Wednesday, December 18, 2002 13:34:27 )

稲垣様、ありがとうございます。
phpinfo()でみますと、Configureの項に--with-gd=/ と記載されています。
またGDの項にGD Support - enabled, GD Version - 2.0 or higher,
FreeType Support - enabled, FreeType - Linkage with free type,
T1Lib Support - enabled, JPG Support - enabled, PNG Support -
enabled, WBMP Support - enabled
と表記されています。
OSX-serverと同じ手順で同じPHPに入れ替えたOSXでは問題なくGDが動き
ますので、GDサポート付きでコンパイルされている筈です。
ただ、OSX-Server、OSXどちらもphpinfo()で表示されるextension_dirの
ディレクトリは存在しません。

稲垣 さんからのコメント
( Thursday, December 19, 2002 14:21:22 )

 まず、書き忘れていましたが、GDが利用できない部分に関してApacheの設定
は関係ないと思っています。PHPが動作しているのであれば、後はPHP以降の
問題だと思います。
 で、PHPの設定もしくは、GDがインストールされていないのではということ
で上記のコメントを書きました。

 phpinfo()では、GDが利用可能な設定で作成されているようですので、GD
そのものがインストールされていないということではないでしょうか?

 ちなみに、MacOS X Serverのバージョンはいくつでしょうか?

 今、自分の環境で確認したところ以下の結果でした。10.1.xではGDの
ライブラリが見当たりませんでしたので、自分で入れないとGDのライブ
ラリがないかもしれません。

・MacOS X Server 10.1.5 -> /usr/local/lib/libgd.a は存在しない
・MacOS X 10.2.2 -> /usr/local/lib/libgd.a は存在する

 もしくはMacOS X Server 10.2.xでもGDがインストールされていないか
もしれません。Xserveに該当のファイルがあるか確認してみてください。

LAPSHA さんからのコメント
( Thursday, December 19, 2002 17:26:08 )

MacOS X Serverのバージョンは10.2.2です。ご指摘の /usr/local/lib/
には私が作成した php.ini しかありません。
どうやらGDのライブラリがないのが原因なのだと思われますが、MacOS X
10.2.2 (not Server version)の方も同様に /usr/local/lib/ に存在する
ファイルは php.ini だけなのにGDが問題なく動くのは何故なのでしょ
うか???

教えて頂いたStepwise(Building GD on Mac OS X 10.2)によれば、GDを
利用するにはjpeg-6bとlibpngが必要と書かれていたので、指示に従って
jpeg-6bのインストールを試みたのですが、make install ... のところで
エラーになってしまいます。
今インストールされているPHP4.2.3をアンインストールしてStepwiseの手
順でもう一度PHPを入れ直した方が良いのでしょうか?

→  Stepwise

稲垣 さんからのコメント
( Thursday, December 19, 2002 17:36:20 )

 う〜ん、どちらもGDのファイルがないのでしょうか?

 となると、自分のところがおかしいのかなあ。
#って、一時期X Window Systemを入れていたのでそれが残っているのでしょうか

 で、libgd.aは見つからないのでしょうか?もしかしたら他のディレクトリに
あるかもしれません。ちょっとTerminalでのfindコマンドで見つかると思いま
すが文法はさっと出てきません。


micky さんからのコメント
( Friday, December 20, 2002 01:09:25 )

こんばんは、mickyです。

たぶん環境が違うのであてはまるかどうかわかりませんが、とりあえず
インストールできました。Mac OS X Server 10.2.2です。まず、

ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz

をダウンロードしてきてStepwiseの通りにインストール。エラーは出ま
せんでした。素のMac OS X Server 10.2.2ではないのでなんともいえま
せんが、とりあえずエラーを記入してみてください。その後、

http://sourceforge.net/project/showfiles.php?group_id=5624&release_id=114192

からlibpng-1.2.5.tar.gzとlibpng-1.2.5-makefile.macosx.tar.gzとをダ
ウンロードし、それぞれを解凍します。makefile.macosxをMakefileに改
名してそれをlibpng-1.2.5フォルダにコピーし、libpng-1.2.5フォルダに
移動してから“make”、“sudo make install”してインストールします。
最後に

http://www.boutell.com/gd/http/gd-2.0.9.tar.gz

をダウンロードしてきて解凍します。で、“./configure”後、そのままで
はインストールできないので“Makefile”中の“libgd.la”を全て“libgd.a”
に置き換えてから“sudo make install”でOKです。僕は面倒くさいのでJedit
で開いて全置換しました。gdは“make”がいらないので注意してください。

libjpegのインストールでエラーがでるのがなぜかわかりませんが、一度クリーン
インストールし直した方がいいかもしれません。あとDeveloperToolsは最新の
もの(Dec2002DevToolsCD.dmg)をいれています。また、通常Mac OS X
10.x(Server含む)では“/usr/local/”以下には何も入っていないはずです。

LAPSHA さんからのコメント
( Friday, December 20, 2002 13:11:43 )

稲垣さん, mickyさん ありがとうございます。
幸い Xserveは今月導入したばかりでまだ本稼働はさせていませんので、
この際OSからもう一度Clean Installし直してみようと思います。
PHPのインストールはmickyさんの教えて下さった手順でやってみようと
思います。

自宅と会社で個人用としてMacOSX10.2.2を使用しており、Apache+PHP
+MySQLの組み合わせでいろいろ試してみて、これならMacOSXで行けると
思い、会社にはXserveを導入するよう働きかけました。
現在はMail, DNS, WebサーバーをMacOS8.6で動かしておりますが、そろ
そろハードウェアがくたびれてきたのでリプレースすることにしました。
個人的に漢字トーク以前からMacを使っていたため、どうしてもMac
から離れられず、Xserveを選択してしまいました。
意地でもちゃんと動かさないと...

LAPSHA さんからのコメント
( Wednesday, December 25, 2002 10:49:39 )

Xserveのディスクをフォーマットし直し、MacOS X Sever10.2を標準イン
ストールしました。その後「ソフトウェアアップデート」でアップデート
できるものをすべてアップデートし、OSバージョンは10.2.3になりました。
さらにDeveloper Toolsは添付されていたJuly2002版を入れました。
この状態でStepwiseの手順に従って、まずlibjpegをインストールしようと
するとmake installでエラーになってしまいました。
Developer ToolsをDecember2002版にアップデートしてからStepwiseの手順
を再度実行したところ、すべて無事にインストールすることができました。

しかし簡単な円グラフを作成するPHPのスクリプトを動かしても絵が出て
きません。ブラウザにはリンクエラーのイメージファイルのアイコンも表
示されません。PHPのエラーメッセージもありません。
同じスクリプトをOSX上(No Server versionでStepwiseの手順でのGDのイ
ンストールはしていない)にコピーして動かすとブラウザ上に正しく円
グラフが表示されます。

PHP-GDに問題があるのではなく、Apacheの設定またはファイルのパーミッ
ションとかが関係しているのでしょうか?

稲垣 さんからのコメント
( Saturday, December 28, 2002 16:46:30 )

 ちょっと間があいてしまいましたが・・・。

 う〜ん。どこが悪いんでしょうね。

 そうですね。後あるとすれば、apacheからのPHPの呼び出し方が違うとか
その辺だと思いますがどうなんでしょうか?

 とりあえず、10.1.xまでのServer版と通常版でapacheの設定での違いはバー
チャルドメインの為の扱いが別ファイルになっているというのは認識してい
ますが、それ以上の違いはないと実感していましたが、もっとあるのでしょ
うか?
#それ以外にも、パフォーマンスキャッシュだとかリレイム関連で違うとは
#思いますが、それとはここでは余り関係ないと思いますが・・・。

 気にするとすれば、モジュールの読み込み部分とPHPとの拡張子マッピング
のところでしょうか?

 後は、php.iniはどのように記載していますか?もし、設定されていなけ
れば、外れているかもしれませんが雛型を使って作ってみるのもいいかも
しれません。

 また、気になる点としては、phpのコンパイル時の設定でgdのライブラリの
パスを指定するのですが、それが正しくされていないと見つからない可能性
があります。
#ただこれも、OS Xで大丈夫であれば気のせいかもしれませんが・・・。

 後、正しく出ていないのであればどこかでエラーが起きていると思います
ので、エラーログが見つかれば多少は手立てがあるかもしれません。

#関係ないでしょうが、PHP 4.3.0がリリースされましたね。