あたらしものずきっ!

試してみたものとか、遊んでみたものを色々記してみます。

macportsのapache2でユーザディレクトリからの実行を有効にする

ブラウザからの出力確認をしていなかったため気がついていなかったけど、パスが違っていたらしい。Internal Server Errorになる原因になかなか気がつかなかった。また、macportsから入れて弄ってない状態だと、ユーザディレクトリが有効になっていなかったため、編集を加える。

macportsから入れたApache2でユーザディレクトリを有効にする。

$ sudo vi /opt/local/apache2/conf/httpd.conf
  # User home directories
- #Include conf/extra/httpd-userdir.conf
+ Include conf/extra/httpd-userdir.conf

ユーザディレクトリにてCGIを有効にする。

$ sudo vi /opt/local/apache2/conf/extra/httpd-userdir.conf
- <Directory "/Users/*/Sites">
-     AllowOverride FileInfo AuthConfig Limit
-     Options MultiViews Indexes FollowSymLinksIfOwnerMatch IncludesNoExec
-     <Limit GET POST OPTIONS>
-         Order allow,deny
-         Allow from all
-     </Limit>
-     <LimitExcept GET POST OPTIONS>
-         Order deny,allow
-         Deny from all
-     </LimitExcept>
- </Directory>
+ #<Directory "/Users/*/Sites">
+ #    AllowOverride FileInfo AuthConfig Limit
+ #    Options MultiViews Indexes FollowSymLinksIfOwnerMatch IncludesNoExec
+ #    <Limit GET POST OPTIONS>
+ #        Order allow,deny
+ #        Allow from all
+ #    </Limit>
+ #    <LimitExcept GET POST OPTIONS>
+ #        Order deny,allow
+ #        Deny from all
+ #    </LimitExcept>
+ #</Directory>
+ <Directory /Users/*/Sites>
+     AllowOverride All
+     Options IncludesNoExec ExecCGI FollowSymLinks
+     <Limit GET POST OPTIONS>
+         Order allow,deny
+         Allow from all
+     </Limit>
+     <LimitExcept GET POST OPTIONS>
+         Order deny,allow
+         Deny from all
+     </LimitExcept>
+ </Directory>

Apacheの再起動を行う。

$ sudo /opt/local/apache2/bin/apachectl configtest
$ sudo /opt/local/apache2/bin/apachectl restart

シンボリックリンクを追加する。

$ sudo mkdir /usr/local/bin
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl

参考リンク