UbuntuのApache2は、デフォルトでは各ユーザディレクトリ下のpublic_htmlを公開できるようになっていません。
$ curl http://localhost/~<ユーザ>/ 2>&1 | grep title <title>404 Not Found</title> $
設定
Apache2のモジュールは、a2enmodで有効にできます。
ユーザディレクトリの公開は、userdirモジュールを有効にすることで使えるようになります。
$ sudo a2enmod userdir Enabling module userdir. To activate the new configuration, you need to run: service apache2 restart $ sudo service apache2 restart * Restarting web server apache2 ... waiting ...done. $ curl http://localhost/~<ユーザ>/ 2>&1 | grep title <title>Index of /~<ユーザ></title> $
CGIを有効にする
ファイルの拡張子でCGIを有効にするには、設定ファイルを追加してApacheを再起動する必要があります。
AddHandlerで拡張子を指定し、どのディレクトリでCGIを有効にするか
$ cat /etc/apache2/conf.d/cgi.conf AddHandler cgi-script .cgi <Directory /home/*/public_html/cgi> Options ExecCGI <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> </Directory> $ sudo vi /etc/apache2/conf.d/cgi.conf $ sudo service apache2 restart * Restarting web server apache2 ... waiting [ OK ] $
これで、$HOME/public_html/cgiに格納されている.cgiファイルをCGIとして実行できるようになります。
$ ~/public_html/cgi/test.cgi Content-type: text/plain Hello, World! 2012年 5月 13日 日曜日 15:47:35 JST $ curl http://localhost/~<ユーザ>/cgi/test.cgi Hello, World! Sun May 13 15:47:22 JST 2012 $ *1336923342*[Twitter]2012年05月13日のツイート ><div class="twitter-tweet-wrapper"> [twitter:201447225698693121:tweet] [twitter:201349161377996801:tweet]