ここ最近、Joomla!1.5でサイトを作成していて、今3つめを作成しています。
開発では、もちろんJoomla!1.5を使って開発していましたが、サイトを作成するという意味では、ゼロから作成するのはうちのデモサイトや開発用を除いては、はじめてです。
それにあわせて自分用のオリジナルなJoomla!1.5を作成しています。汎用性があって、便利そうなら公開しようと思っています。
作成していく中で1.0.xのときもそうでしたが、やってみて今更あらためて気づいた事が何点かありました。
などと・・・。
Joomla!1.5では、パラメータの保存やランゲージファイルにINIファイルが使われています。
ここでふと気づいたのですが、ランゲージファイルは問題ないでしょうが、パラメータは見られては困るものも出てくるのではないでしょうか。テンプレートのパラメータくらいなら重要な値は無いでしょうが、もしかすると今後エクステンションで重要な値を保存する際にINIファイルを利用するものが出てくるかもしれません。
試しにお使いのテンプレートのparams.iniにアクセスしてみてください。
http://yoursite.com/templates/yourtemplate/params.ini
もう対策されている方もおられるでしょうが、以下のような書き方でhtaccessファイルに追加すると指定したファイルは外部からアクセスできないようにすることができます。
<Files ~ "\.(htaccess|dat|log|csv|ini|xml)$">
Deny from all
</Files>
ついでにdat, log, csv, xmlも追加してみました。
Joomla!1.5では、パラメータをINIファイルに保存したりPHPファイルとして保存したりするメソッドが用意されています。それを使えば作成・保存はもちろんのことパラメータの呼び出しも楽にできるようになっています。その反面それを見せたくないパラメータとして保存しているならば、外部から見ることができないようにすることも大事だと思います。
Joomla!というより一般的なことですが、Joomla!1.5ではデフォルトで利用されているので書いてみました。
Windows版のXAMPPは、PHP4とPHP5の両方のiniファイルがあるようなのですが、Linux版には無い?独自の設定はどうしたらよいのか検索してみたが、なかなか見あたらない。(検索ヘタか・・)brush:php;info()を見てみるとどうも同じbrush:php;.iniを使っているようだ。じゃあ別のbrush:php;.iniを読み取るように変更すればいい。 (XAMPPは、1.6.4です。)
vi /opt/lampp/etc/extra/httpd-xampp.conf
LoadModule brush:php;4_module modules/libbrush:php;4.so LoadModule brush:php;5_module modules/libbrush:php;5.so
を
PHPIniDir /opt/lampp/brush:php;4 LoadModule brush:php;4_module modules/libbrush:php;4.so PHPIniDir /opt/lampp/brush:php;5 LoadModule brush:php;5_module modules/libbrush:php;5.so
と付け加え
それぞれbrush:php;4とbrush:php;5のフォルダにオリジナルのbrush:php;.iniをコピーして独自の設定を書き込む。
XAMPPを再起動。
ちなみにxdebugを入れてみましたが、この方法だとbrush:php;4だけは動きませんでした。
Zend Debuggerは切替できました。
Windows 版にも同じように(Windows版にはhttpd.confに記入しました。)
以下を最後に追記
PHPIniDir "D:\Program Files\xampp\brush:php;5" PHPIniDir "D:\Program Files\xampp\brush:php;4"
brush:php;4、brush:php;5は、自分がわかりやすい適当なディレクトリでOK。 一応動いている。