suexec und Perl (CGI)

cardman

New Member
Hallo,

ich hab das Problem, das Perl nicht mehr funktioniert.
Ich habe vor kurzem meinen Server auf suexec mit fcgi upgedatet um PHP4 und PHP5 laufen zulassen.

Leider funktioniert seit diesem Zeitpunkt Perl nicht mehr. Was im ersten moment ja klar ist, da suexec jetzt greift und deshalb es immer zur Fehlermeldung: "not in Docroot" kommt.

Ich habe suexec auch schon neu kompiliert, allerdings gehen dann die anderen Seiten nicht mehr. Deshalb habe ich die Frage ob man suexec irgendwie umgangen werden kann?

Ich habe schon versucht einen eigenen VHost dafür anzulegen:
Code:
<VirtualHost xx.xx.xx.xx:80>
  ServerName xxx.de
  ServerAlias www.xxx.de
  ServerAdmin info@xxx.de
AddType application/x-httpd-php .phtml. html. php. inc
ScriptAlias /cgi-bin/ /var/kunden/webs/xxx/verzeichnis/cgi-bin/
DocumentRoot /var/kunden/webs/xxx/verzeichnis
<Directory />
Options +FollowSymLinks +ExecCGI
AllowOverride None
</Directory>
<Directory /var/kunden/webs/xxx/verzeichnis>
Option Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</Virtualhost>

Aber leider bekomme ich immer wieder die Datei zum Download angeboten.

Vielen dank für die Hilfe.

Mit freundlichen Grüßen
cardman
 
Hallo,

hier die Ausgabe von: suexec -V:
Code:
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

Aber eben genau das will ich ja umgehen

Gruss
cardman
 
Hallo,

dann compilier mal ein neues mit:

AP_DOC_ROOT="/var/kunden/webs"

und

AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin:/xxx/xxx/xxx"

statt /xxx/xxx/xxx den Pfad zum PHP-CGI-Binary.

AP_HTTPD_USER="www-data"
Prüfen, ob www-data Dein Apacheuser ist.
 
Ich hab es jetzt einfach mal versucht.

Hier das Ergebnis von suexec -V:
Code:
-D AP_DOC_ROOT="/var/kunden/webs"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin:/var/www/php-fcgi-scripts"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

In /var/www/php-fcgi-scripts liegen die Startdateien für PHP.
Wenn ich mich da vertan hab und du nicht dieses Verzeichnis meintest einfach kurz bescheid geben.

Nach einem restart von Apache bekomme ich einen internal Server Error beim besuch einer Homepage. In den Error-Logs steht:
Code:
Premature end of script headers: front_content.php

Woran kann das jetzt liegen?

Gruss
Cardman
 
Hallo,

ich versteh die Konfiguration nicht, Homepages in /var/kunden/webs aber PHP-Scripts in /var/www/php-fcgi-scripts?
 
Hallo,

das ist die Standard Einstellung der Scripte, ich habe heute mittag schon versucht die PHP-Starter nach /var/kunden/webs zu verlagern, aber da bekam ich auch nur noch 500er errors.

Ich werde es aber nochmal versuchen, vielleicht hatte ich was vergessen.
 
So, ich habe es nochmal getestet und die Seiten werden wieder nicht angezeigt, es kommt wieder zu einem 500er Error.

Die Meldung in den Error-Logs lautet:
Code:
Premature end of script headers: front_content.php

Woran kann das den liegen?

Gruss cardman
 
Hallo,

das ist in den Scripten drin:

Code:
#!/bin/sh

PHPRC="/etc/php5/cgi"
PHP_FCGI_CHILDREN=0
PHP_FCGI_MAX_REQUESTS=500
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi

in der suexec.log steht gar nichts drin, wegen einem Fehler.
 
Hallo,

ich hab da jetzt mal was getestet und eine Sub-Domain unter /var/www angelegt.
Und unter dieser Sub-Domain funktioniert Perl auch.

Das heißt für mich, ich muss die Kunden unter /var/www ablegen muss, damit diese Perl benutzen können.

Gruss

cardman
 
Hallo,

nein, ich hab das alte wieder aktiviert, weil mit dem neuen keine Webseiten mehr gingen.

Hier ist die Ausgabe von suexec -V von der neukompilierten suexec:
Code:
-D AP_DOC_ROOT="/var/kunden/webs"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin:/var/www/php-fcgi-scripts"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"
 
Back
Top