2016/01/06

GMO サーバー上の、jbimages プラグイン(TinyMCE)でハマった件

独自の CMS を作ろうと、とりあえず TinyMCE を導入。
それなりに動いた。
肝心の画像アップロード機能をどうすべか悩んで、JustBoil.me (jbimages)が良さそうだと判断。ローカルのテスト環境ではすんなりと動いた。

で、レンタルしている GMO サーバーでうまくいかない(SD-11 プランを利用中)。
画像ファイルをアップロードしようとすると
The upload path does not appear to be valid
なんてメッセージが出てしまう。アップロードするフォルダにアクセス出来ない、らしい。



他国でも色々と困っているみたいで、とりあえず、jbimages フォルダ内の config.php 内の定義で何とかなりそうだということまでは判った。

---------------------- 元の定義
$config['img_path'] = '/images';
$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'] . $config['img_path'];

この2行を書きかえればイイのだけど、他国の人も試行錯誤しているみたい。
もちろん、フォルダのパーミッションや、 tinyMCE.init で「relative_urls: false」にしておくのは前提の話。

実行中のスクリプトのパスを調べたら、こんな感じだった。
$_SERVER['SCRIPT_FILENAME']=/export/cgi/com/n/a/ドメイン名/実行フォルダ名/スクリプト名.php
もしかすると、「com/n/a」の部分は、契約ごとに変化するのかもしれない。

で、以下のようにしたら解決
---------------------- 最終の定義
$config['img_path'] = '/images';
$config['upload_path'] = '/export/cgi/com/n/a/ドメイン名/images';

最後の「/images」は、それぞれの環境によって変えると良い。
ローカルでも動作するように、チト、条件を入れて、思ったように動くまで半日以上かかった。