MacのApacheでPythonをCGIとして実行する方法
Macには標準でApacheとPythonがインストールされているため、すぐにPythonを使ったプログラム開発ができるようになっています。PythonのプログラムをApacheで動かすことが簡単にできて、とても便利です。ここでは、Macを使ってApache上でPythonをCGIとして実行する方法をご紹介します。
環境
今回の動作確認に用いた環境は以下の通りです。
・Macbook Pro Late 2016
・MacOS X High Sierra(10.13)
・Apache 2.4.27
・Python 2.7.10
・MacOS X High Sierra(10.13)
・Apache 2.4.27
・Python 2.7.10
Macbook Proに標準でインストールされているものをそのまま使いました。 何もインストールしていません。Macの便利なところですね。何も考えずに開発環境が準備できるのが良いところです。
Apacheのhttpd.confの編集
Macbook Proを使えば何もインストールしなくてもそのまま使えるのですが、PythonをApacheで動かそうと思うと設定を少しいじらないといけません。
そのためにhttpd.confを一部修正していきます。
(1)まず、viコマンドでhttpd.confを開きます。
httpd.confは/etc/apache2の直下にあります。管理者権限でないと編集できないので、sudoコマンドをつけます。
sudo vi /etc/apache2/httpd.conf
(2)LoadModule cgi_module libexec/apache2/mod_cgi.soのコメントアウトを外します。
#LoadModule cgi_module libexec/apache2/mod_cgi.so
↓
LoadModule cgi_module libexec/apache2/mod_cgi.so
↓
LoadModule cgi_module libexec/apache2/mod_cgi.so
(3)AddHandlerのコメントアウトを外し、.pyを追加します。
これによって、「.py」の拡張子のままPythonプログラムをCGIとして動かすことができます。
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .py
↓
AddHandler cgi-script .cgi .py
以上で設定は完了です。
Apacheの起動
httpd.confの修正が完了したら、Apacheを起動しましょう。
httpd.confが正しく修正されていれば正常に起動できます。
sudo /usr/sbin/apachectl start
参考までに、停止と再起動のコマンドもご紹介します。
停止:sudo /usr/sbin/apachectl stop
再起動:sudo /usr/sbin/apachectl restart
再起動:sudo /usr/sbin/apachectl restart
ブラウザを立ち上げて、URL欄に以下を入力します。
http://127.0.0.1/
It works!と表示されればOKです。 Apacheが正常に起動できました。
プログラムの配置
Apacheにプログラムを認識させるためには、以下の場所にプログラムを置きます。
コンテンツ(HTML、画像、cssなど): /Library/WebServer/Documents
Pythonのプログラム(CGI): /Library/WebServer/CGI-Executables
Pythonのプログラム(CGI): /Library/WebServer/CGI-Executables
デフォルトでは上記の場所に置くことによって、Apacheでプログラムを動かすことができます。 httpd.confを編集すれば、上記の場所以外でも動作させることができますが、ここでは省略させていただきます。
以下のように、簡単なpythonプログラムを作って動作するかどうか確認してみます。
#!/usr/bin/python
print 'Content-Type: text/html\n\n'
print "Hello world!"
print 'Content-Type: text/html\n\n'
print "Hello world!"
test.pyという名前にして、/Library/WebServer/CGI-Executablesに保存します。
プログラムが実行できるようにパーミッションを変更します。
sudo chmod 755 など
プログラムの実行と表示
プログラムの配置が完了すれば、あとはブラウザを立ち上げて、URL欄に以下を入力します。
http://127.0.0.1/cgi-bin/test.py
HelloWorldと表示されればOKです。
ログの保存場所
Apacheのログは以下の場所にあります。プログラムがうまく動かない場合などに参照してみてください。
/private/var/log/apache2/error_log
/private/var/log/apache2/access_log
/private/var/log/apache2/access_log
ツイート |
関連記事
1.Pythonが使えるレンタルサーバー バージョンと速度の比較
2.レンタルサーバー各社でのPythonの実行方法まとめ
3.Macインストーラーの作成方法
4.pkgbuildコマンドによるスクリプト実行方法とパラメーター
▲ このページの上部へ戻る