みなさん、こんにちは
Macにデフォルトで入っているApacheを使ってpython CGIを呼び出してみたいと思います
まずは、defaultのApacheの場所を確認します
$ which httpd
/usr/sbin/httpd
$ which apachectl
/usr/sbin/apachectl
Apacheを起動します(停止はstop、再起動restartもあるよ)
$ sudo /usr/sbin/apachectl start
Apacheの設定ファイルhttpd.confの場所は
/etc/apache2/httpd.conf っすね
httpd.confに書いてある、コンテンツを格納するDocumentRootをみてみます
$ sudo vi /etc/apache2/httpd.conf
どうも/Library/WebServer/Documentsにコンテンツは格納するみたいですね
httpd.conf
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Library/WebServer/Documents"
引き続き、httpd.confの中で、CGIの設定をしていきます
[From]
httpd.conf
165 #LoadModule cgi_module libexec/apache2/mod_cgi.so↲
174 #LoadModule userdir_module libexec/apache2/mod_userdir.so↲
176 #LoadModule rewrite_module libexec/apache2/mod_rewrite.so↲
259 Options FollowSymLinks Multiviews↲
437 #AddHandler cgi-script .cgi↲
[To]
httpd.conf
165 LoadModule cgi_module libexec/apache2/mod_cgi.so↲
174 LoadModule userdir_module libexec/apache2/mod_userdir.so
176 LoadModule rewrite_module libexec/apache2/mod_rewrite.so
259 Options FollowSymLinks Multiviews ExecCGI
437 AddHandler cgi-script .cgi .py↲
これで設定は完了
念の為、Apache再起動
$ sudo apachectl restart
あ、pyファイル作る忘れたネ、作るネ
$ sudo vi /Library/WebServer/Documents/hello.py
hello.py
#!/usr/bin/python
print ("Content-type:text/html\r\n\r\n")
print ('<html>')
print ('<head>')
print ('<title>Hello Word - First CGI Program</title>')
print ('</head>')
print ('<body>')
print ('<h2>Good morning! This is my first python CGI</h2>')
print ('</body>')
print ('</html>')
よーし、ブラウザでlocalhost/hello.py呼びましょう
きた!
お疲れ様でした