warning: Creating default object from empty value in /var/www/drupal-5.23/modules/taxonomy/taxonomy.module on line 1418.

Linux に、phpMyAdmin 2.6.4 をインストールする方法

phpMyAdmin とは、MySQL の管理がブラウザベースで行える PHP で書かれたフロントエンド UI である。これを使うと MySQL の管理が格段に楽になる。 画面イメージはこんな感じ。 phpMyAdmin.jpg まずは Apache と PHP のインストールをする。 Apache と PHP のインストールが済んだら phpMyAdmin をダウンロードする。 ダウンロードしたファイルを解凍したら、Apache の htdocs のディレクトリにまるごとコピーする (このディレクトリは HTML のルートになるため、https://yourdomain.com/phpMyAdmin/ でアクセスできるように、ディレクトリ名も変更しておこう)。
# cp -R ./phpMyAdmin-2.7.0-pl2 /usr/local/apache2/htdocs
# mv /usr/local/apache2/htdocs/phpMyAdmin-2.7.0-pl2 /usr/local/apache2/htdocs/phpMyAdmin
ここで、phpMyAdmin 用のデータベースを作成する (MySQL が 4.1.2 以上の場合は以下のスクリプトを走らせる)。
# mysql -u root -p < create_tables_mysql_4_1_2+.sql
次に、/usr/local/apache2/htdocs/phpMyAdmin/config.default.php を config.inc.php としてコピーする (ini ではなく、inc です)。
# cd /usr/local/apache2/htdocs/phpMyAdmin
# cp config.default.php config.inc.php
phpMyAdmin から MySQL にアクセスできるように、MySQL に config.inc.php の中のユーザー名とパスワードを設定する。
<?php

$cfg
['Servers'][$i]['user']          = 'root'; ←ここに MySQL がアクセスできるユーザー名を記述 (本当は root じゃない方がいい)
$cfg['Servers'][$i]['password']      = 'your_password'; ←上のユーザーに対するパスワードを記述

?>
ブラウザから phpMyAdmin にアクセスする。
phpMyAdmin とは、MySQL の管理がブラウザベースで行える PHP で書かれたフロントエンド UI である。これを使うと MySQL の管理が格段に楽になる。 画面イメージはこんな感じ。 phpMyAdmin.jpg まずは Apache と PHP のインストールをする。 Apache と PHP のインストールが済んだら phpMyAdmin をダウンロードする。 ダウンロードしたファイルを解凍したら、Apache の htdocs のディレクトリにまるごとコピーする (このディレクトリは HTML のルートになるため、https://yourdomain.com/phpMyAdmin/ でアクセスできるように、ディレクトリ名も変更しておこう)。
# cp -R ./phpMyAdmin-2.7.0-pl2 /usr/local/apache2/htdocs
# mv /usr/local/apache2/htdocs/phpMyAdmin-2.7.0-pl2 /usr/local/apache2/htdocs/phpMyAdmin
ここで、phpMyAdmin 用のデータベースを作成する (MySQL が 4.1.2 以上の場合は以下のスクリプトを走らせる)。
# mysql -u root -p < create_tables_mysql_4_1_2+.sql
次に、/usr/local/apache2/htdocs/phpMyAdmin/config.default.php を config.inc.php としてコピーする (ini ではなく、inc です)。
# cd /usr/local/apache2/htdocs/phpMyAdmin
# cp config.default.php config.inc.php
phpMyAdmin から MySQL にアクセスできるように、MySQL に config.inc.php の中のユーザー名とパスワードを設定する。
<?php

$cfg
['Servers'][$i]['user']          = 'root'; ←ここに MySQL がアクセスできるユーザー名を記述 (本当は root じゃない方がいい)
$cfg['Servers'][$i]['password']      = 'your_password'; ←上のユーザーに対するパスワードを記述

?>
ブラウザから phpMyAdmin にアクセスする。

Perl で、データベースを使う

Perl で、データベース (ここでは MySQL を使うときの基本) をおさらいしよう。Perl でのデータベースへのアクセスは、DBI モジュールを使う。このモジュールは XS で書かれているため、Linux などにインストールするには gcc のコンパイル環境が必要である。レンタルサーバは予め DBI がインストールされているところを選んでおけば間違いないが、そうでない場合は自力でインストールする必要があるため注意しよう。 さて、以下はデータベース中のテーブルのフィールドが id、name、value となっていてそれらを扱う場合の例である。最初のデータベースの定義のところで、mysql のところを Pg とするだけで PostgreSQL に対応できる (ようである)。 スクリプト中ではデータベースのテーブルを変数でマッピング (定義) している (ハッシュを使う方法もあると思うのでもっといい方法があったら教えて欲しい)。こうしておくと後でテーブルの定義を変更したときなど柔軟に対応できるだろう。 foreach の中の「$_」は、Perl では「現在処理中のデータ」であり、
foreach my $data (@$DATA) {
    $id    $data->$T_FIELD[$T_ID];
    $name  $data->$T_FIELD[$T_NAME];
    $value $data->$T_FIELD[$T_VALUE];
}
などするのと同義である。 DBI->selectrow_arrayref は、selectrow_array と似ているが、結果をリファレンスで複数行返すところが異なる。リファレンスなのでその後の処理も高速である (と思われる)。 使用するモジュール
use DBI;
#!/usr/bin/perl

use DBI;

# データベースの設定
our $DB_NAME     = 'DBI:mysql:your_database_name';
our $DB_USERNAME = 'your_username';
our $DB_PASSWORD = 'your_password';
our $DB_TABLE    = 'your_table_name';

# テーブルの定義
our $T_ID    = 0;
our $T_NAME  = 1;
our $T_VALUE = 2;

our @T_FIELD = (
    '`id`',
    '`name`',
    '`value`'
);

# データベースに接続
my $DB = DBI->connect($DB_NAME, $DB_USERNAME, $DB_PASSWORD)
       || die "Connection error";

# データを検索
my $DATA = $DB->selectall_arrayref(
                            qq|SELECT * FROM `$DB_TABLE` |
                          . qq|WHERE $T_FIELD[$T_ID]='ここに検索したい ID を書く'|
                        );

# データがあれば
if(@$DATA)    {

    my $id, $name;

    # データを出力
    foreach (@$DATA)    {

        $id    = $_->[$T_ID   ];    # $T_ID    = 0
        $name  = $_->[$T_NAME ];    # $T_NAME  = 1
        $value = $_->[$T_VALUE];    # $T_VALUE = 2

        print "$id / $name / $value\n";      # データを表示
    }
}

# データベースの接続を切断
$DB->disconnect();

1;
Perl で、データベース (ここでは MySQL を使うときの基本) をおさらいしよう。Perl でのデータベースへのアクセスは、DBI モジュールを使う。このモジュールは XS で書かれているため、Linux などにインストールするには gcc のコンパイル環境が必要である。レンタルサーバは予め DBI がインストールされているところを選んでおけば間違いないが、そうでない場合は自力でインストールする必要があるため注意しよう。 さて、以下はデータベース中のテーブルのフィールドが id、name、value となっていてそれらを扱う場合の例である。最初のデータベースの定義のところで、mysql のところを Pg とするだけで PostgreSQL に対応できる (ようである)。 スクリプト中ではデータベースのテーブルを変数でマッピング (定義) している (ハッシュを使う方法もあると思うのでもっといい方法があったら教えて欲しい)。こうしておくと後でテーブルの定義を変更したときなど柔軟に対応できるだろう。 foreach の中の「$_」は、Perl では「現在処理中のデータ」であり、
foreach my $data (@$DATA) {
    $id    $data->$T_FIELD[$T_ID];
    $name  $data->$T_FIELD[$T_NAME];
    $value $data->$T_FIELD[$T_VALUE];
}
などするのと同義である。 DBI->selectrow_arrayref は、selectrow_array と似ているが、結果をリファレンスで複数行返すところが異なる。リファレンスなのでその後の処理も高速である (と思われる)。 使用するモジュール
use DBI;
#!/usr/bin/perl

use DBI;

# データベースの設定
our $DB_NAME     = 'DBI:mysql:your_database_name';
our $DB_USERNAME = 'your_username';
our $DB_PASSWORD = 'your_password';
our $DB_TABLE    = 'your_table_name';

# テーブルの定義
our $T_ID    = 0;
our $T_NAME  = 1;
our $T_VALUE = 2;

our @T_FIELD = (
    '`id`',
    '`name`',
    '`value`'
);

# データベースに接続
my $DB = DBI->connect($DB_NAME, $DB_USERNAME, $DB_PASSWORD)
       || die "Connection error";

# データを検索
my $DATA = $DB->selectall_arrayref(
                            qq|SELECT * FROM `$DB_TABLE` |
                          . qq|WHERE $T_FIELD[$T_ID]='ここに検索したい ID を書く'|
                        );

# データがあれば
if(@$DATA)    {

    my $id, $name;

    # データを出力
    foreach (@$DATA)    {

        $id    = $_->[$T_ID   ];    # $T_ID    = 0
        $name  = $_->[$T_NAME ];    # $T_NAME  = 1
        $value = $_->[$T_VALUE];    # $T_VALUE = 2

        print "$id / $name / $value\n";      # データを表示
    }
}

# データベースの接続を切断
$DB->disconnect();

1;