cpanel サーバーでPerlでMySQLにアクセスできないときの対策

カラフルボックスなど 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);
};

要するに 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 のサーバーを使う時には気を付けてつかわないと「はまって」しまいますのでお気を付けください。

この情報が、あなたの一助になれば幸いです。

スポンサーリンク