DigiLoog

PC関係の事なら何でもいけるそんな処

xoops用ファイル置き場(d3downloads)の動作を少し軽くする方法

2012年07月12日(木) - 14:30 | カテゴリ: Linux

d3downloadsはxoops用モジュールの中でもかなり重い処理(てか、重い。もの凄く…)になる部類なのだが、
機能としてはすごく優秀かつ使いやすいので、なんとか軽量化できぬ物かと試行錯誤してみた。

d3downloadsの動作が重くなる原因としては色々あるみたいなのだが、
代表的な方法は下記サイト様で紹介されているので、今回は割愛。
自分がココにメモする方法はそれとは違うけど、環境によっては有効だと思う。

ちょい長くなるので、『やり方見たい!』という物好きな方は続き(Read more…)からどうぞ。
方法1 : php.iniを編集 + lightbox_plus.jsを差し替える方法(下記サイト様参照)
GUiLZ.ORG

方法2 : d3downloadモジュールに搭載されているMD5チェックサム計算部分を無視する方法
自分の行ったのはこの方法。
容量の小さい細かいファイルの場合はそれほど気にならないのだが、下写真の様な特大ファイルを設置する場合には有効。
処理前のサンプル画像
…『そんな巨大なの置くなよ』という突っ込みは抜きで。Linuxのイメージとか設置する際には使わないと面倒なんですよ(´・ω・`)
この方法を使用すると、MD5チェックサムの計算が行われなくなるのと、ファイル名が表示されなくなる点は妥協するしかない。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
# cd

# cp [XOOPS_TRUST_PATH]/modules/d3downloads/class/mydownloads.php ./mydownloads.php-
# vi [XOOPS_TRUST_PATH]/modules/d3downloads/class/mydownloads.php
内容としては、関数『file_link( $id, $cid, $title=”, …)』の中にある一部ソースコードをコメントアウトする事になる。
具体的には、1094行目付近にある
$md5 = $this->get_md5_hash( $url, $filename, $block ) ;
先頭部に“//”をつける事でコメントアウトし、
//$md5 = $this->get_md5_hash( $url, $filename, $block ) ;
へと変更する。そして、変更したら上書きをする。最後に、保存されているキャッシュとかを消す後処理を行う。
# rm -rf [XOOPS_TRUST_PATH]/cache/
# rm -rf [XOOPS_TRUST_PATH]/templates_c/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

全部終わったら、一応apacheをrestart(reload)して実際にページを確認してみる。
するとMD5チェックサムが表示されないかわりに、動作がキビキビしている。 …ハズ(´・ω・`)

なぜ、こうなるかと言うとd3downlaodsモジュールが呼び出される度に、
http鯖内でd3downloadsで表示するファイルのチェックサムを毎回計算しているから。
うまくやれば、計算した結果をどっかに保存しておいて、後でそれを呼び出すという方法も出来ると思うが、
自分には技量が無いので断念。
その内phpを勉強する機会もあるだろうからその時にやろうかな





  • 応援中

    はじめるセカイの理想論 -goodbye world index-