WindowsServer2016のIISでPerl
さて、今回はWindows Server 2016にIISの機能追加をして、PerlのCGIを動かすための備忘録です。
リクエストがいくつかあったので、今回はIISにPerlCGIを設定する方法も合わせて紹介します。
管理画面
Windows Server 2016(以降2016)は、Windows 10ベースのサーバ向け製品であり、サーバーマネージャーはWindows Server 2012 R2とほぼ一緒です。
IISのバージョンは10.0となっています。
早速IISからインストールしてみます。
IISのインストール
サーバマネージャーから機能を追加します。
「役割と機能の追加」を選択する。
お約束の画面が表示されるので、適当にスルー、じゃない読んで次へ。
インストールの種類を選択
「役割ベースまたは機能ベースのインストール」を選択し、次へ。
サーバーの選択
「サーバープール」にインストールするPC名とIPアドレスが表示されているので、確認後、次へ。
サーバーの役割の選択
「Web サーバー(IIS)」にチェックを入れて次へ。
Web サーバの役割 (IIS)
この画面は、適当に読んで次へ。
役割サービスの選択
今回はPerlスクリプトCGIを動かしたいので、「アプリケーション開発」の中の「CGI」を選択して次へ。
インストール オプションの確認
内容を確認して、問題なければインストール!
後から変更も削除も追加もできるので、そんなに迷う必要はないですよ^^
インストール中
そんなに時間はかからないので、適当に他のことでもしながら待ちましょう。
インストール完了
この表示が出れば正常終了です。
普通の環境ならここでエラーはまず出ないと思われます。
IIS動作確認
すでにサーバは起動しているので、ブラウザでこんな画面が出れば、IISはとりあえず正常に動作しています。
CGIが動くかの確認はPerlインストールして行います。
ここまでで、IISにCGIの機能を追加してインストールが完了しました。
次はPerlをインストールします。
ActivePerlのインストール
今回インストールするのは、ActiveState社のディストリビューションである、ActivePerlです。
パッケージはセキュリティやバグなどの考えて、その時点の正式リリースを選ぶと良いと思います。
インストーラー内蔵で難しいことはないですが、とりあえず画面付きでご紹介。
ダウンロードしたexeを起動するとこんな画面が出ます。
間違えなければ「Next」を選択。
規約に同意できるなら、「Agreement」を選択して次へ。
好きなパッケージを選んでください。
PerlCGIを動かしたいだけなら、標準の「Typical」で十分です。
インストール構成や、パスなど変えたい方はCustomを選ぶと良いでしょう。
モジュールはデフォルトではc:/Perl64にインストールされます。
CGIで動かすだけなら、どちらも不要ですが、コマンドラインなどで実行させることもあると思うので、そのまま次へすすみましょう。
ちなみに、選択したオプションの意味は
・Add Perl to the PATH environment variable
Perl.exeの実行パスをシステムの環境変数PATHに追加します。コマンドラインからPerlとして、実行可能となります。
・Create Perl file extension association
拡張子「.pl」を、Perl.exeに関連付けします。スクリプトダブルクリックすると実行できるようになります。
「Install」を選択すれば、インストールが開始されます。
インストール中
選択したオプションにもよりますが、そんなに長くはかかりません。
この画面が表示されれば、無事にインストール完了です。
英語に堪能な方は興味があれば、readme fileも見てみましょう^^;
以上でPerlのインストールは完了です。
動作確認はCGIの設定の時に行うので、ここでは割愛。
IISでPerlスクリプトをCGIとして設定
ここから前回の時には説明をしなかった、IISにPerlスクリプトをCGIとして動かすための設定となります。
IISではWindows同様拡張子に関連付けて、ファイルをCGIとして認識させます。
では、順番に設定していきましょう。
サーバーマネージャーからIISマネージャーを選択します。
画面上の「ツール」のメニューの中にあります。
IISマネージャーを起動したところ。
ぼかしてあるところに、IISの機能を追加したサーバ名が表示されていますので、それを選択。
右のペインにある「操作」メニューから、「スクリプトマップの追加」を選択します。
・要求パス
関連付けるファイルの拡張子を含む形で指定します。
今回はPerlスクリプトを.cgiという拡張子で作成し、動作させます。.plに関連付けてもいいですが、Webで公開した際に「あ、これPerlか」とわかってしまうことで、セキュリティホールを見つけやすくなるかと思い、スクリプトがどんな言語で動いているかわからないような一般的な名前としてあります。
・実行可能ファイル
Perl.exeをフルパスで記入し、渡されるパラメータについて記述します。後ろの「”%s” %s」はおまじないのようなものと思って、このまま書いてもらえれば動きます^^;
インストール時にパスなど変更された方は、合わせて変更して下さい。
・名前
コメントです。外部には公開されませんので、お好きな名前を。
要求の制限については、デフォルト設定で特に問題はないと思います。
こんな感じとなっています。
設定など問題なければ、「OK」を選択すれば、確認ダイアログが表示されます。
そのまま「はい」を選択します。
動作確認
簡単なPerlスクリプトを用意します。
1 2 3 4 5 6 |
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello Perl on IIS\n"; exit 0; |
IIS(というかWindows)の場合、先頭行は拡張子のマッピングに従って動くため、あまり気にする必要はないです。
動作確認のため、用意したスクリプトをトップページにコピー。
デフォルト設定としてあれば、ここがトップページになります。
ブラウザを起動して、コピーしたスクリプトを指定して実行。
設定間違っていなければ、こんな感じで表示されます。
コメントを残す