Страница 1 из 1

FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-20 18:02:46
Sindikat88
Коллеги, добрый день.
Существует сервер на FreeBSD 8.1, на котором установлен OTRS 3.0.10. Система работает хорошо. Но решил прикрутить к ней авторизацию в LDAP.
и сразу столкнулся с проблемой.
Привел я Config.pm к такому виду
Привожу весь конфиг

Код: Выделить всё

        # Enable LDAP Authentication Sync for Agent #
        $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
        $Self->{'AuthSyncModule::LDAP::Host'} = 'primarydc.mydomain.local';
        $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=mydomain,dc=local';
        $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

        $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';


        $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=otrs,cn=Users,dc=mydomain,dc=local';
        $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxx';

        # Enable Agent Mapping from LDAP to DB #
        $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        UserFirstname => 'givenName',
        UserLastname => 'sn',
        UserEmail => 'mail',
        UserComment => 'wWWHomePage',
        };

         
            $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
                'users',
            ];
            # Authenticate customer users against an LDAP backend  #
           $Self->{CustomerUser} = {
              Name => 'Active Directory',
              Module => 'Kernel::System::CustomerUser::LDAP',
              Params => {
                 Host => 'primarydc.mydomain.local',
                 BaseDN => 'dc=mydomain,dc=local',
                 SSCOPE => 'sub',
                 UserDN => 'cn=otrs,cn=Users,dc=mydomain,dc=local';
                 UserPw => 'xxx',
               AlwaysFilter => '(&(objectcategory=person)(objectclass=user)(mail=*)(!(description=built-In))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
              SourceCharset => 'utf-8',
              DestCharset   => 'utf-8',
                },
   ReadOnly => 1,
      CustomerKey => 'sAMAccountName',
      CustomerID => 'mail',
      CustomerUserListFields => ['givenname', 'sn', 'mail'],
      CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
   CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description'],
      CustomerUserNameFields => ['givenname', 'sn'],
                CustomerUserExcludePrimaryCustomerID => 0,
             CacheTTL => 120,
      Map => [
         [ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
         [ 'UserFirstname', 'Firstname', 'givenName', 1, 1, 'var' ],
         [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
         [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
         [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
         [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
         [ 'UserPhone', 'Phone', 'telephoneNumber', 1, 0, 'var' ],
         [ 'UserAddress', 'Address', 'postalAddress', 1, 0, 'var' ],
         [ 'UserStreet', 'Street', 'streetAddress', 1, 0, 'var' ],
         [ 'UserCity', 'City', 'l', 1, 0, 'var' ],
         [ 'UserZip', 'ZIP', 'postalCode', 1, 0, 'var' ],
         [ 'UserCountry', 'Country', 'co', 1, 0, 'var' ],
         [ 'UserComment', 'Comment', 'wWWHomePage', 1, 0, 'var' ],
         ],
   };

    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'primarydc.mydomain.local';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=mydomain,dc=local';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=otrs,cn=Users,dc=mydomain,dc=local';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxx';


При попытке зайти в браузере на страницу авторизации, выдается такое сообщение:

Код: Выделить всё

    Can't locate object method "Load" via package "Kernel::Config" at /usr/local/otrs//Kernel/Config/Defaults.pm line 2040.
В /var/log/messages заносится такое:

Код: Выделить всё

    Sep 20 18:35:00 statistiks OTRS-otrs.UnlockTickets.pl-10[45345]: [Error][Kernel::System::Main::FileWrite][Line:444]: [Error][Kernel::System::Main::FileWrite][Line:444]: Can't write '/usr/local/otrs/var/tmp/CacheFileStorable//CacheInternalLock/2ade0ec669793f03c965cbfa6bba1494': Permission denied


Где может быть ошибка? И почему он говорит, что не может прочитать файл, когда права на него не менялись?

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-21 10:28:35
bagas
хмм что то спровами
cd /usr/share/otrs && SetPermissions.pl --otrs-user=otrs --otrs-group=www-data --web-user=www-data --web-group=www-data /usr/local/otrs/var/tmp/CacheFileStorable//CacheInternalLock
ну как то так.

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-21 11:06:58
Sindikat88
Привел файл /usr/local/otrs/bin/otrs.SetPermissions.pl к такому виду:

Код: Выделить всё

my $Secure             = 0;
my $Version            = 0;
my $Help               = 0;
my $NotRoot            = 0;
my $AdminGroupWritable = 0;
my $OtrsUser           = 'otrs';
my $WebUser            = 'www-data';
my $AdminUser          = 'root';
my $OtrsGroup          = 'www-data';
my $WebGroup           = 'www-data';
my $AdminGroup         = 'root';
Перестал запускаться Apache. В логах написано следующее:

Код: Выделить всё

[Wed Sep 21 11:57:36 2011] [error] syntax error at /usr/local/otrs//Kernel/Config.pm line 34, near "UserPw"\nCompilation failed in require at /usr/local/otrs/scripts/apache2-perl-startup.pl line 67.\nBEGIN failed--compilation aborted at /usr/local/otrs/scripts/apache2-perl-startup.pl line 67.\nCompilation failed in require at (eval 4) line 1.\n
[Wed Sep 21 11:57:36 2011] [error] Can't load Perl file: /usr/local/otrs/scripts/apache2-perl-startup.pl for server statistiks.ac-construction.local:0, exiting...

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-21 11:13:26
bagas
не поверю, что апач не запускается.

Код: Выделить всё

# service apache22 restart
может быть доска помощи не запускается?

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-21 11:46:45
Sindikat88
Ну вот:

Код: Выделить всё

statistiks# service apache22 restart
Performing sanity check on apache22 configuration:
Syntax OK
apache22 not running? (check /var/run/httpd.pid).
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
/usr/local/etc/rc.d/apache22: WARNING: failed to start apache22

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-21 15:53:53
bagas
этот файл не находиться Config.pm , попробуй посмотреть тут.
http://forum.lissyara.su/viewtopic.php? ... 1&start=50

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-21 16:07:35
Sindikat88
В той теме, что Вы дали, ничего похожего не нашел.

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-22 10:16:58
Sindikat88
Так, ошибку с незапуском Апача решил. У меня в конфиге на 34 строчке стоял знак а должен был Теперь в логах пишет такую бяку:

Код: Выделить всё

[Thu Sep 22 11:09:21 2011] [error] [Thu Sep 22 11:09:21 2011] -e: Can't locate object method "new" via package "Kernel::Config" (perhaps you forgot to load "Kernel::Config"?) at /usr/local/otrs//Kernel/System/Web/InterfaceAgent.pm line 73.\n
[Thu Sep 22 11:09:35 2011] [error] [Thu Sep 22 11:09:35 2011] -e: Can't locate object method "new" via package "Kernel::Config" (perhaps you forgot to load "Kernel::Config"?) at /usr/local/otrs//Kernel/System/Web/InterfacePublic.pm line 70.\n
[Thu Sep 22 11:12:22 2011] [error] [Thu Sep 22 11:12:22 2011] -e: Can't locate object method "new" via package "Kernel::Config" (perhaps you forgot to load "Kernel::Config"?) at /usr/local/otrs//Kernel/System/Web/InterfacePublic.pm line 70.\n
[Thu Sep 22 11:12:24 2011] [error] [Thu Sep 22 11:12:24 2011] -e: Can't locate object method "new" via package "Kernel::Config" (perhaps you forgot to load "Kernel::Config"?) at /usr/local/otrs//Kernel/System/Web/InterfacePublic.pm line 70.\n
[Thu Sep 22 11:12:36 2011] [info] removed PID file /var/run/httpd.pid (pid=71835)
[Thu Sep 22 11:12:36 2011] [notice] caught SIGTERM, shutting down
[Thu Sep 22 11:12:37 2011] [info] mod_unique_id: using ip addr 192.168.0.11
[Thu Sep 22 11:12:37 2011] [info] Init: Seeding PRNG with 144 bytes of entropy
[Thu Sep 22 11:12:37 2011] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Thu Sep 22 11:12:38 2011] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Thu Sep 22 11:12:38 2011] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Sep 22 11:12:38 2011] [info] Init: Initializing (virtual) servers for SSL
[Thu Sep 22 11:12:38 2011] [info] mod_ssl/2.2.21 compiled against Server: Apache/2.2.21, Library: OpenSSL/0.9.8n
PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
[Thu Sep 22 11:12:38 2011] [notice] Digest: generating secret for digest authentication ...
[Thu Sep 22 11:12:38 2011] [notice] Digest: done
[Thu Sep 22 11:12:38 2011] [info] mod_unique_id: using ip addr 192.168.0.11
[Thu Sep 22 11:12:38 2011] [info] Init: Seeding PRNG with 144 bytes of entropy
[Thu Sep 22 11:12:38 2011] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Thu Sep 22 11:12:39 2011] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Thu Sep 22 11:12:39 2011] [info] Init: Initializing (virtual) servers for SSL
[Thu Sep 22 11:12:39 2011] [info] mod_ssl/2.2.21 compiled against Server: Apache/2.2.21, Library: OpenSSL/0.9.8n
[Thu Sep 22 11:12:39 2011] [notice] Apache/2.2.21 (FreeBSD) DAV/2 PHP/5.3.8 with Suhosin-Patch mod_ssl/2.2.21 OpenSSL/0.9.8n mod_perl/2.0.5 Perl/v5.10.1 configured -- resuming normal operations
[Thu Sep 22 11:12:39 2011] [info] Server built: Sep 16 2011 10:41:40
[Thu Sep 22 11:12:39 2011] [debug] prefork.c(1023): AcceptMutex: flock (default: flock)
При этом на странице пишет почти тоже самое:

