Feb 042007
 

PHP codeのInput formatで、apache_request_headers()で得られる値を表示するページを、Drupalのノードで作ってみました。
↓な感じで書いて、Input formatでPHP codeを選択して保存しています。


<?php

$headers = apache_request_headers();

echo "<table border=\"1\">\n";
echo "<tr><th>header</th><th>value</th></tr>\n";

foreach ($headers as $header => $value) {
  echo "<tr><td>$header</td><td>$value</td><tr>\n";
}

echo "</table>\n";

?>

実行結果はこちらから確認できます。実際のリクエスト内容が表示されます。
最初はサーバ変数($_SERVER)を全部表示してみようかと思ったのですけど、さすがにヤバそうなのでやめました。
こういったことがお手軽にできるところもDrupalのよいところです 🙂

Feb 042007
 

Drupal 4の頃はmisc/drupal.cssというファイルがあったので、themeによらない共通のCSSをこれに書いていました。
例えばpreのscroll属性とか。

pre {
  padding: 0.5em 0.5em;
  border: 1px solid #ddd;
  line-height: 1em;
  width: 95%;
  min-height: 3em;
  overflow: scroll;
}

Drupal 5になってdrupal.cssがなくなり、「どこに書こうか、theme毎のstyle.cssに書くのも面倒だなぁ」と思ってたのですが、ふと思い立ってmodules/node/node.cssに書いてみることにしました。
modules/system/defaults.cssっていうのもあるようですが、そもそもnodeのpre要素に適用したいスタイルなのでnode.cssでもよいのかなと。

どういったやり方がDrupal流儀として正しいんでしょうかね 😕

ついでにいくつかthemeも追加(Amadou,GlossyBlue,Golden Hour)。

Feb 022007
 

PHP+MySQL環境をバージョンアップしたばかりですが、ついでにDrupalも5.1にアップグレードしてみました。

ほぼ問題なかったのですが、img_assistモジュールが動かなくなってしまったので、貼り付けていた画像が見れなくなっています。すみません、確認不足でした。

ほかに、atom, browscap, robotstxt, trackback, taxonomy_menuも5未対応が予めわかっていましたが、こちらは当面なしでもよかろうと判断しています。
trackbackはどうせspamばかりだし。taxonomy_menu(NavigationにCategoryメニューを表示してくれる)がないのはちょっと不便かも?と思いましたが…

Feb 012007
 

Drupalのサーバ環境を移行してみました。XERA内でのサーバ移動です。
PHPは4.4.4から5.1.6へ、MySQLは4.0.26から5.1.11-betaに変更となります。
ちょっとMySQLデータベースの移行で手こずりましたが。

データベース内容のdump

コマンドラインのmysqldumpコマンドでは文字コード変換がおこなわれてしまうため(default-character-set=binaryが使えなかったのです)、phpMyAdminをセットアップしてデータベースをエクスポートします。

データベース作成

mysqldumpしたCREATE文からではなく、Drupalのdatabase/database.4.1.mysqlで再作成します。ただ初期データを作成すると、dumpデータをリストアする際にDuplicateしてしまうため、除いておきます(INSERT INTO文を全部消しておく)。

dumpデータの投入

sshしてmysqlコマンドで入れます。ここでも文字コード変換がおこらないように先頭で’SET NAMES utf8;’を実行するようにしています(もともとutf8なので変換は実行されません)。

あとはDrupal本体のコンテンツ群をコピーして完了。

Jan 082007
 

Drupal 4.7.5がリリースされましたので、新年早々アップデートしました。
修正内容は2件のsecurity fixになります(クロスサイトスクリプティングとDoS攻撃)。

このサイトのDrupalはCVS checkoutして利用していますので、

  1. Drupal本体をリリースタグ(今回はDRUPAL-4-7-5)でcvs update
    cvs update -Pd -r DRUPAL-4-7-5
  2. .keep_meファイルが残っているディレクトリで、.keep_meファイルに記述されているタグを使いcvs updateを実行
    cvs update -Pd -r `cat .keep_me`

といった手順でアップデートします。

が、いちいちcdしてcvs updateするのも面倒ですので、以下のようなスクリプトを用意してアップデートします。

#!/bin/sh

