Skip to main content

Drupal

CentOS 5 で APC と uploadprogress をインストールする

CentOS 5 に APCuploadprogress を導入したときのメモ。

root ユーザーで下記を順に実行。

# yum install php-pear
 
# yum install php-devel
 
# yum install httpd-devel
 
# yum install pcre-devel
 
# pecl install apc
 
# pecl install uploadprogress

/etc/php.ini に次の 2 行を追加。

extension=apc.so
extension=uploadprogress.so

httpd を(再)起動。

/etc/init.d/httpd start

以上で完了。

Drupal6 の status ページで Upload progress が Enable になった。

参考にさせていただいたページ:
http://frankleng.me/2009/08/25/installing-apc-on-centos-5/
http://douzo.seesaa.net/article/173563053.html

最初の資料には pcre-devel の言及がありませんでしが、自分の環境ではこれがないために apc のインストールで失敗。
後者の資料に従って pcre-devel をインストールして無事成功。
感謝です。

チューニングの詳細については下記:
http://www.php.net/manual/ja/apc.configuration.php

Artisteer の垂直メニューブロックにサブ項目を表示するには PHP の DOM が必須

Posted in

Artisteer で作成した Drupal テーマで垂直メニューを使う場合、サーバーの PHP 環境に DOM が組み込まれていないと、サブメニュー項目の表示がおかしくなる件。

エクスポートしたテーマに含まれる common_methods.php の art_menu_worker() 関数に次のようなコードがある。

・・・
  if (class_exists('DOMDocument')) {
    $output = art_menu_xml_parcer($output, $show_sub_menus, $menu_class);
    /* Support Block Edit Link module */
      $output = str_replace('<!DOCTYPE root>', $empty_str, $output);
  }
  else {
    $output = preg_replace('~(<a [^>]*>)([^<]*)(</a>)~', '$1<span class="l"></span><span class="r"></span><span class="t">$2</span>$3', $output);
  }
  return $output;

DOM が組み込まれていなくても else ブロックが実行されてエラーにはならないが、メニューのサブ項目にも余計な span が追加されてレイアウトが崩れる模様。

対策は DOM をインストールすること。
CentOS の場合は次のコマンドラインを実行する。

# yum install php-xml

DOM がインストールされれば、サブ項目も含めて垂直メニューが正常に表示されるようになる。

以上、Artisteer の便利な垂直メニューの階層表示を使うには PHP に DOM が必須っぽいということでメモ。

quiz (6.x-4.0) の Question Results ページの日本語化で t('of') を '/' にする

Posted in

quiz (6.x-4.0) の Question Results ページの日本語化について。

デフォルトでは、個々の問題解答見出しの右端に次のように得点が表示される。

Score 3 of 10

これは、10 点満点のうち 3 点を獲得したという意味。

この表示に対応するコードは、theme/quiz-report-form.tpl.php で次のように実装されている。

<?php print t('Score')?>
<?php print drupal_render($sub_form['score'])?>
<?php print t('of') .' '. $sub_form['max_score']['#value']?>
<?php print '<br><em>'. $skipped .'</em>'?>

Score、of といった個々の文字列パーツをローカライズしてから連結しているので、語順の入れ替えに対応できず、次のような日本語表示になってしまう。

得点 3 の 10

いくらなんでもこれではマズいので、ここはテンプレートを書き換える必要がある。
とりあえず、最もお手軽な対応として、t('of') を '/' に置き換えた。

<?php print t('Score')?>
<?php print drupal_render($sub_form['score'])?>
<?php print '/' .' '. $sub_form['max_score']['#value']?>
<?php print '<br><em>'. $skipped .'</em>'?>

これで表示は次のようになる。

得点 3 / 10

ありがちですが、1ヵ月後は完全に忘れている自信があるのでとりいそぎメモ。

ページを返さない処理のデバッグ用ダンプに watchdog を利用する

Posted in

Ajax の応答などページを返さない処理の調査でちょこっと変数をダンプしたいとき、お手軽な出力先として watchdog が使える。

たとえば、変数 $hogege のダンプを見たいときは、

watchdog("hoge", '<pre>'.var_export($hogege, true).'</pre>');

のようなコードを埋め込んでおけば、ログのメッセージとしてダンプを確認できる。

watchdog:
http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/watchd...

ファイルシステムのパス変更と files テーブルのデータ修正

imagefield とファイルシステムパス変更について。

Drupal コアの更新 (6.16、5.22)

Posted in

バタバタしていブログを更新できなかったが、Drupal のコアが更新。
最新バージョンは、6 系が 6.16、5 系が 5.22 になった。
http://drupal.org/drupal-6.16

下記のセキュリティ修正 (critical) が含まれる。
http://drupal.org/node/731710

D6 では、今回も .htaccess に変更があるので要注意。

Drupal コアの更新 (6.15、5.21)

Posted in

コアが更新。最新バージョンは 6 系が 6.15、5 系が 5.21 に。
http://www.synergyquest.jp/node/89

6 系は .htaccess の更新があるので要注意。

Date モジュールのセキュリティ更新

CCK の日付フィールドで使っている Date モジュールのセキュリティ更新があった。

SA-CONTRIB-2009-057 - Date - Cross Site Scripting
http://drupal.org/node/579144

日付フィールドの書き込みができるユーザーについて XSS の脆弱性があるらしい。
そっくり置き換えて、いまのところ特に問題なし。
懸案だった、ある不具合も直っていたのでよかった。

Drupal コアの更新 (6.14、5.20)

Posted in

コアが更新。最新バージョンはそれぞれ、6 系が 6.14、5 系が 5.20 となった。
http://drupal.org/drupal-6.14

リリースノート:
http://drupal.org/node/579476 (Drupal 6.14)
http://drupal.org/node/579484 (Drupal 5.20)

セキュリティ更新の対象となった脆弱性は、
OpenID association cross site request forgeries (D6のみ)
OpenID impersonation (D6のみ)
File upload (D6のみ)
Session fixation (D5のみ)

アナウンスの "Important update notes" に記載されているように、今回は .htaccess や robots.txt の更新がないので、システムのフォルダ (include とか modules とか) をそっくり入れ替えればOK (たぶん)。実際、旧版との間で diff してみたら確かにそうでした。

フォルダごとガサっとコピーするだけなら楽チン。
ただし、D6 のほうはデータベースのスキーマが更新されているので、DB 更新スクリプトの実行を忘れずに。

Drupal コアの更新 (5.19、6.13)

Posted in

セキュリティ修正を含む Drupal コアの更新がありました。
http://drupal.org/drupal-6.13

修正される脆弱性は、

  • Forum モジュールの XSS。
  • コメントの入力書式の変更とシグニチャの書き換えで任意のHTMLが埋め込まれる可能性。
  • 外部サイトへのリンクを含む並べ替え機能付きの表が表示されるページからログインしようとして失敗すると、そのときに入力したユーザ名とパスワードがURLに含まれた状態となって、リファラー経由でそれらの入力値が外部サイトにリークしてしまう問題。(誤入力データが Drupal のキャッシュから漏れるケースもあるらしい)
  • といったもののようです。

    今回は .htaccess への修正はありませんでしたが、settings.php に次の行が追加されることから、一応 php.ini の設定を見直しました。
    ini_set('session.use_cookies', 1);

    あと、D6 で system モジュールのデータベーススキーマに更新があり、update.php の実行が必要でした。

    当方で運用を担当しているサイトは、今のところ特に問題なく動作しています。

コンテンツの配信