はてなブックマーク
X
Bluesky
Facebook
Pocket

コアサーバーV2プランでAddHandler cgi-scriptを設定するには

更新:

たいていのレンタルサーバーでは、拡張子が .cgi のファイルはデフォルトでCGIとして動作するようになっている。 Python(.py)、Ruby(.rb)、Perl(.pl)などの拡張子のままCGIとして動作させる場合、通常は .htaccess に以下のように書く。

Options +ExecCGI -Indexes
AddHandler cgi-script .pl .rb .py

しかし、いろいろ試したが、コアサーバーV2プランでは設定が反映させなかった。

コアサーバーV2を使っている人はご存じかもしれないが、コントロールパネルにて新しいドメインを追加すると、サーバーの対象ドメインの直下に cgi-bin というディレクトリが自動的に作成される。 このディレクトリにはデフォルトで .htaccess が設置されており、上記の AddHandler が有効となっている。 今時 cgi-bin 以下でしかCGIが使えないのかと思ったが、拡張子が.cgiなら他のディレクトリでも動作する。

では、AddHandlerが無効となっている cgi-bin 以外のディレクトリで.pyや.rbなどの拡張子のCGIを動作させることはできないのか?

もしかするとコントロールパネルに .htaccess 関連の設定があるのではと思い探したところ発見した。 設定手順は以下の通り。

  1. コントロールパネルの「ウェブ」→「Apache ハンドラ」と進む。
  2. 設定したいドメインをプルダウンから選択する。
  3. 「ハンドラを作成」をクリックする。 なお、「システムApacheハンドラ」をクリックするとデフォルト設定が表示される。
  4. 表示されたウィンドウにて、名前に「cgi-script」、拡張に「.py」を入力し、「作成」ボタンをクリックする。 これはPython(.py)をCGIで動かす場合の例であり、自分が追加したいハンドラに合わせて記述する。

一度に追加できる拡張子は一つで、別の拡張子も追加したい場合は再度同じ作業を行う。

コントロールパネルには追加したハンドラの一覧が表示されるが、上手く表示されない場合は、「幅:」の横にあるリロードボタン🔄をクリックしてみると良い。

なぜこのような仕様なのか分からないが、このせいでハマり、無駄な時間を過ごしてしまった。 コアサーバー公式のヘルプには特に説明がなく、同じようにハマる人がいるかもしれないので、ここに記しておく。 これは2022年3月時点の仕様であり、今後仕様が変更される可能性もある。


はてなブックマーク
X
Bluesky
Facebook
Pocket