Код: Выделить всё

locate object method "new" via package "Kernel::Config" (perhaps you forgot to load "Kernel::Config"?) at /usr/local/otrs//Kernel/System/Web/InterfacePublic.pm

Re: FreeBSD 8.1 OTRS+LDAP

Добавлено: 2011-09-23 9:37:35
Sindikat88
Ну вроде все запускается. Теперь при авторизации клиента происходит такая ругань:

Код: Выделить всё

ERROR: OTRS-CGI-10 Perl: 5.10.1 OS: freebsd Time: Fri Sep 23 10:21:15 2011

Message: Unknown MySQL server host 'Kernel' (2)

Traceback (91732):
   Module: Kernel::System::DB::new (v1.127.2.2) Line: 181
   Module: Kernel::System::Web::InterfaceCustomer::Run (v1.56.2.5) Line: 141
   Module: ModPerl::ROOT::ModPerl::Registry::usr_local_otrs_bin_cgi_2dbin_customer_2epl::handler (unknown version) Line: 46
   Module: (eval) (v1.43.2.1) Line: 204
   Module: ModPerl::RegistryCooker::run (v1.43.2.1) Line: 204
   Module: ModPerl::RegistryCooker::default_handler (v1.43.2.1) Line: 170
   Module: ModPerl::Registry::handler (v1.99) Line: 31

