2008年前からこのバグは報告されている。Joomla.orgのドキュメンテーションに現れてこない。この不思議なバグとは!
不思議なバグ
Joomla 2.5や3.xのテンプレートにあるファイル、例えば、template.cssの内容をカスタマイズしてファイルを保存したとする。ファイルをカスタマイズする前のファイルパーミッションは 0644である。これがカスタマイズして保存すると自動的に0444に変ってしまう。
Joomlaの運営上では何も問題が無いが、テンプレートを通常のJoomlaエクステンションでアップデートしようとするとFailed to copyというエラーが表示される。
何度も通常の方法でテンプレートのバージョンをアップデートしようとしても同じエラーに出くわす。
FTPソフトでtmpフォルダーにあるアップロードされた新バージョンのテンプレートをFTPソフトの移動機能を使って該当のテンプレートフォルダーに上書きしようとしてもシステムエラーになる。
このエラーは、付属のテンプレートでも有料テンプレートでも同様に発生する。つまり、Joomla Template Managerが変更されたファイルのパーミッションを自動的に0644から0444に変えているという事である。
この状態に陥ると今サイトで使用しているテンプレートを削除して新しいテンプレートをインストールするしかない。これは面倒なことだ。
テンプレートのバージョンアップが出来なくなるという不思議なバグ
テンプレート以外のシステムファイルでは、このようなことは発生していない。テンプレートにあるファイルだけがこの対象になっている。JoomlaのTemplate Managerがそうしているとしか考えられない。なぜなんだろうか?
不思議なテンプレートパーミッションバグの解決方法
結論から言って、テンプレートにあるファイルをカスタマイズや変更した場合は、必ず後で変更したファイルのパーミッションを0444から0644に戻しておくしかない。
Admin Toolというコンポーネントを使うとシステムファイルでパーミッションがおかしくなっているファイル全てをJoomlaのパーミッションに設定してくれる。
または、
FTPソフトを使ってテンプレートフォルダーになる変更したファイルを手作業で0644に戻すかである。
テンプレートをアップデートする時にFailed to copyというエラーが出たら、このページを思い出してほしい。