Ubuntu 16.04を仮想マシンとして実行しています。 Apache2 2.4.18がインストールされています。
使用したいcgiスクリプトを含むフォルダーがあります。そのために、/ usr/lib/cgi-bin内のそのフォルダーへのシンボリックリンクを配置しました。
Firefox localhost/cgi-bin/linkName/script.cgi
からスクリプトを呼び出すと、403 forbiddenエラーが発生します。
Script.cgiを/usr/lib/cgi-bin
にコピーしてlocalhost/cgi-bin/script.cgi
で呼び出すと、実行されますが、周囲のファイルとフォルダーがないためソフトウェアエラーが発生します。
リンクとリンク先のフォルダーの両方をchmod 777
持っていますが、それでもエラーが発生します。
すべてのファイルとフォルダーを/usr/lib/cgi-bin
にコピーする以外に、他に何ができますか?
これは、シンボリックリンクが、"virtualhost".conf
ファイルにリストされているディレクトリの外部にあるディレクトリを指しているためです。したがって、/etc/Apache2/Apache2.conf
(または/etc/Apache2/sites-available/*.conf
または/etc/Apache2/conf-available/*.conf
)ファイルに必要なディレクティブを書き留めて、/usr/lib/cgi-bin
にアクセスする必要があります。何かのようなもの:
Alias /cgi-bin/linkName /usr/lib/cgi-bin
<Directory /usr/lib/cgi-bin>
Options +ExecCGI FollowSymLinks
DirectoryIndex disabled
AllowOverride None
Require all granted
# etc..
</Directory>
そしておそらく(しかし、それが必要かどうかはわかりません):Sudo chown -R www-data:www-data /usr/lib/cgi-bin
。
Alias /cgi-bin/linkName /usr/lib/cgi-bin
を作成する場合、シンボリックリンクを作成する必要はありません。