Запуск PHP-файла вне documentroot (папка cgi-bin)
Я работаю с коллегой, чтобы настроить их локальную среду на MAC в XAMPP, в Windows мой vhost выглядит так, как показано ниже.
Когда я получаю доступ к URL, какHttp: //domain.local/cgi-bin/handler.php веб-сервер обрабатывает PHP правильно, но на его мы получаем ошибку 500 серверов и это сообщение ...
<code>The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: </code>
Мы попытались изменить имя папки cgi-bin на что-то другое, так как я заметил, что в httpd.conf был другой псевдоним, но это не имело никакого эффекта ... поэтому мне кажется, что проблема связана с разрешениями.
Мы считаем, что псевдоним настроен как доступHttp: //domain.local/cgi-bin/filenothere.php который не существует, выбрасывает 404, как и ожидалось, любые файлы .html / .pl не выполняются.
Разрешения, которые существуют в папке cgi-bin ...
rwxrwxrwx персонал Дейва
и принадлежит пользователю и группе ....
Дейв персонал
ВХост
<code><VirtualHost *:80> ServerAdmin [email protected] ServerName www.domain.local ServerAlias domain.local ServerAlias api.domain.local # Indexes + Directory Root. DirectoryIndex index.php DocumentRoot E:/home/www/www.domain.co.uk/htdocs/ # CGI Directory ScriptAlias /cgi-bin/ E:/home/www/www.domain.co.uk/cgi-bin/ <Location /cgi-bin> Options +ExecCGI </Location> # Logfiles ErrorLog E:/home/www/www.domain.co.uk/logs/error.log CustomLog E:/home/www/www.domain.co.uk/logs/access.log combined </VirtualHost> </code>
Любая идея, что заставляет этот файл PHP не выполняться?
UPDATE Попытался добавить заголовок, чтобы сказать, что содержимое является PHP в начале файла PHP, и теперь это просто выводит код PHP.
Это как если бы любой путь, указанный в качестве псевдонима, был доступен, но сервер не знает, как выполнить содержимое, это как для HTML, так и для PHP