apacheでCGIを動作させる方法

じょるブログ

現役理系大学生による大学生に向けた情報サイト

web

apacheでCGIを動作させる方法

投稿日:2019年2月8日 更新日:

apacheがインストールされているサーバーでcgiファイルを実行しようとしたところ、ファイルの内容が表示されるだけで実行されなかった。デフォルトではこのようにcgiファイルは実行できないとのことなので、この記事ではcgiファイルが実行できるように、apacheの設定方法を備忘録として記載します。

実行環境

  • サーバー:IIJ
  • OS: Linux
  • Webサーバソフトウェア : apache2

1. CGIファイルの作成

まず、実行したいcgiファイルを作成します。ここでは、例としてHello worldを表示させるhello.cgiというファイルを作成します。

例: hello.cgi

#!/usr/bin/python
# -*- coding: utf-8 -*-

print "Content-type: text/html"
print
print "<html>"
print "Hello,World!"
print "</html>"

上記のファイルをドキュメントルートのフォルダーに設置して、権限を付与します。

# chmod 755 ./hello.cgi

2. apache2の設定

cgiモジュールを使用可能にするための設定

以下のコマンドを実行します。

# cd /etc/apache2/mods-enabled
# sudo ln -s ../mods-available/cgi.load .
# ls -l | grep cgi
# service apache2 restart

次に、

# nano /etc/apache2/sites-available/000-default.conf

を実行し、以下のコメントアウトされている行をコメント解除します。

Include conf-available/serve-cgi-bin.conf

 

続いて、

sudo nano /etc/apache2/mods-available/mime.conf

上記のコマンドを実行し、以下のコメントアウトされている行をコメント解除 し、CGIファイルと認識させる拡張子名を入力(以下の場合、.cgiと.pyをCGIファイルとして認識)

AddHandler cgi-script .cgi .py

 

次に以下を実行

nano  /etc/apache2/conf-available/serve-cgi-bin.conf 

以下のように、
ScriptAliasのところをCGIファイルがあるパスに変更
<Directory “******”>のところを CGIファイルがあるパスに変更
(ここではCGIファイルを置くディレクトリ名を CGI_derとしています。)

<IfDefine ENABLE_USR_LIB_CGI_BIN>
         ScriptAlias /CGI_der/ /PATH/TO/CGI_der/  
         <Directory "/PATH/TO/CGI_der">
                  AllowOverride None
                  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                  Require all granted
         </Directory
</IfDefine>

  

次に以下を実行

nano /etc/apache2/sites-available/CGI_der

実行したら

Options Indexes FollowSymLinks

となっているところを以下のように変更

Options Indexes FollowSymLinks ExecCGI

最後に再起動

sudo service apache2 restart

 

これで、cgiファイルが実行できるようになっています。

google ads




google ads




-web

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

google仕事検索(Googe for job)に求人情報を載せる方法 – indexing APIの設定についても解説

  google仕事検索に求人情報を載せるまでの流れ 求人情報の構造化データをウェブページに追加 作成した構造化データが正しいかどうかテスト Googleに情報提供      1. 求人情報の構造化デ …