Oto mój fragment .htaccess odpowiedzialny za to zadanie:
AuthName "Authorized access only!" AuthType Basic AuthBasicAuthoritative Off AuthMYSQLEnable on AuthMySQLUser apache AuthMySQLPassword mojetajnehaslo AuthMySQLDB lms AuthMySQLHost localhost AuthMySQLUserTable users AuthMySQLNameField login AuthMySQLPasswordField passwd AuthMySQLPwEncryption crypt AuthMySQLGroupField rights AuthMySQLUserCondition "users.deleted = '0'" AuthUserFile /dev/null require valid-user
Jednak raz na jakiś czas jestem pytany ponownie o login i hasło mimo wykonania tej czynności już raz poprawnie, mogę np anulować ten proces i wracam do LMS np z brakiem kilku rysunków. Tymczasem w logach apache:
... MySQL ERROR: Lost connection to MySQL server during query: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/customer.gif, referer: http://admin.domain.pl/lms/? ... MySQL ERROR: Lost connection to MySQL server at 'reading initial communication packet', system error: 0, referer: http://a dmin.domain.pl/lms/? ... MySQL user admin not found: /lms/img/users.gif, referer: http://admin.domain.pl/lms/?
Problem podobno jest znany i wiele osób godzi się na to ciesząc się, że nieaktualizowany od wieków moduł jeszcze jako tako działa. Mnie to drażni, trafiłem na mod_auth_external, który może realizować to zadanie, mam jednak problem z porównaniem hasła, trzeba tutaj utworzyć "program" sprawdzający hasło, nie mogę zamienić to wpisywane przy uwierzytelnianiu na crypt pola passwd w lms.users. Ktoś wie jak to uzyskać?
W jakiej konfiguracji to Tobie działa? Mój zestaw: PHP 5.3.8-pl0-gentoo (cli) (built: Aug 26 2011 11:22:38) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Server version: Apache/2.2.20 (Unix) Server built: Sep 5 2011 08:31:02
www-apache/mod_auth_mysql-3.0.0-r2
Jakiś czas temu też z tym walczyłem (ale używam na mniejszą skalę do statystyk WWW dla klientów za to też na Gentoo :). O ile pamiętam, to ten wpis zakończył zabawe: set-variable =wait_timeout=600
Ale głowy nie dam sobie uciąć :) Sprawdź też limity ilości połączeń (max_connections itd.)