cvstag=DRUPAL-4-7-5
topdir=/path/to/public_html

curdir=`pwd`

echo "===== updating: `dirname $topdir`"
cd $topdir && cvs update -Pd -r $cvstag

for keepfile in `find $topdir -type f -name ".keep_me"`; do
  subdir=`dirname $keepfile`
  echo "===== updating: $subdir"
  cd $subdir && cvs update -Pd -r `cat $keepfile`
done

cd $curdir

conflictが出たら適宜内容を確認して個別に修正していき、全部終わったらミラーリングアップロード。

最後に/update.phpにアクセスしてcacheテーブルの変更をおこない終了です。
cacheテーブルの変更をしないとDos攻撃への対処が完了しませんのでご注意ください。

Dec 242006
 

trackback spamが激しいので、Spam module v2モジュールに同梱されているtrackback_blackholeモジュールを有効化しました。

spamモジュール自体は以前から導入していましたのでspam判定はされる格好になってましたが、publishされないだけでaproval queueには残るので一通りチェックしなければいけません。

trackback_blackholeは文字通りspam判定されたtrackbackをそのまま消し去ってくれます。

万一trackbackしたのに反応がない、なんてことがございましたらご連絡ください。

Drupalテーマ変更 – Barlow

 announce, article  Comments Off on Drupalテーマ変更 – Barlow
Dec 172006
 

テーマをBarlowに変えてみました。
標準では750ピクセルの固定幅のところを90%に変更して使っています 🙂

$ cvs diff -u barlow
cvs diff: Diffing barlow
Index: barlow/layout.css
===================================================================
RCS file: /cvs/drupal/contributions/themes/barlow/layout.css,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 layout.css
--- barlow/layout.css   13 Dec 2006 10:23:28 -0000      1.1.2.1
+++ barlow/layout.css   17 Dec 2006 01:20:28 -0000
@@ -1,5 +1,5 @@
 #wrapper {
-  width: 750px;
+  width: 90%;
   max-width: 95%;
   margin: 0 auto 0 auto;
 }

ついでにSwitchthemeモジュールを入れて、いくつかのテーマを切り替えられるようにしてみました。
いつまで残しておくかはお約束できませんが、よろしければお試しください 😉

Dec 172006
 

Browscapモジュールがいつの間にか動いてませんでした。
普通でしたらbrowserとcrawlerが判別されてuser agentに記録されるべきところ、全部browser扱いになっています。
Browscapモジュールは、cronの実行タイミングでBrowser Capabilities Projectからブラウザの情報を入手するのですが、実行時のログには

Couldn’t retrieve updated browscap: Internal Server Error

と出ています。

調べたところ、こちらのURL変更対応が必要だったようです。
issueは4.6系列としてあがってますが、パッチは4.7系列(CVS Tag:DRUPAL-4-7で使ってます)にもそのまま適用できました。

Oct 252006
 

DrupalでGoogle Mapを表示する、GMap Moduleを使ってみました(ここではないです)。
とりあえず動いたのですが、ログをみると

ページが見つかりません – /http://dist.codehaus.org/geoserver/gmaps-geoserver_scripts/wms-gs-1_0_1.js

が大量に出ています。

gmapモジュールがdrupal_add_js()を使ってJavaScriptソースへのリンクを埋め込むのですが、drupal_add_js()は外部URLであっても先頭に/を埋め込んでしまうことが原因のようです。
おそらく以下の問題なのでしょうか。

実影響がなんなのか不明なのですが、とりあえず「ページが見つかりません」のメッセージが気になる場合は、wms-gs-1_0_1.jsをダウンロードしてmiscに配置すれば、そちらへのリンクが生成されるようになり回避することができます。

コンテンツ移行のお知らせ ~ WordPress to Drupal

 announce  Comments Off on コンテンツ移行のお知らせ ~ WordPress to Drupal
Sep 122006
 

WordPressからDrupalへコンテンツを移行しました。
サーチエンジンや他所のリンクからいらした方など、ご面倒ですが右上のSearchフォームで再度検索をお試しください。
質問等ございましたらfeedbackフォームもしくは、コメントにてご連絡ください。
ご迷惑おかけしますが、よろしくお願いします。