3
2

More than 5 years have passed since last update.

MacデフォのApacheでpython CGIを呼ぶ

Posted at

みなさん、こんにちは
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呼びましょう
Hello_Word_-_First_CGI_Program.png

きた!
お疲れ様でした

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2