Skip to main content

shirane のブログ

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

Pleiades Helios で Java ソースのホバー表示を日本語化する設定

Posted in

MergeDoc サイトのページ:
http://mergedoc.sourceforge.jp/mergedoc.html

にある記述:
「Eclipse 3.2 以降ではホバー表示は API ドキュメント HTML ソースから取得できる」

を、ローカルの日本語 API Javadoc で行うための設定を Helios で行ったのでメモ。

(1) API ドキュメントのローカル展開
まずローカルに API ドキュメントを用意する。Java SE 6 なら下記ページの「Java SE 6 ドキュメント」から入手できる。
http://java.sun.com/javase/ja/6/download.html
取得した ZIP ファイルを展開し、docs フォルダをローカルの適当な場所に保管する。

(2) Eclipse 側の設定
Pleiades Helios デフォルト設定では、ホバー表示用コンテンツの取得先として Java SE のソース src.zip (中のコメントはすべて英語) が設定されている。ホバー表示にはここで指定されたソースのコメントが優先的に使用されるので、ドキュメントの HTML ソースへの参照を有効にするには、この src.zip への参照設定を除去する必要がある。

また、デフォルトでは API ドキュメントの参照先としてインターネット上の英語版 API Javadoc の URL が設定されている。これをローカルの日本語 API Javadoc のパスに変更することで、インターネット接続の有無に関係なくローカルの日本語 API Javadoc からホバー表示用コンテンツを取得させることができる。

以上の設定を行うには、次の手順を実行する。

  1. [ウィンドウ] メニューの [設定] をクリック。
  2. ツリーの [Java] - [インストール済みのJER] をクリック。
  3. 画面右側に表示される [インストール済みの JRE] の一覧で、使用する JRE (デフォルトの項目はチェックがオンになっている) をクリックし、[編集] ボタンをクリック。

Eclipse Java エディタのタブの表示幅設定

Posted in

Eclipse の Java エディタで、タブの表示幅を変更するには、ユーザー定義のフォーマッターを作成する。

次の手順に従う。

  1. [ウィンドウ] メニューの [設定] をクリック。
  2. 表示される [設定] ウィンドウで、ツリーの [Java] - [コード・スタイル] - [フォーマッター] をクリック。
  3. [新規] ボタンをクリックして新しいユーザー定義プロファイルを作成する。
  4. 作成したプロファイルの設定画面で、[インデント] タブの [一般設定] グループボックスにある [タブ・サイズ] ボックスに希望のタブ幅を入力し、[OK] をクリック。

こうして作成したプロファイルを [アクティブなプロファイル] として設定すると、指定したタブの表示幅が反映される。

知らないと設定の場所を見つけるのにちょっと(自分的にはかなり)難儀する。
またすぐに忘れてしまいそうなのでメモ。

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...

データベース (MySQL) の中身を SQL 形式でダンプする PHP スクリプト

Posted in

mysqldump の代わりに使える PHP スクリプトが必要になり、探してみると下記ページを発見:
http://snipplr.com/view/173/mysql-dump/

試してみると、残念ながら(自分の目的には)そのままでは使えなかった。
主キーが複数あるテーブルの CREATE TABLE で PRIMARY KEY が正しく出力されないとか、null 値が空の文字列として INSERT されてしまうとか。

やむなく、最近老眼が入ってきた目を凝らしてコードを読み、少しだけ手を入れた。

header('Content-Type: application/octet-stream');
 
function nullcheck($values) {
 $ret = Array();
 foreach($values as $val) {
  if ($val===NULL) $ret[] = 'NULL';
  else $ret[] = '\'' . $val . '\'';
 }
 return $ret;
}
 
function mysql_dump($database) {
 $lnbr = "\r\n"; 
 $query = '';
 $tables = @mysql_list_tables($database);
 while ($row = @mysql_fetch_row($tables)) { $table_list[] = $row[0]; }
  for ($i = 0; $i < @count($table_list); $i++) {
   $results = mysql_query('SHOW CREATE TABLE ' . $database . '.' . $table_list[$i]);
   $query .= 'DROP TABLE IF EXISTS `' . $table_list[$i] . '`;' . str_repeat($lnbr, 2);
   while ($row = @mysql_fetch_assoc($results)) {
    $query .= $row['Create Table'] . ';';

ファイルシステムのパス変更と 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 の更新があるので要注意。

コンテンツの配信