日別アーカイブ: 2010年11月25日

dfgallery PHP5.3での修正

概要

サーバをアップグレードしたことによって動かなくなった

dfgallery

原因がよくわからなかったからしばらく放置してた。
でも、やっぱり動かしたいのでデバッグしてみたときのメモ。

dfgallery

Q.そもそもdfgalleryって何?

A.dfgalleryでググるとすぐにわかると思いますが、高機能なフォトギャラリーです。アプリケーション自体はCodeIgniterで作られているようです。

このアプリケーション、最初は配布元の動画のようにスムーズに設定出来ない。。。

インストール

インストールの時の設定はこちらのサイトを参照したほうがいいかと思います。
Flickrのウェブアルバムと同等の機能を持つdfGallery 2.0をさくらインターネットの共用サーバーに設置する
このリンクの解決の方のリンクをたどるといいかと思います。

原因

PHPのバージョンが5.3に上がったことが原因だった。

対処: PHP5.3の時の変更箇所

/lib/ci/codeigniter/CodeIgniter.php
60行

// コメントアウト
//set_magic_quotes_runtime(0); // Kill magic quotes

set_magic_quotes_runtime()は非推奨となったため。

/lib/ci/libraries/URI.php
189行目をコメントアウトして追加

//if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str))
if ( ! preg_match("|^[".($this->config->item('permitted_uri_chars'))."]+$|i", rawurlencode($str)))

ここを参照

/lib/ci/libraries/Loader.php
249行目を変更

//$CI->dbutil =& new $class();
$CI->dbutil = new $class();

php5は=で参照渡し
ここを参照

多分これでOKなはず…

PHP browscap

毎回確認するのはとても面倒なのでshellを作成。

#vi browscapupdate.sh
=============================================
#!/bin/bash
wget http://browsers.garykeith.com/stream.asp?PHP_BrowsCapINI
retdiff=`diff -q stream.asp?PHP_BrowsCapINI /etc/php.d/browscap.ini`

if ["$retdiff" = ""] ; then
        rm -f stream.asp?PHP_BrowsCapINI
        echo "no update"
else
        mv -f stream.asp?PHP_BrowsCapINI /etc/php.d/browscap.ini
        echo "update!"
fi
=============================================
#chmod 700 browscapupdate.sh

#echo "0 5 * * * root /root/browscapupdate.sh" > /etc/cron.d/update

内容

  • 新規ファイルの作成
  • ファイルのダウンロード
  • ダウンロードしたファイルと現在のファイルの比較
  • 差分があればファイルを更新、なければDLしたファイルを削除
  • ファイルに実行権限の付加
  • Cronに登録