カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策
カラフルボックスでPerlでMySQLにアクセスできないときの対策
カラフルボックスでPerlでMySQLにアクセスできない!エラーメッセージは、mysql のドライバーがない。
こんなメッセージが返ってきます。
db connect error install_driver(mysql) failed: Can’t locate DBD/mysql.pm
この時の対策です。
ちなみに mixhost でも同様のメッセージが出るはずです。
perl での mysql のアクセス
こんな感じ。 use DBI;
eval{
$dsn = “DBI:mysql:database=”.$ra_dbname.”;host=”.$ra_dbhost.”;port=$port”;
$dsn = “DBI:mysql:”.$ra_dbname.”:”.$ra_dbhost.”:$port”;
#$dbh = DBI->connect($dsn, $ra_dbuser, $ra_dbpass);
$dbh = DBI->connect(“DBI:mysql:”.$ra_dbname.”:”.$ra_dbhost,$ra_dbuser,$ra_dbpass);
};
eval{
$dsn = “DBI:mysql:database=”.$ra_dbname.”;host=”.$ra_dbhost.”;port=$port”;
$dsn = “DBI:mysql:”.$ra_dbname.”:”.$ra_dbhost.”:$port”;
#$dbh = DBI->connect($dsn, $ra_dbuser, $ra_dbpass);
$dbh = DBI->connect(“DBI:mysql:”.$ra_dbname.”:”.$ra_dbhost,$ra_dbuser,$ra_dbpass);
};
要するに mysql のドライバーがないということらしい。
カラフルボックスに DBD:mysql をインストールする
カラフルボックス、mixhost では、どうも DBD:mysql は、初期に設定されていないようです。これを cPanel の perl モジュール からインストールする必要があります。
DBD::mysql
DBI
Devel::CheckLib
の3つが入っている状態にします。
見落としがちなカラフルボックスのperlパス宣言
見落としてしまうんですけど、カラフルボックスの場合、cpanel でインストールしたモジュールを使うには、ソースファイルの最初で
#!/usr/bin/perl
use cPanelUserConfig;
を宣言しないといけません。
通常 perl なら
#!/usr/bin/perl
で概ね動いてしまうんですけど、
use cPanelUserConfig;
の一文が必要。
もしくは、
#!/usr/bin/perlml
これって perl モジュールのところに書いてあるんですけど見落としますね?w
mixhostでも perl で mysql にアクセスするには同じ作業で動かすことができます。
mixhost で perl で mysql にアクセスするにはカラフルボックス同様にDBD::mysql
DBI
Devel::CheckLib
の3つを perl モジュール でインストールする必要があります。
さらに mixhost の場合は、perl のパスを
#!/usr/bin/perlml
とします。
perlモジュールをインストールできるサーバーの落とし穴
落とし穴と言うことでもないですけど、サーバーのコントロールパネル にcpanel を使っているサーバーの場合、前述のようにインストールしたモジュールを使用するときには若干の修正が必要になります。エックスサーバーやサクラサーバーのようにちゃんと現実的な運用を踏まえて設定してあるサーバーと違い cpanel を使用するサーバーの多くは、特に perl のモジュールが過不足なくインストールされていることは稀です。
cpanel のサーバーを使う時には気を付けてつかわないと「はまって」しまいますのでお気を付けください。
この情報が、あなたの一助になれば幸いです。
スポンサーリンク