• 記事をシェア
  •  
  •  
  •  
  • B! 
  •  

QNAP NASのWebサーバの設定:Perlのcgiを使えるようにする

ここではQNAP NASでWebサーバを設定し、Perlのcgiを使えるようにする方法を紹介します。
なお、QNAP NASの使い方全般についてはQNAP NASの使い方をご覧ください。
  • QNAP実践活用ガイドブック~クラウド時代のネットワークストレージ活用術

    技術評論社 2017/10/20 2160円

    海外で定番のNAS「QNAP」の基本から応用までを1冊に!クラウドの浸透により,情報システムの世界が大きく変わりました。ネットワークストレージもその1つです。今では多くの企業がクラウドを活用したITビジネス戦略を採用しています。一方で,企業内システムではクラウドだけで情報を扱えるとは限りません。本書は,クラウド時代に最適なネットワークストレージ活用を目的に,企業内ストレージシステムを対象としたシステム構築・運用について解説します。扱う製品は,欧米での人気を誇り,ここ日本でも数年前からシェアを伸ばしている台湾メーカQNAPの製品群です。目的別・規模別による解説のほか,実際の製品を利用した構築・運用事例まで徹底的に解説します。

    Amazon.co.jpで買う

Webサーバ機能の有効化

PC ブラウザのQTSの画面で「コントロール・パネル」アイコンをクリックし、 [アプリケーション]-[Webサーバー]画面を開くと、 Webサーバの各機能が設定できます。
「Webサーバーを有効にする」にチェックを入れ「適用」をクリックするだけで設定完了です。 あとは、QNAPの「Web」フォルダにサブフォルダを作ってHTMLファイルを格納し、ブラウザを起動してアドレスバーに 「http://[QNAPのIPアドレス]/[サブフォルダ名]/」 を入力すると、表示できます。

Perlのインストール

PC PerlはAppCenterからインストール可能です。 ブラウザのQTSの画面で「AppCenter」アイコンをクリックし、「開発者ツール」を選ぶとこのような画面になります。 Perlのアイコンの下の「インストール」をクリックすればインストールされます。 2018年7月の提供バージョンは5.26.1です。
PC インストール完了後、QNAPにSSHターミナル接続し、 perl -v と入力すると、このように表示されます。インストールしたPerlのバージョンが確認できます。 なお、Perlのインストールパスは /opt/bin/perl です。 (正確には /share/CACHEDEV1_DATA/.qpkg/Perl/perl からシンボリックリンクが張られています。)
一般的なWebサーバーのPerlインストールパスは /usr/local/bin/perl です。 このパス指定で起動できるよう、次のコマンドでシンボリックリンクを張っておきます。
ln -s /opt/bin/perl /usr/local/bin/perl
/usr/local/bin/perl/perl -v と入力してエラーとならずにPerlのバージョンが表示されればOKです。

Apacheの設定/cgi格納フォルダの指定

QNAPにインストールされているApacheのバージョンを確認します。
/usr/local/apache/bin/apachectl -v
と入力するとバージョンが表示されます。 ネット上でApacheの情報を検索するとき、間違ったバージョンの情報を参考にしないようにしましょう。
HTTPプロトコルでPerlのcgiが使えるようにするには、QNAPのApache(httpd)設定ファイルを変更します。 設定ファイルは /usr/local/apache/conf/apache.conf です。 以下のApache公式サイトの情報をもとに設定していきます。
/usr/local/apache/cgi-bin/を使う場合
どこにcgiプログラムを格納するかを考えます。 初期値として /usr/local/apache/cgi-bin/ が準備されています。 ここを使うのであれば、apache.confに次の一行を追加します。
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
この場合、“http://[QNAP NASのIPアドレス]/cgi-bin/abcd.cgi”というパスでアクセスされると、“/usr/local/apache/cgi-bin/abcd.cgi”が実行されます。
任意のフォルダを使う場合
任意のフォルダにcgiを置くには、対象の“Directory”節の中の“Options”ディレクティブに“+ExecCGI”を付加します。
<Directory "share/web">
	Options +ExecCGI
</Directory>
この例では“share/web”の中に置いたcgiファイルを実行することが可能になります。 QNAPのapache.confには、既に「<Directory "share/web">」節の記述があるので、この中にすでにある“Options”ディレクティブの最後に“+ExecCGI”を付加します。 このようになります(QNAPにインストールされているApacheのバージョンによって内容が異なる可能性があります)。
<Directory "/share/Web">
        Options FollowSymLinks MultiViews +ExecCGI
        AllowOverride All
        #Order allow,deny
        Require all granted
</Directory>
また、任意のフォルダにcgiを置く場合は、cgiとして扱うファイルの拡張子を指定してやります。
AddHandler cgi-script .cgi .pl
の1行をapache.confに追加します。 この例では、“http://[QNAP NASのIPアドレス]”(=“/share/Web”)以下の任意のフォルダに格納された“.cgi”、“.pl”拡張子を持ったファイルがcgiとして扱われます。
設定ファイルの文法チェック
apache.confの修正が完了したら、文法チェックを行います。
/usr/local/apache/bin/apachectl configtest
と入力し、エラーがないことを確認します。
Apacheの再起動
修正したapache.confを有効にするため、Apacheの再起動を行います。
/usr/local/apache/bin/apachectl restart
と入力します。
以上で指定したフォルダに格納されたcgiが動作します。 もちろんcgiファイルには実行属性“rwxr-xr-x”を付ける必要があります。

ネットから入手したQNAP用アプリをインストールする方法

AppCenterにないアプリケーションや、AppCenterでは古いバージョンしか提供されていない場合は、 ネットからQNAP用のパッケージ(".qpkg"形式)のアプリを入手して、手動でインストールすることも可能です。 手順については QNAPサポートのページ をご覧ください。
また、QNAPではパッケージ管理システムとして“Entware-ng”が使えます。 これは過去に使われていたパッケージ管理システム“Optware”の後継システムとして開発されたもので、すでに1800を超えるパッケージが登録されています。 QNAPに手動でEntware-ngをインストールし、 opkg updateopkg install perl とすると、Entware-ngに登録されているPerlパッケージがQNAPにインストールされます。 なお、Entware-ngに登録されているパッケージを探すには opkg list [パッケージ名] とします。