2018/6/15 更新

Apache2インストールとCGI設定

どうも、クラゲです。
世界で最も使われているWebサーバーApache2のインストールと設定方法を説明します。
Webページの表示だけでなく、pythonでCGIを動かせるように設定します。

目次

[TOC]

Apacheインストール

Apache2をインストール

sudo apt-get install apache2

ユーザーディレクトリを有効化
ユーザーディレクトリを有効化すると、アクセスするときにpublic_htmlが不要となる。

sudo a2enmod userdir

CGI設定

CGIを設定する

まずはコマンド入力

sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

nanoで設定ファイル変更

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

28行目の # を削除して上書き保存する(Ctrl + O, Enter, Ctrl + X)
ちなみにnanoで現在のカーソル位置が何行目かは Ctrl + C で確認できる。

変更前

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

変更後

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

拡張子.pyのCGIが動作出来るように設定

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

219行目の #を削除し、最後に .pyを追加して上書き保存

変更前

#AddHandler cgi-script .cgi

変更後

AddHandler cgi-script .cgi .py

CGIを動かすディレクトリの設定

sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf
  • 11行目の /usr/lib/cgi-bin//home/pi/public_html/cgi-bin に変更
  • 12行目の /usr/lib/cgi-bin/home/pi/public_html/cgi-bin に変更
  • 上書き保存

変更前

                ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
                <Directory "/usr/lib/cgi-bin">

変更後

                ScriptAlias /cgi-bin/ /home/pi/public_html/cgi-bin
                <Directory "/home/pi/public_html/cgi-bin">

Apache実行ユーザー変更

sudo nano /etc/apache2/envvars

16行目の www-datapi に変更して上書き保存

変更前

export APACHE_RUN_USER=www-data

変更後

export APACHE_RUN_USER=pi

実行確認

先にApacheを再起動

sudo service apache2 restart

public_html/cgi-bin/フォルダを作る

mkdir public_html
cd public_html
mkdir cgi-bin
cd cgi-bin

上記フォルダにHTMLファイルやpythonファイルを置いてアクセスしてみましょう。
pythonファイルはchmod 755で属性変更を忘れずに。
HTML表示やpython実行が正常通り実行されれば、成功です。

以上、Apache2のインストールとCGI設定でした!