[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: CGIs werden nicht ausgeführt



Am 16.01.2018 um 20:31 schrieb Harald Weidner:
> Hallo,
> 
> On Tue, Jan 16, 2018 at 07:21:46PM +0100, Sebastian Suchanek wrote:
> 
>> Auf dem Stretch-Produktivsystem habe ich hingegen sogar die beiden
>> Apache-Mods "cgi" und "cgid" aktiviert, allerdings wird das
>> Uprecords-Skript leider immer noch nicht ausgeführt, sondern zum
>> Download angeboten. :-(
> 
> Dann ist auf dem System irgendwas kaputtkonfiguriert.

Das glaube ich inzwischen auch, ja. Nur habe ich bislang nicht die
leiseste Ahnung, was und wo genau.

> Welche Module sind denn genau aktiviert? Was sagt "a2query -m"?

| # a2query -m
| authz_core (enabled by maintainer script)
| env (enabled by maintainer script)
| authn_file (enabled by maintainer script)
| authn_core (enabled by maintainer script)
| alias (enabled by maintainer script)
| mime (enabled by maintainer script)
| negotiation (enabled by maintainer script)
| authz_user (enabled by maintainer script)
| auth_basic (enabled by maintainer script)
| dir (enabled by maintainer script)
| mpm_prefork (enabled by maintainer script)
| suexec (enabled by site administrator)
| php7.0 (enabled by maintainer script)
| authz_svn (enabled by maintainer script)
| cgi (enabled by site administrator)
| status (enabled by maintainer script)
| rewrite (enabled by site administrator)
| socache_shmcb (enabled by site administrator)
| autoindex (enabled by maintainer script)
| dav (enabled by maintainer script)
| dav_svn (enabled by maintainer script)
| cgid (enabled by site administrator)
| authz_host (enabled by maintainer script)
| setenvif (enabled by maintainer script)
| access_compat (enabled by maintainer script)
| reqtimeout (enabled by maintainer script)
| filter (enabled by maintainer script)
| deflate (enabled by maintainer script)
| ssl (enabled by site administrator)
| #

> Welche Konfigurationenw werden eingebunden? Was sagt "a2query -c"?

| # a2query -c
| charset (enabled by maintainer script)
| cacti (enabled by maintainer script)
| phpmyadmin (enabled by maintainer script)
| other-vhosts-access-log (enabled by maintainer script)
| serve-cgi-bin (enabled by maintainer script)
| javascript-common (enabled by maintainer script)
| roundcube (enabled by maintainer script)
| localized-error-pages (enabled by maintainer script)
| php-horde (enabled by maintainer script)
| security (enabled by maintainer script)
| #

> Was steht in deiner site-Konfiguration bzgl. CGI-Skripten?

Aktuell gar nichts (IP und Domain anonymisiert):

| <VirtualHost a.b.c.d:80>
|         ServerName www.domain.tld
|         ServerAlias domain.tld
|         ServerAdmin webmaster@domain.tld
|         DocumentRoot "/var/www/domain/html"
|         SuexecUserGroup web1 www-data
|         CustomLog /var/www/domain/log/access.log combined
|         ErrorLog /var/www/domain/log/error.log
|         <Directory "/var/www/domain">
|                 Options -Indexes +MultiViews +FollowSymLinks
|                 AllowOverride All
|         </Directory>
| </VirtualHost>


> Generell braucht es für CGI-Support vier Dinge:
> 
> 1. Eines der Module mod_cgi oder mod_cgid muss geladen sein.

Ist gegeben (siehe oben).

> 2. Eine ScriptAlias Direktive auf das Verzeichnis mit den
>    Skripten

Ist gegeben - in der serve-cgi-bin.conf, die 100% Debian-OOTB ist:

| <IfModule mod_alias.c>
|         <IfModule mod_cgi.c>
|                 Define ENABLE_USR_LIB_CGI_BIN
|         </IfModule>
|
|         <IfModule mod_cgid.c>
|                 Define ENABLE_USR_LIB_CGI_BIN
|         </IfModule>
|
|         <IfDefine ENABLE_USR_LIB_CGI_BIN>
|                 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
|                 <Directory "/usr/lib/cgi-bin">
|                         AllowOverride None
|                         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|                         Require all granted
|                 </Directory>
|         </IfDefine>
| </IfModule>

(Falls die "Options"-Zeile umbrochen werden sollte: das ist nur ein
Problem von Thunderbird, im Original ist das eine einzige Zeile.)

> 3. Eine "Options +ExecCGI" Direktive für das Verzeichnis.

Ist gegeben - siehe oben.

> 4. Das verwendete Directory muss für den Apache-User (normalerweise
>    www-data) lesbar und die Skript ausführbar sein.
> [...]

Ist gegeben:

| # ls -l /usr/lib/cgi-bin/
| total 0
| lrwxrwxrwx 1 root root 19 Nov 24  2016 uprecords.cgi ->
../../bin/uprecords
| #

| # ls -l /usr/bin/ | grep uprecords
| -rwxr-xr-x 1 root root       18440 Nov 24  2016 uprecords
| #


Tschüs,

Sebastian


Reply to: