BusyBox HTTPD で Drupal 7.10 を使う

昨日、BusyBox で Drupal6 の作動方法を紹介しましたが今日は Drupal7 についても少し触れます。尚、ソースを2箇所修正しますので 6.x がサポートされてる間はそちらを利用する事をお勧めします。
Drupal7はindex.phpを隠す処理が施されているため、そのままではBusyBoxではフォームの変数を渡せません。 またoverlayモジュールを切ろうにもsaveボタンを押した後にurlを書き換えられているため設定が反映されない不具合が生じます。そこでindex.phpを常にurlに含むよう "includes/common.inc" を書き換えます。
includes/common.inc 2181行目
--- includes/common.inc.orig 2012-01-25 22:06:54.000000000 +0900
+++ includes/common.inc 2012-01-25 13:54:15.000000000 +0900
@@ -2178,7 +2178,7 @@
}
$query = $query ? ('?' . drupal_http_build_query($query)) : '';
$script = isset($options['script']) ? $options['script'] : '';
-    return $base . $script . $query . $options['fragment'];
+    return $base . 'index.php' . $script . $query . $options['fragment'];
}
}
これで index.php がurlに含まれるようになりました。しかしまだ各リンクのurlは "/?=" になったままです。 それを修正するため "modules/overlay/overlay-parent.js" を書き換えます。
modules/overlay/overlay-parent.js 831行目
--- modules/overlay/overlay-parent.js.orig 2012-01-25 22:14:12.000000000 +0900
+++ modules/overlay/overlay-parent.js 2012-01-25 13:52:31.000000000 +0900
@@ -828,7 +828,7 @@
   if (path.charAt(0) != '/') {
     path = '/' + path;
   }
-  path = path.replace(new RegExp(Drupal.settings.basePath + '(?:index.php)?'), '');
+  //path = path.replace(new RegExp(Drupal.settings.basePath + '(?:index.php)?'), '');
   if (path == '' && !ignorePathFromQueryString) {
     // If the path appears empty, it might mean the path is represented in the
     // query string (clean URLs are not used).
pathを置き換えてる行をコメントアウトします。
動作状況サンプル

コメント

このブログの人気の投稿

米 トランス脂肪酸使用規制へ

手の平で操作する空中マウス OZUPAD

BusyBox HTTPD で Drupal を動かそう

Android の RUU から rom.zip を取り出す

radiko.jp の再生、録音で rtmpdump が Segmentation fault

Alpine LinuxのAPKBUILDに挑戦

VirtualBoxのキーリピート現象