[Fri Sep 23 10:21:15 2011] -e: Use of uninitialized value in hash element at /usr/local/otrs//Kernel/Output/HTML/Layout.pm line 3200.
[Fri Sep 23 10:21:33 2011] -e: DBI connect('database=otrs;host=Kernel::Config=HASH(0x80e092918);','Admin',...) failed: Unknown MySQL server host 'Kernel' (2) at /usr/local/otrs//Kernel/System/DB.pm line 210
ERROR: OTRS-CGI-10 Perl: 5.10.1 OS: freebsd Time: Fri Sep 23 10:21:33 2011

Message: Unknown MySQL server host 'Kernel' (2)

Traceback (91736):
   Module: Kernel::System::DB::new (v1.127.2.2) Line: 181
   Module: Kernel::System::Web::InterfaceCustomer::Run (v1.56.2.5) Line: 141
   Module: ModPerl::ROOT::ModPerl::Registry::usr_local_otrs_bin_cgi_2dbin_customer_2epl::handler (unknown version) Line: 46
   Module: (eval) (v1.43.2.1) Line: 204
   Module: ModPerl::RegistryCooker::run (v1.43.2.1) Line: 204
   Module: ModPerl::RegistryCooker::default_handler (v1.43.2.1) Line: 170
   Module: ModPerl::Registry::handler (v1.99) Line: 31

