■原因
GD(および他の画像処理ライブラリ)がインストールされていなかったため。
■行ったこと
パッケージ・マネージャでphp5-gdをインストールした。
各画像ファイル形式を扱うライブラリについては、
libjpegはlibjpeg62、pngはzlib1gがインストール済みだったため、freetype2-demosだけインストールした。
ついでに、myAlbum-Pモジュール推奨のImageMagickもインストールしました。
こちらも、パッケージ・マネージャからphp5-imagickをインストール。
■確認方法
GDがインストールされていれば、phpinfo()で、GDに関する項目が表示される。
■参考
GD:
http://www.php.net/manual/ja/book.image.php
http://d.hatena.ne.jp/hiratake55/20090119/1232363523
ImageMagick:
http://headape777.blog59.fc2.com/blog-entry-241.html
web上には、configureオプションにgdを含めてphpをコンパイル、インストールしなさい、php.iniも編集しなさい、という指示が多い。
でも、パッケージのインストール→Apache再起動だけで使えるようになりました。
■その他
XOOPSのmyAlbum-Pでサイズ制限を超えたファイルをアップすると、何の注意も出ず、ただ表示されない。
最初これでつまづいたことからこの問題にたどり着いたけれど、これはまた別の(モジュールの)問題。
2009年9月29日火曜日
[XOOPS] PHPメモリ割り当て設定
現象:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1310526 bytes) in /var/www/vhosts/makinecim.com/httpdocs/generator/pages/class.utils.inc.php(2) : eval()'d code on line 6
というようなエラーが表示される。
ページ全体が表示されず、エラー文のみが表示される場合も、
ページの途中で表示される場合もある。
対策:
1)php.iniの設定(サーバ全体)を変更して、XOOPSを再インストール/etc/php5/apache2/php.ini
270行目:memory_limit = 16M
→ memory_limit = 64M
2)mainfile.phpでの設定(XOOPS)を変更
(XOOPSインストールフォルダ直下)/mainfile.php
30行目: define("XCL_MEMORY_LIMIT", "16M"); // extra param
→ define("XCL_MEMORY_LIMIT", "64M"); // extra param
仕組み:
php.iniはインストール時に参照される。実際のXOOPSの動作には関係ない。
XOOPSの動作が依存するのは、インストール時にphp.iniの設定をデフォルトとして、mainfile.phpに書き込まれた設定。
mainfile.phpのメモリ割り当て設定ははインストール時に設定変更可能。
(64MBのサイズは適当なもの。)
登録:
投稿 (Atom)