OTRS Installation und Rechteproblem?

moeblitus

New Member
Hallo an alle,
ich hänge seid einigen Stunden hier und komme einfach nicht weiter mit einer OTRS Installation. Irgendwo scheint sich bei mir ein Gordischer Knoten im Hirn gebildet zu haben, den es angeht zu zerschlagen ... mit Eurer Hilfe, hoffe ich ... ;-)

Ok, mein Problem ist folgendes: ich habe auf einem SuSE Linux 10.3 mit Plesk 8.6 versucht OTRS zum Laufen zu bringen. Dazu habe ich bei einer meiner Domains eine Subdomain erstellt. OTRS habe ich ich in dem Verzeichnis installiert, in welches es lt. Installationsanleitung abgelegt werden soll (/opt/otrs).

Den User für OTRS habe ich angelegt und der Gruppe des Benutzers der Domain zugewiesen. Habe noch eine vhost.conf erzeugt in der Subdomain, um die Umleitung auf /opt/otrs zu erhalten und dort die entsprechenden Dateien ansprechen zu können.

Bei Aufruf der URL (http://support.xyz.de/otrs/installer.pl) erhalte ich einen Fehler, der auf ein Berechtigungsproblem hinweist. Also habe ich das gesamte Verzeichnis /opt/otrs mit den User- und Gruppendaten des Domain-Users, der auch per Suexec in der http.include gesetzt wird, versehen. Alle Verzeichnisse, die aufgerufen werden müssen haben 755 gesetzt.

Aber alles, was ich erreiche ich eine "Forbidden 403" Meldung.

Schaue ich ins suexec.log des Apaches erhalte ich folgende Meldung:
[2009-03-28 13:50:14]: uid: (10002/domain-user) gid: (2523/2523) cmd: index.pl
[2009-03-28 13:50:14]: command not in docroot (/opt/otrs/bin/cgi-bin/index.pl)

Habt Ihr eine Erklärung für dieses Verhalten?

Danke und Grüße,
moeblitus
 
Anbei die httpd.include aus der Hauptdomain

Code:
# ATTENTION!
# DO NOT MODIFY THIS FILE OR ANY PART OF IT. THIS CAN RESULT IN IMPROPER PLESK
# FUNCTIONING OR FAILURE, CAUSE DAMAGE AND LOSS OF DATA. IF YOU REQUIRE CUSTOM
# MODIFICATIONS TO BE APPLIED TO THE CONFIGURATION, PLEASE, PERFORM THEM IN THE
# FOLLOWING FILE(S):
# /srv/www/vhosts/domain.de/conf/vhost.conf
# /srv/www/vhosts/domain.de/conf/vhost_ssl.conf
# /srv/www/vhosts/domain.de/subdomains/<subdomain-name>/conf/vhost.conf

<IfModule mod_ssl.c>

<VirtualHost 127.0.0.1:443>
	ServerName   domain.de:443
	ServerAlias  [url=http://www.domain.de]domain.de - Domainabfrage[/url]
	UseCanonicalName Off
		SuexecUserGroup         domain-user psacln
	ServerAdmin  [email]info@domain.de[/email]
	DocumentRoot /srv/www/vhosts/domain.de/httpdocs
	CustomLog  /srv/www/vhosts/domain.de/statistics/logs/access_ssl_log plesklog
	ErrorLog  /srv/www/vhosts/domain.de/statistics/logs/error_log
<IfModule mod_userdir.c>
	UserDir /srv/www/vhosts/domain.de/web_users
</IfModule>
	ScriptAlias  /cgi-bin/ /srv/www/vhosts/domain.de/cgi-bin/
	Alias  /plesk-stat /srv/www/vhosts/domain.de/statistics/
	<Location  /plesk-stat/>
		Options +Indexes
	</Location>
	<Location  /plesk-stat/logs/>
		Require valid-user
	</Location>
	Alias  /webstat /srv/www/vhosts/domain.de/statistics/webstat
	Alias  /webstat-ssl /srv/www/vhosts/domain.de/statistics/webstat-ssl
	Alias  /ftpstat /srv/www/vhosts/domain.de/statistics/ftpstat
	Alias  /anon_ftpstat /srv/www/vhosts/domain.de/statistics/anon_ftpstat
	Alias  /awstats-icon /usr/share/apache2/icons/awstats/icon
	SSLEngine on
	SSLVerifyClient none
	SSLCertificateFile /usr/local/psa/var/certificates/certHaJ4889
	<Directory /srv/www/vhosts/domain.de/httpdocs>
	<IfModule mod_perl.c>
	<Files ~ (\.pl$)>
		SetHandler perl-script
		PerlHandler ModPerl::Registry
		Options ExecCGI
		allow from all
		PerlSendHeader On
	</Files>
	</IfModule>
	<IfModule mod_perl.c>
	<Files ~ (\.asp$)>
		SetHandler perl-script
		PerlHandler Apache::ASP
		PerlSetVar Global /tmp
	</Files>
	</IfModule>
	<IfModule sapi_apache2.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_python.c>
	<Files ~ (\.py$)>
		SetHandler python-program
		PythonHandler	mod_python.cgihandler
	</Files>
	</IfModule>
	<IfModule mod_fcgid.c>
		AddHandler fcgid-script .fcgi
		Options +FollowSymLinks +ExecCGI
	</IfModule>
		SSLRequireSSL
		Options +Includes +ExecCGI
	</Directory>
	<Directory /srv/www/vhosts/domain.de/web_users>
	<IfModule sapi_apache2.c>
		php_admin_flag engine off
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine off
	</IfModule>
	</Directory>
	<Directory "/srv/www/vhosts/domain.de/statistics">
		AuthType Basic
		AuthName "Domainstatistiken"
		AuthUserFile /srv/www/vhosts/domain.de/pd/d..httpdocs@plesk-stat
		require  valid-user
	</Directory>
	Alias "/error_docs" "/srv/www/vhosts/domain.de/error_docs"
	ErrorDocument 400 /error_docs/bad_request.html
	ErrorDocument 401 /error_docs/unauthorized.html
	ErrorDocument 403 /error_docs/forbidden.html
	ErrorDocument 404 /error_docs/not_found.html
	ErrorDocument 500 /error_docs/internal_server_error.html
	ErrorDocument 405 /error_docs/method_not_allowed.html
	ErrorDocument 406 /error_docs/not_acceptable.html
	ErrorDocument 407 /error_docs/proxy_authentication_required.html
	ErrorDocument 412 /error_docs/precondition_failed.html
	ErrorDocument 415 /error_docs/unsupported_media_type.html
	ErrorDocument 501 /error_docs/not_implemented.html
	ErrorDocument 502 /error_docs/bad_gateway.html
</VirtualHost>

</IfModule>

<VirtualHost 127.0.0.1:80>
	ServerName   domain.de:80
	ServerAlias  [url=http://www.domain.de]domain.de - Domainabfrage[/url]
	UseCanonicalName Off
	SuexecUserGroup         domain-user psacln
	ServerAdmin  "info@domain.de"
	DocumentRoot /srv/www/vhosts/domain.de/httpdocs
	CustomLog  /srv/www/vhosts/domain.de/statistics/logs/access_log plesklog
	ErrorLog  /srv/www/vhosts/domain.de/statistics/logs/error_log
<IfModule mod_userdir.c>
	UserDir /srv/www/vhosts/domain.de/web_users
</IfModule>
	ScriptAlias  /cgi-bin/ /srv/www/vhosts/domain.de/cgi-bin/
	Redirect permanent /plesk-stat [url]https://domain.de/plesk-stat[/url]
	Redirect permanent /webstat [url]https://domain.de/webstat[/url]
	Redirect permanent /webstat-ssl [url]https://domain.de/webstat-ssl[/url]
	Redirect permanent /ftpstat [url]https://domain.de/ftpstat[/url]
	Redirect permanent /anon_ftpstat [url]https://domain.de/anon_ftpstat[/url]
	Redirect permanent /awstats-icon [url]https://domain.de/awstats-icon[/url]
	<IfModule mod_ssl.c>
		SSLEngine off
	</IfModule>
	<Directory /srv/www/vhosts/domain.de/httpdocs>
	<IfModule mod_perl.c>
	<Files ~ (\.pl$)>
		SetHandler perl-script
		PerlHandler ModPerl::Registry
		Options ExecCGI
		allow from all
		PerlSendHeader On
	</Files>
	</IfModule>
	<IfModule mod_perl.c>
	<Files ~ (\.asp$)>
		SetHandler perl-script
		PerlHandler Apache::ASP
		PerlSetVar Global /tmp
	</Files>
	</IfModule>
	<IfModule sapi_apache2.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_python.c>
	<Files ~ (\.py$)>
		SetHandler python-program
		PythonHandler	mod_python.cgihandler
	</Files>
	</IfModule>
	<IfModule mod_fcgid.c>
		AddHandler fcgid-script .fcgi
		Options +FollowSymLinks +ExecCGI
	</IfModule>
		Options +Includes +ExecCGI
	</Directory>
	<Directory /srv/www/vhosts/domain.de/web_users>
	<IfModule sapi_apache2.c>
		php_admin_flag engine off
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine off
	</IfModule>
	</Directory>
	Alias "/error_docs" "/srv/www/vhosts/domain.de/error_docs"
	ErrorDocument 400 /error_docs/bad_request.html
	ErrorDocument 401 /error_docs/unauthorized.html
	ErrorDocument 403 /error_docs/forbidden.html
	ErrorDocument 404 /error_docs/not_found.html
	ErrorDocument 500 /error_docs/internal_server_error.html
	ErrorDocument 405 /error_docs/method_not_allowed.html
	ErrorDocument 406 /error_docs/not_acceptable.html
	ErrorDocument 407 /error_docs/proxy_authentication_required.html
	ErrorDocument 412 /error_docs/precondition_failed.html
	ErrorDocument 415 /error_docs/unsupported_media_type.html
	ErrorDocument 501 /error_docs/not_implemented.html
	ErrorDocument 502 /error_docs/bad_gateway.html
</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost 127.0.0.1:443>
	ServerName   support.domain.de:443
	SuexecUserGroup         domain-user psacln
	ServerAdmin  "info@domain.de"
	DocumentRoot /srv/www/vhosts/domain.de/subdomains/support/httpdocs
	CustomLog  /srv/www/vhosts/domain.de/statistics/logs/access_ssl_log plesklog
	ErrorLog  /srv/www/vhosts/domain.de/statistics/logs/error_log
	ScriptAlias  /cgi-bin/ /srv/www/vhosts/domain.de/subdomains/support/cgi-bin/
	SSLEngine on
	SSLVerifyClient none
	SSLCertificateFile /usr/local/psa/var/certificates/certHaJ4889
	<Directory  /srv/www/vhosts/domain.de/subdomains/support/httpdocs>
	<IfModule mod_perl.c>
	<Files ~ (\.pl$)>
		SetHandler perl-script
		PerlHandler ModPerl::Registry
		Options ExecCGI
		allow from all
		PerlSendHeader On
	</Files>
	</IfModule>
	<IfModule mod_perl.c>
	<Files ~ (\.asp$)>
		SetHandler perl-script
		PerlHandler Apache::ASP
		PerlSetVar Global /tmp
	</Files>
	</IfModule>
	<IfModule sapi_apache2.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/subdomains/support/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/subdomains/support/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_python.c>
	<Files ~ (\.py$)>
		SetHandler python-program
		PythonHandler	mod_python.cgihandler
	</Files>
	</IfModule>
	<IfModule mod_fcgid.c>
		AddHandler fcgid-script .fcgi
		Options +FollowSymLinks +ExecCGI
	</IfModule>
		SSLRequireSSL
		Options +Includes +ExecCGI
	</Directory>
	Alias "/error_docs" "/srv/www/vhosts/domain.de/error_docs"
	ErrorDocument 400 /error_docs/bad_request.html
	ErrorDocument 401 /error_docs/unauthorized.html
	ErrorDocument 403 /error_docs/forbidden.html
	ErrorDocument 404 /error_docs/not_found.html
	ErrorDocument 500 /error_docs/internal_server_error.html
	ErrorDocument 405 /error_docs/method_not_allowed.html
	ErrorDocument 406 /error_docs/not_acceptable.html
	ErrorDocument 407 /error_docs/proxy_authentication_required.html
	ErrorDocument 412 /error_docs/precondition_failed.html
	ErrorDocument 415 /error_docs/unsupported_media_type.html
	ErrorDocument 501 /error_docs/not_implemented.html
	ErrorDocument 502 /error_docs/bad_gateway.html
	Include /srv/www/vhosts/domain.de/subdomains/support/conf/vhost.conf
</VirtualHost>

</IfModule>

<VirtualHost 127.0.0.1:80>
	ServerName   support.domain.de:80
	SuexecUserGroup         domain-user psacln
	ServerAdmin  "info@domain.de"
	DocumentRoot /srv/www/vhosts/domain.de/subdomains/support/httpdocs
	CustomLog  /srv/www/vhosts/domain.de/statistics/logs/access_log plesklog
	ErrorLog  /srv/www/vhosts/domain.de/statistics/logs/error_log
	ScriptAlias  /cgi-bin/ /srv/www/vhosts/domain.de/subdomains/support/cgi-bin/
	<IfModule mod_ssl.c>
		SSLEngine off
	</IfModule>
	<Directory  /srv/www/vhosts/domain.de/subdomains/support/httpdocs>
	<IfModule mod_perl.c>
	<Files ~ (\.pl$)>
		SetHandler perl-script
		PerlHandler ModPerl::Registry
		Options ExecCGI
		allow from all
		PerlSendHeader On
	</Files>
	</IfModule>
	<IfModule mod_perl.c>
	<Files ~ (\.asp$)>
		SetHandler perl-script
		PerlHandler Apache::ASP
		PerlSetVar Global /tmp
	</Files>
	</IfModule>
	<IfModule sapi_apache2.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/subdomains/support/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine on
		php_admin_flag safe_mode on
		php_admin_value open_basedir "/srv/www/vhosts/domain.de/subdomains/support/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_python.c>
	<Files ~ (\.py$)>
		SetHandler python-program
		PythonHandler	mod_python.cgihandler
	</Files>
	</IfModule>
	<IfModule mod_fcgid.c>
		AddHandler fcgid-script .fcgi
		Options +FollowSymLinks +ExecCGI
	</IfModule>
		Options +Includes +ExecCGI
	</Directory>
	Alias "/error_docs" "/srv/www/vhosts/domain.de/error_docs"
	ErrorDocument 400 /error_docs/bad_request.html
	ErrorDocument 401 /error_docs/unauthorized.html
	ErrorDocument 403 /error_docs/forbidden.html
	ErrorDocument 404 /error_docs/not_found.html
	ErrorDocument 500 /error_docs/internal_server_error.html
	ErrorDocument 405 /error_docs/method_not_allowed.html
	ErrorDocument 406 /error_docs/not_acceptable.html
	ErrorDocument 407 /error_docs/proxy_authentication_required.html
	ErrorDocument 412 /error_docs/precondition_failed.html
	ErrorDocument 415 /error_docs/unsupported_media_type.html
	ErrorDocument 501 /error_docs/not_implemented.html
	ErrorDocument 502 /error_docs/bad_gateway.html
	Include /srv/www/vhosts/domain.de/subdomains/support/conf/vhost.conf
</VirtualHost>

Und hier noch die passende vhost.conf, die in der Subdomain eingebunden ist:

Code:
#
# Basic apache configuration for OTRS
#
# agent, admin and customer frontend
#
#SuexecUserGroup  otrs www  
ScriptAlias /otrs/ "/opt/otrs/bin/cgi-bin/"
Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/"
#
# directory settings
#
<Directory "/opt/otrs/bin/cgi-bin/">
    AllowOverride None
    Options +ExecCGI -Includes
    Order allow,deny
    Allow from all
</Directory>
<Directory "/opt/otrs/var/httpd/htdocs/">
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Habe auch mal die Rechte für das gesamte OTRS Verzeichnis unter /opt auf 777 geändert. Bekomme trotzdem weiterhin einen Server-Error 500 und im suexec.log steht:

[2009-03-28 15:57:01]: uid: (10002/domain-user) gid: (2523/2523) cmd: index.pl
[2009-03-28 15:57:01]: command not in docroot (/opt/otrs/bin/cgi-bin/index.pl)

Danke für Eure Hilfe.
 
Habe auch mal die Rechte für das gesamte OTRS Verzeichnis unter /opt auf 777 geändert.
Bitte sowas in Zukunft ignorieren. 777 ist nie eine gute Idee es sei denn, man weiß genau wieso und warum man gerade so offene Permissions wählt.

Der Fehlermeldung nach zu urteilen mag suExec keine Scripts ausführen, die nicht unterhalb vom (suExec-)DocRoot liegt.
In diesem Thread (https://serversupportforum.de/threads/command-not-in-docroot-cgi-suexec.15640/) schlägt Huschi vor, dass ein Symlink in das DocRoot gelegt wird und dieser in der VHost-Config verwendet wird.
Versuch das mal.
 
Naja, das 777 setzen wurde dann auf einem kopierten Ordner ausprobiert und ist längst wieder gelöscht ... aber man sollte jeden Hinweis mal ins Kalkül ziehen ...

Jetzt verzweifel ich gerade an der suexec2. Meine Kiste gibt mir doch zum Donnerwetter keine Werte aus, wenn ich "suexec2 -V" aufrufe. Was mache ich falsch?

Bin auch in dem Verzeichnis (/usr/sbin) gewesen, in dem die suexec2 zu finden ist.

Achja, in der suexec.log findet man dann folgenden Eintrag:
[2009-03-28 16:51:39]: too few arguments

:confused:
 
Last edited by a moderator:
Sooooooooooo ... also, bin doch tatsächlich einen Schritt weitergekommen. Mit Berechtigungen scheint das nur am Rande zu tun zu haben.

Was viel mehr die Ursache zu sein scheint, daß dr Rechner @INC und das "bin-Verzeichnis" mit FindBin nicht sauber aufzulösen scheint.

Anbei der entsprechende Code-Schnippsel:
Code:
# use ../../ as lib location
#use FindBin qw($Bin);
#use lib "$Bin/../..";
#use lib "$Bin/../../Kernel/cpan-lib";

Nachdem ich die Verzeichnisse "hart" in die entsprechenden *.pl-Files eingesetzt habe, funktioniert das.

Hat evtl. jemand eine Idee, wie ich diese harte Programmierung wieder rausnehmen kann und auf den Ursprungscode zurückgreifen kann?

Danke und Grüße,
moeblitus
 
Back
Top