У меня возникли проблемы с запуском примера CGI с помощью Shell Script. Я не могу получить доступ к каталогу, созданному в примере, которому я следую, "/tmp/shell". При доступе к адресу "http://localhost/shell" должен увидеть страницу "Индекс shell", но выдает ошибку 403 с сообщением "У вас нет прав доступа/shell/ на этом сервере".
Я использую Fedora 24, и я думаю, что пользователь Apache называется «Apache», ну, по крайней мере, в файле «passwd» есть пользователь Apache, папка, в которой я хотел запустить файлы CGI, имеет права доступа 777, и я изменил пользователя на «apache» с помощью chown, но все равно выдает ошибку 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://localhost, Я не понимаю, почему я не могу получить доступ к /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
перед перезапуском службы.