[Fri Sep 23 10:21:33 2011] -e: Use of uninitialized value in hash element at /usr/local/otrs//Kernel/Output/HTML/Layout.pm line 3200.
Мой конфиг:

Код: Выделить всё

    package Kernel::Config;
     
    sub Load {
        my $Self = shift;
        $Self->{'DatabaseHost'} = 'localhost';
        $Self->{'Database'} = 'otrs';
        $Self->{'DatabaseUser'} = 'Admin';
        $Self->{'DatabasePw'} = 'xxx';
        $Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self;";
        $Self->{Home} = '/usr/local/otrs';
        $Self->{'DefaultCharset'} = 'utf-8';
}     
    # Enable LDAP Authentication Sync for Agent #
    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = '192.168.0.2';
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=mydomain,dc=local';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=otrs,cn=Users,dc=mydomain,dc=local';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxx';
     
    # Enable Agent Mapping from LDAP to DB #
    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
    UserFirstname => 'givenName',
    UserLastname => 'sn',
    UserEmail => 'mail',
    UserComment => 'wWWHomePage',
    };
        $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
            'users',
        ];
        # Authenticate customer users against an LDAP backend  #
       $Self->{CustomerUser} = {
          Name => 'Active Directory',
          Module => 'Kernel::System::CustomerUser::LDAP',
          Params => {
             Host => '192.168.0.2',
             BaseDN => 'dc=mydomain,dc=local',
             SSCOPE => 'sub',
             UserDN => 'cn=otrs,cn=Users,dc=mydomain,dc=local',
             UserPw => 'xxx',
           AlwaysFilter => '(&(objectcategory=person)(objectclass=user)(mail=*)(!(description=built-In))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
          SourceCharset => 'utf-8',
          DestCharset   => 'utf-8',
            },
                 ReadOnly => 1,
          CustomerKey => 'sAMAccountName',
          CustomerID => 'mail',
          CustomerUserListFields => ['givenname', 'sn', 'mail'],
          CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
       CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description'],
          CustomerUserNameFields => ['givenname', 'sn'],
                    CustomerUserExcludePrimaryCustomerID => 0,
                 CacheTTL => 120,
          Map => [
             [ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
             [ 'UserFirstname', 'Firstname', 'givenName', 1, 1, 'var' ],
             [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
             [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
             [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
             [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
             [ 'UserPhone', 'Phone', 'telephoneNumber', 1, 0, 'var' ],
             [ 'UserAddress', 'Address', 'postalAddress', 1, 0, 'var' ],
             [ 'UserStreet', 'Street', 'streetAddress', 1, 0, 'var' ],
             [ 'UserCity', 'City', 'l', 1, 0, 'var' ],
             [ 'UserZip', 'ZIP', 'postalCode', 1, 0, 'var' ],
             [ 'UserCountry', 'Country', 'co', 1, 0, 'var' ],
             [ 'UserComment', 'Comment', 'wWWHomePage', 1, 0, 'var' ],
             ],
       };
     
        $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
        $Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.2';
        $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=mydomain,dc=local';
        $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
        $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=otrs,cn=Users,dc=mydomain,dc=local';
        $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxx';
     
    use strict; use warnings;
    use vars qw(@ISA $VERSION);
    $VERSION = qw($Revision: 1.23 $)[1];
     
    use Kernel::Config::Defaults;
    push (@ISA, 'Kernel::Config::Defaults');
     
    1;