apacheでCGIを動作させる方法 |じょるブログ

じょるブログ

電子工作やプログラミング関連の情報を発信している技術系ブログ

web

apacheでCGIを動作させる方法

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

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

実行環境

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

   

実行手順

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

   

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

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

CAPTCHA


関連記事

ubuntu18.04でwordpressをapache2で動作させるまで

    今までは研究室内の各種引継ぎ情報や機密情報などは研究室専用のWiki(Seesaa Wiki )に記載して共有していたのですが、機密情報を外部サービスに公開するのはあまり良くないと以前から話題 …

GASで簡単にLINE botを作成! – API基本設定からメッセージ取得・送信方法まで解説!

  この記事ではGAS(google app script)とLINE message APIを使って、LINE BOTを作る方法について解説していきます。 今回は、メッセージを送信したら送信したメッ …

LINEで自作IoTデバイス[スマートロック・リモコン]を操作する(市販品も可)

    ラインから手軽にスマートデバイスを操作する方法について解説します。 この記事ではラズパイで自作したスマートデバイスをラインで操作する方法について解説しますが、IFTTT経由で操作できるものであ …

初心者向けREST APIの基礎

この記事では REST API の使い方、使用するのに最低限必要な知識について解説します。    そもそもAPIとは・・ APIとは Application Programming Interface …

簡単!ラズパイでスマホ広告をブロック – youtube広告も削除可能!

    ラズパイでスマホを含む家中の端末に表示されるWEB広告をブロックする方法を紹介します。 動画の最初や途中に表示されるyoutube広告を削除することも可能です! 最近ラズパイを使って何かしたい …




関連記事