和洋風KAI

【Mac】Dropboxの中にあるスクリプトにシンボリックリンク経由でApache(CGI)からアクセスするときのメモ。

Photo by: Christian Cable

タイトルが一体何を言っているのかわからんことになっていますが最初に断っておきます。この記事は完全なる俺用メモです。(汗)

① http.confをvimで開く。

sudo vim /etc/apache2/httpd.conf

② http.confの中でDocumentRootフォルダの設定を以下のようにする。

<Directory "/Library/WebServer/Documents">
AllowOverride All
Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .rb
Require all granted
</Directory>

Options内の「FollowSymLinks」「ExecCGI」がキモ。 Require all grantedも忘れずに。

③ Apacheを再起動して設定を反映させます。

sudo apachectl restart

④ DocumentRootフォルダ内に、Dropbox内のスクリプトのディレクトリとのシンボリックリンクを作る。

sudo ln -s [Dropbox内のスクリプトがあるディレクトリのフルパス] /Library/WebServer/Documents/

⑤ Dropboxとスクリプトのあるディレクトリのパーミッションを755にする。(これをしておかないとapacheがアクセスできないので注意。)

chmod 755 [Dropboxまでのフルパス]
chmod 755 [Dropbox内のスクリプトが入っているディレクトリのフルパス]

一応、これで完了。

ちなみに、CGIからディレクトリにアクセスする場合は当たり前だけどDocumentRootからのフルパスを指定する必要あり。内部でさらにシンボリックリンクを指定している場合も同様。

また、CGIからディレクトリ内を書き換えする場合は、そのディレクトリのパーミッションを777にする必要があるので注意。