シェルスクリプトでCGIサンプルを実行するのに問題があります。私が従っているサンプルで作成されたディレクトリ「/tmp/shell」にアクセスできません。アドレス「http://localhost/シェル「Index of shel」というページが表示されますが、「このサーバーの/shell/にアクセスする権限がありません。」というメッセージとともに 403 エラーが表示されます。
私は Fedora 24 を使用していますが、Apache ユーザーは「Apache」と呼ばれていると思います。少なくとも「passwd」ファイルには Apache ユーザーが存在します。CGI ファイルを実行したいフォルダーの権限は 777 で、chown を使用してユーザーを「apache」に変更しましたが、それでも 403 エラーが発生します。
私のファイル「/etc/httpd/conf/httpd.conf」は次のようになります:
$ Tail -n20 /etc/httpd/conf/httpd.conf
# Settings for the study of Shell Script and CGI
Alias /shell "/tmp/shell/"
<Directory "/tmp/shell/">
Options Indexes FollowSymlinks ExecCGI
AllowOverride None
Order allow, deny
Allow from all
</ Directory>
私の /tmp/shell:
$ ls -ld /tmp/ /tmp/shell
drwxrwxrwt. 15 root root 480 Out 1 13:53 /tmp/
drwxrwxr-x. 2 apache apache 40 Out 1 13:52 /tmp/shell
Apacheは正常に動作しますhttp://ローカルホスト、/tmp/shell にアクセスできない理由がわかりません。気が狂いそうです!
誰か助けてくれませんか?
答え1
Fedora 24はsystemdを使用しており、/tmp
httpdプロセス専用のプライベートを設定している可能性があります。これを確認するには、
sudo systemctl show -p PrivateTmp httpd
/etc/systemd/system/httpd.service
これを上書きするには、以下の内容を含むファイルを作成します。
.include /lib/systemd/system/httpd.service
[Service]
PrivateTmp=false
sudo systemctl daemon-reload
サービスを再起動する前に実行してください。