Uruchamianie pliku PHP poza dokumentem documentroot (folder cgi-bin)
Pracuję z kolegą, aby ustawić swoje lokalne środowisko na MAC w XAMPP, na Windowsach mój vhost wygląda jak ten poniżej.
Kiedy uzyskuję dostęp do adresu URL, takiego jakhttp: //domain.local/cgi-bin/handler.php serwer WWW przetwarza PHP poprawnie, ale na jego stronie pojawia się błąd serwera 500 i ten komunikat ...
<code>The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: </code>
Próbowaliśmy zmienić nazwę folderu cgi-bin na coś innego, ponieważ zauważyłem, że jest inny alias w httpd.conf, ale to nie miało żadnego skutku ... więc wydaje mi się, że problem dotyczy uprawnień.
Uważamy, że alias jest skonfigurowany jako dostęphttp: //domain.local/cgi-bin/filenothere.php który nie istnieje, rzuca 404 zgodnie z oczekiwaniami, żadne pliki .html / .pl nie działają.
Uprawnienia istniejące w folderze cgi-bin są ...
personel rwxrwxrwx dave
i jest własnością użytkownika i grupy ....
personel Dave'a
Vhost
<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>
Jakiś pomysł, co powoduje, że ten plik PHP nie zostanie wykonany?
AKTUALIZACJA Próbowałem dodać nagłówek, aby powiedzieć, że zawartość jest PHP na początku pliku PHP, a teraz po prostu wyświetla kod PHP.
To tak, jakby każda ścieżka określona jako Alias była dostępna, ale serwer nie wie, jak wykonać zawartość, jest to zarówno dla HTML, jak i PHP