QNAP NASのWebサーバの設定/Perlのcgiを使えるようにする方法
ここではQNAP NASでWebサーバを設定し、Perlのcgiを使えるようにする方法を紹介します。なお、QNAP NASの使い方全般についてはQNAP NASの使い方をご覧ください。
QNAP NASの使い方
-
QNAP実践活用ガイドブック~クラウド時代のネットワークストレージ活用術
技術評論社 2017/10/20 2160円
海外で定番のNAS「QNAP」の基本から応用までを1冊に!クラウドの浸透により,情報システムの世界が大きく変わりました。ネットワークストレージもその1つです。今では多くの企業がクラウドを活用したITビジネス戦略を採用しています。一方で,企業内システムではクラウドだけで情報を扱えるとは限りません。本書は,クラウド時代に最適なネットワークストレージ活用を目的に,企業内ストレージシステムを対象としたシステム構築・運用について解説します。扱う製品は,欧米での人気を誇り,ここ日本でも数年前からシェアを伸ばしている台湾メーカQNAPの製品群です。目的別・規模別による解説のほか,実際の製品を利用した構築・運用事例まで徹底的に解説します。
Webサーバ機能の有効化
「Webサーバーを有効にする」にチェックを入れ「適用」をクリックするだけで設定完了です。 あとは、QNAPの「Web」フォルダにサブフォルダを作ってHTMLファイルを格納し、ブラウザを起動してアドレスバーに 「http://[QNAPのIPアドレス]/[サブフォルダ名]/」 を入力すると、表示できます。
Perlのインストール
perl -v
と入力すると、このように表示されます。インストールしたPerlのバージョンが確認できます。
なお、Perlのインストールパスは
/opt/bin/perl
です。
(正確には
/share/CACHEDEV1_DATA/.qpkg/Perl/perl
からシンボリックリンクが張られています。)
QNAPにTelnet/SSH接続でパソコンからリモート遠隔操作する方法 コンソールでコマンド実行
/usr/local/bin/perl
です。
このパス指定で起動できるよう、次のコマンドでシンボリックリンクを張っておきます。
ln -s /opt/bin/perl /usr/local/bin/perl
/usr/local/bin/perl/perl -v
と入力してエラーとならずにPerlのバージョンが表示されればOKです。
Apacheの設定/cgi格納フォルダの指定
/usr/local/apache/bin/apachectl -v
と入力するとバージョンが表示されます。
ネット上でApacheの情報を検索するとき、間違ったバージョンの情報を参考にしないようにしましょう。
/usr/local/apache/conf/apache.conf
です。
以下のApache公式サイトの情報をもとに設定していきます。
Apache Tutorial: Dynamic Content with CGI(Apache)
Apache Tutorial: CGI による動的コンテンツ(Apache)
どこに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として扱われます。
Configuration Files(Apache)
設定ファイル(Apache)
apache.confの修正が完了したら、文法チェックを行います。
/usr/local/apache/bin/apachectl configtest
と入力し、エラーがないことを確認します。
修正したapache.confを有効にするため、Apacheの再起動を行います。
/usr/local/apache/bin/apachectl restart
と入力します。
ネットから入手したQNAP用アプリをインストールする方法
また、QNAPではパッケージ管理システムとして“Entware-ng”が使えます。 これは過去に使われていたパッケージ管理システム“Optware”の後継システムとして開発されたもので、すでに1800を超えるパッケージが登録されています。 QNAPに手動でEntware-ngをインストールし、
opkg update
、
opkg install perl
とすると、Entware-ngに登録されているPerlパッケージがQNAPにインストールされます。
なお、Entware-ngに登録されているパッケージを探すには
opkg list [パッケージ名]
とします。
How to install QNAP applications (.qpkg files) manually?(QNAPサポート)
AppCenter(QNAP)
Entware-ngのオフィシャルサイト(github)
Entware-ngをQNAPにインストールする方法(github)