# /etc/init.d/apache2 restart
# a2enmod userdir
# vi /etc/apache2/mods-available/mime.conf # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # AddHandler cgi-script .cgi .pl # ←コメントアウトを外して有効にする
# vi /etc/apache2/sites-available/default ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
# vi /etc/apache2/mods-available/userdir.conf <IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> # ← 各ユーザの ${HOME}/public_html が公開ディレクトリになる AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> # ↓以下3行を追記する <Directory /home/*/public_html/cgi-bin> Options +ExecCGI </Directory> </IfModule>
[Sun May 05 15:01:07 2013] [error] [client 127.0.0.1] Can't open perl script "/home/hoge/public_html/hello.cgi": Permission denied