On 2022-12-06 08:19, Marco Moock <
mo...@posteo.de> wrote:
> Am 05.12.2022 um 19:46:30 Uhr schrieb Peter J. Holzer:
>> On 2022-12-05 13:12, Marco Moock <
mo...@posteo.de> wrote:
>> > Ich habe jetzt ein Debian neu aufgesetzt und nun eine neue Konfig
>> > ohne Überbleibsel.
>> > Aktiviert habe ich am Apache bisher nur das Modul cgi.
>> > Mehr nicht.
>> > Welche Schritte sind nun notwendig, um CGI-Skripte zu nutzen?
>> > In welcher Datei konfiguriert man am besten die CGI-Optionen?
>>
>> Wenn Du das Debian-Config-Framework verwendest: In der
>> Site-Konfiguration.
>
> Da habe ich nun Include conf-available/serve-cgi-bin.conf aktiviert
> innerhalb von VirtualHost.
>
> Das hat folgenden Inhalt:
>
><IfModule mod_alias.c>
^^^^^^^^^
Hast Du mod_alias auch enabled?
Ohne das wird dieser ganze Abschnitt ignoriert (und ScriptAlias würde
nicht funktionieren).
Ich verwende das Debian-Apache-Config-System nicht, aber hier ist ein
minimales httpd.conf, das mir die Ausführung von CGI-Scripts erlaubt:
------------------------------------------------------------------------
User www-data
Group www-data
Listen
127.0.0.1:80
LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
LoadModule authn_core_module /usr/lib/apache2/modules/mod_authn_core.so
LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
LoadModule mpm_worker_module /usr/lib/apache2/modules/mod_mpm_worker.so
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{ms}Tms %V HTTPS=%{HTTPS}x SSL_PROTOCOL=%{SSL_PROTOCOL}x" full
ErrorLog "|/usr/bin/rotatelogs /var/log/www/cgitest/error-%Y-%m-%d.log 86400"
CustomLog "|/usr/bin/rotatelogs /var/log/www/cgitest/access-%Y-%m-%d.log 86400" full
DocumentRoot /usr/local/www/cgitest/htdocs
ScriptAlias /cgi-bin/ /usr/local/www/cgitest/cgi-bin/
------------------------------------------------------------------------
(ssl_module ist nur für mein übliches Log-Format notwendig)
$ cat /usr/local/www/cgitest/cgi-bin/foo
#!/bin/sh
echo "Content-Type: text/plain"
echo
date
printenv
$ curl
http://localhost/cgi-bin/foo
Tue Dec 6 19:02:37 CET 2022
GATEWAY_INTERFACE=CGI/1.1
REMOTE_ADDR=127.0.0.1
QUERY_STRING=
HTTP_USER_AGENT=curl/7.81.0
...
SERVER_PORT=80
SCRIPT_NAME=/cgi-bin/foo
SERVER_NAME=localhost
...
> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
...
> Leider kann ich das Skript aber nicht abrufen, diverse Pfade probiert
> (liegt in /usr/lib/cgi-bin/test.cgi). Welchen muss man nutzen?
Da /cgi-bin/ das Alias für /usr/lib/cgi-bin/ ist: /cgi-bin/test.cgi.
hp