Windows版ApacheでCGI(Perl)を使用する方法 ActivePerl
ActivePerlのインストール
実行パスの設定
Perlモジュールのインストール
Windowsには標準ではPerlは入っていないため、ApacheをインストールしてもCGIを使用することはできません。
Windows版でもApacheの設定ファイルhttpd.confにはCGIの設定項目の注意書きなどが書かれていますが、設定してもPerlがないので動きません。(500エラーが出ます)
CGIとPerlの違いは、CGIはプログラムを呼び出す仕組み、Perlはプログラム言語です。
一般的にCGIはPerlを呼び出すことが多いため、同一視されることが多いです。
つまりApacheでCGIの設定をしても、呼び出されるPerlが存在しないのでエラーとなるわけです。
Windows用のPerlをインストールするには、ActivePerlというソフトがあります。
XAMPPとは違い、単体でインストールができるのでApacheなどを別々にインストールした場合に使用できます。
公式サイト
これ以外にもWindowsでPerlを使うにはCygwinを使う、XAMPPを使う、
バーチャルマシン(VMWare)を使うなどの方法があります。
[参考記事]CGI(Perl)をApacheで使用するときの設定
[参考記事]EclipseでCGI(Perl)を使う方法
インストール
インストールが正しくできたかを確認するには、コマンドラインから
perl -v
実行パスの設定
ActivePerlをインストールすると
C:\Perl\bin
に実体ファイルが置かれるので、perlの実行パスは/perl/bin/perlとなります。
つまりCGIの1行目には次のように書く必要があります。
#!/perl/bin/perl
XAMPPの場合はC:\xampp\perl\binにインストールされるので、#!C:\xampp\perl\bin\perl.exeと書きます。
Linuxなどでは /usr/local/bin/perlや/usr/bin/perlなので、CGIの1行目は
#!/usr/local/bin/perl
とか
#!/usr/bin/perl
とか書くので、このままではWindows用にソースの書き換えが必要になります。
こうなってしまうと不便ですし、ミスしてバグが起こったりします。
Linuxと同じパスで実行できるようにするには、C:\Perl以下のファイルすべてをC:\usrとC:\usr\local以下にコピーします。
PerlライブラリなどがあるのでC:\Perl\bin以下ではバグが発生することがあります。
またファイルをコピーしなくてもシンボリックリンクなどを使用する方法もあります。
[参考記事]Windowsでシンボリックリンクを使う方法
Perlモジュールのインストール
モジュールは、LinuxではCPANから入手しますが、WindowsではmakeやCコンパイラがないため、入手しても使えるようにするのは大変です。
そこでActivePerlではコンパイル済みのファイルをリポジトリよりダウンロードするPPM(Perl Package Manager)という機能が備わっています。
ただしCPANより公開は遅いです。
PPMでインストール(GUI)
ActivePerlをインストールすると『すべてのプログラム』の中にPerl Package Managerが追加されます。
インストール可能なものを含めてすべてのパッケージを表示するには『All Packages』をクリックします。
インストールしたいパッケージを右クリックして、Installを選択します。
アイコンが変わり、インストール予約になります。
この時点ではまだインストールされていません。
File → Run Marked Actions をクリックするとインストールが始まります。
Perlモジュールのアンインストール(GUI)
アンインストールしたいパッケージを右クリックして、Removeを選択します。
アイコンが変わり、アンインストール予約になります。
この時点ではまだアンインストールされていません。
File → Run Marked Actions をクリックするとアンインストールが始まります。
Perlモジュールのリポジトリ管理(GUI)
Edit → Preferences をクリックします。
Repositoriesタブでリポジトリ管理ができます。
PPMでインストール(CUI)
コマンドラインから、下のコマンドを叩くだけです。
ppm install パッケージ名
「::」または「-」が含まれるパッケージはどちらでもインストールできますが、
「::」を使った場合、一覧が表示されるだけのパッケージもありますのでハイフンを使ったほうがいいです。
例
C:\>ppm install PadWalker Downloading ActiveState Package Repository packlist...done Updating ActiveState Package Repository database...done Syncing site PPM database with .packlists...done Downloading PadWalker-1.9...done Unpacking PadWalker-1.9...done Generating HTML for PadWalker-1.9...done Updating files in site area...done 6 files installed
PPMでアンインストール
コマンドラインから、下のコマンドを叩くだけです。
ppm remove パッケージ名
PPMのリポジトリの管理(CUI)
ppm repと入力すると、設定されているリポジトリの一覧が表示されます。
C:\>ppm rep レトトトトツトトトトトトトツトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトソ ウ id ウ pkgs ウ name ウ テトトトトナトトトトトトトナトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトエ ウ 1 ウ 11170 ウ ActiveState Package Repository ウ タトトトトチトトトトトトトチトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトル (1 enabled repository)
詳細を見るには、ppm rep describe 【ID】と入力します。
C:\>ppm rep describe 1 Id: 1 Name: ActiveState Package Repository URL: http://ppm4.activestate.com/MSWin32-x86/5.10/1005/package.xml Enabled: yes Last-Status: 200 OK Last-Access: 12 hours ago Refresh-In: 12 hours Last-Modified: 3 days ago
リポジトリを追加するには、ppm rep add "【リポジトリ名】" "【URL】"と入力します。
C:\>ppm rep add "theoryx5" "http://theoryx5.uwinnipeg.ca/ppms/"
ローカルディレクトリをリポジトリに登録する場合も同じです。
URLの代わりにディレクトリのフルパスを記述します。
C:\>ppm rep add "local" "C:\rep"
リポジトリの削除はrep delです。
この後ろにリポジトリの番号か、名前を続けると、そのリポジトリは削除されます。
C:\>ppm rep del 3
リポジトリを無効にするには、C:\>ppm rep off 【ID】と入力します。
C:\>ppm rep off 2
逆にリポジトリを有効にするには、C:\>ppm rep on 【リポジトリ名】と入力します。
C:\>ppm rep on theoryx
リポジトリの一覧で、リポジトリに振られている番号は検索の優先順位です。
優先順位の番号が振られていないものがあれば、そのリポジトリはオフになっています。
リポジトリの優先順位を上げるには、ppm rep up 【ID】と入力します。
C:\>ppm rep up 2
逆にリポジトリの優先順位を下げるには、ppm rep down 【ID】と入力します。
C:\>ppm rep down 2
関連記事
- Windows11でオフラインアカウントを作成する方法(Microsoftアカウントを使わない)
- 「VCRUNTIME140_1.dllが見つからないため、コードの実効を続行できません」の対処法
- WindowsやMacのコマンドライン(CLI)でダブルクリックで高速にChiaをマイニング(Plot:耕作)する方法
- WindowsでソフトウエアRAIDを組む方法(ストライプボリューム ミラーボリューム RAID5)
- WindowsでChia Network(XCH)をHDDマイニングする方法
- SSDの現在のTBWを調べる方法 SSDの残り寿命 (Windows Linux CentOS)
- RAIDの種類
- NTFSのディスクをLinuxにマウントすると読み込み専用でマウントされてしまう
- Windows10で自動更新を停止させる方法(Windows Updateの停止)
- IntelのCore i CPUの接尾辞(末尾のアルファベット)まとめ
- Linux・WindowsでMTUを変更する方法(ジャンボフレーム)
- Logitec HDDケース(HDD4台用) ガチャベイ LHR-4BNHEU3 LGB-4BNHEU3
- NTFSフォーマットのストレージの読み書きが異常に遅い場合
- 各ストレージの速度一覧 規格速度や実効速度(HDD/SSD/M2/NVMe/USBメモリ)
- GoogleChromeでSSL接続を強制される設定(HSTS)のキャッシュを消す方法
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- 10GbEのLANカードで、速度が遅いときの設定方法(ジャンボフレーム・ジャンボパケット)
- Windows10でデバイスマネージャーを開く方法
- php.ini が見つからない時
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- MBR形式で設定されたHDDパーティションをGPT形式に変更する方法(2TB以上のHDDを認識させる方法)
- LinuxサーバでWindowsのファイルシステムNTFSを読み込む方法
- 環境変数(PATH)を設定する方法
- Apacheをコマンドプロンプトから起動・停止・再起動する方法
- Apacheから2GB以上のファイルをダウンロードしようとすると403エラーが出ます
- 1枚のNIC(ネットワークカード)に複数のIPアドレスを設定する方法(Windows)
- PEARを更新する方法
- WindowsのPCをルータにする方法(DHCP接続)
- memcachedのインストール
- Rubyのインストール
- PostgreSQLのインストール
- Windows版PHPにPEAR・PECLをインストールする
- 他のパソコンからもApacheなどを閲覧できるようにする方法
- WindowsXP、Windows2000のジャンクション機能は危険
- Windowsでシンボリックリンクを使う方法
- JDKの常駐ソフトjusched.exeを停止する方法
- ほかのアプリケーションにポートを使用されてApacheが起動できない
- DNSの設定を端末で独自に設定するには
- Windows版PHPのインストール
- Windows Apacheのインストール
- Windows MySQLインストール後の設定
- Windows MySQLのインストール
スポンサーリンク