エックスサーバーのレンタルサーバーで遊ぶ その4 Perlモジュールを追加する(CPAN)

レンタルサーバーの導入と設定
スポンサーリンク

前回はエックスサーバーのレンタルサーバーにWP-CLIというツールを導入して、WordPressをコマンドラインで操作する方法を紹介しました。

今回もエックスサーバーののコマンドライン(シェル)を活用するためにPerlのモジュールを追加してみたいと思います。

なおmixhostのコマンドラインを使うためにはSSHでレンタルサーバに接続する方法があります。SSHでの接続方法については下記を参照してみてください。

スポンサーリンク

エックスサーバーのPerl環境

エックスサーバーではCGI用にPerlが実行できるようになっています。しかし、しかしこのPerlはCGIに関係なく普通にコマンドラインで利用することができます。

$ which perl
/usr/local/bin/perl

Perlは「/usr/bin/perl」に入っており、/usr/local/bin/perlは/usr/bin/perlへのシンボリックリンクになっています。

環境変数PATHでは、/usr/local/binの方が先に設定されているので、whichコマンドで/usr/local/bin/perlが表示されます。

バージョンを確認してみるとv5.16.3であることがわかります。

$ perl --version

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 44 registered patches, see perl -V for more detail)

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

利用可能なPerlモジュールはサーバーパネルの「サーバー情報」で表示されます。

利用可能なPerlモジュール

ImageMagikやDateTime等の基本的かつ便利なモジュールは入っていますが、あまり多くは入っていないようです。

スポンサーリンク

必要なモジュールの確認

モジュールがインストールされているかどうかというのは、perlを実行することで確認可能です。

$ perl -e 'use モジュール名;'

このコマンドを実行して何も表示されなければ(=エラーがなければ)そのモジュールはインストールされていることになります。

私はエックスサーバーに移転する前のmixhostで、自前のperlスクリプトを動かして、ExcelファイルからHTMLファイルをしていました。

この手のスクリプトはPythonで作った方が良かった気もしますが・・・

この自前スクリプトをエックスサーバーでも利用したいと思っています。

そこで、この自前スクリプトで使用しているモジュールとエックスサーバーでのインストール状況を調べると次のようになっていました。

モジュール名 インストール状況
DateTime
DateTime::Format::Strptime
Digest::MD5
Encode
File::Path
Image::Magick
Image::Size
LWP::Simple
LWP::UserAgent
Spreadsheet::ParseExcel

自前スクリプトを実行するには「未」となっているモジュールをインストールする必要があります。

もっと不足しているモジュールが多いかと思いましたが、意外と使えるモジュールは入っているようです。

CPANを使ったモジュールのインストール

mixhostの場合はCPanelということロールパネルで、Perlモジュールをインストールすることができました。

mixhostのレンタルサーバーで遊ぶ その9: Perlモジュールを追加する
今回はmixhostのレンタルサーバーでPerlモジュールを追加する方法を紹介します。mixhostで自作のPerlスクリプトを実行する場合は、デフォルトで導入されているモジュールでは不足するケースもあると思います。CPanelを使えばモジュールは追加可能なので、自作のPerlスクリプトが動かない場合は試してみましょう

しかしエックスサーバーにはそのような機能が用意されていません。つまり自力でPerlモジュールを追加する必要があります。

そこで利用するのが「CPAN」というシステム(ツール)です。

CPAN - Wikipedia

CPANを使うと、Perlモジュールのダウンロードとインストールを自動化することができます。特にモジュール間の依存関係を考慮して必要なモジュールも芋づる式にインストールしてくれるのが便利です。

さて、そのCPANをエックスサーバーで使えるかどうかですが・・・

which cpan
/usr/bin/cpan

使えるようです。

早速cpanコマンドを実行してみます。初回は設定が設定が行われます。

$ cpan

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes] ★

 <install_help>

Warning: You do not have write permission for Perl library directories.

To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib] ★

Autoconfigured everything but 'urllist'.

Now you need to choose your CPAN mirror sites.  You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.
・・・
(時間がかかるが放置)

「★」の部分が入力する必要がある部分です。基本的にEnterを押していけばOKです。

しばらく待つと「cpam」というプロンプトが表示されます。あとはinstallにつづけてインストールしたいモジュール名を入力すればOKです。

cpan[1]> install Image::Size
cpan[1]> install Spreadsheet::ParseExcel

これでperl5ディレクトリに必要ファイルがインストールされます。

ちゃんと使えるかどうかは「.bashrc」を再読込してから、perlを実行してみます。

$ source ~/.bashrc 
$ perl -e 'use Image::Size;'
$ perl -e 'use Spreadsheet::ParseExcel;'

エラーが出なければモジュールのインストールはOKです。

Perlスクリプトの実行

必要なモジュールをインストールしたら、実行したいPerlスクリプトをエックスサーバーに転送して実行してみましょう。

ファイルを転送した後は実行ビットをつけるのを忘れないようにしましょう。

$ chmod +x 実行したいperlスクリプト

これで自作のPerlスクリプトが動作するはずです。

なおmixhostで動作していたPerlスクリプトの場合は、先頭行が「#!/usr/bin/perlml」となっている場合があります。

このインタープリタ指定ではエックスサーバーでは動きませんので「#!/usr/bin/perl」に変更しておきましょう。

まとめ

今回はエックスサーバーのレンタルサーバーでPerlモジュールを追加する方法を紹介しました。

エックスサーバーで自作のPerlスクリプトを実行する場合は、デフォルトで導入されているモジュールでは不足するケースもあると思います。エックスサーバーではデフォルトでCPANが利用可能なので、自作のPerlスクリプトが利用しやすいのではないかと思います。

次回はエックスサーバーにエディタのemacsを導入してみます。

コメント

タイトルとURLをコピーしました