Сценарий Perl CGI завершается неудачно с
Can't locate /home/testdir/first.pl: /home/testdir/first.pl:
Permission denied at /var/www/cgi-bin/first.cgi line 2.
и
End of script output before headers: first.cgi in /etc/httpd/logs/error_log
Это система rhel8 с apache 2.4
Я пытался переместить first.pl
вразличные местоположения и изменение first.cgi
, чтобы указать на first.pl
.first.cgi
выполняется, если я помещаю first.pl
в /var/www
, но не /home/testdir
, /var
или другие каталоги
В httpd.conf
, я устанавливаю разрешения для /home/testdir/
так же, как /var/www
, показанный ниже, и перезапуск apache
<Directory "/home/testdir">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
Из-за разочарования я изменил разрешения для /var/www
на Require all denied
и перезапустил apache.first.cgi
все еще успешно запускается first.pl
, когда я указал его на /var/www
с разрешениями, измененными на Require all denied
.
Я также отключаю suexec
и получаю те же ошибки при указании first.cgi
на /home/testdir
Разрешения для first.pl
составляют 755 в /home/testdir
, а также /var/www
, а пользователь и группа являются root.
Разрешения для home
, testdir
, var
и www
- все 755, а все пользователи и группы - root
first.cgi :
#!/usr/bin/perl
require '/home/testdir/first.pl';
test();
first.pl :
#!/usr/bin/perl
sub test{
print "Content-type: text/html\n\n";
print "Hello, World.";
}
first;
Скрипт должен отображать «Hello, World».на веб-странице.Вместо этого он отображает:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.