Kirjoittaja Aihe: auth_mysql ei löydä käyttäjää/segfaulttaa  (Luettu 620 kertaa)

Jussi Bergström

  • Käyttäjä
  • Viestejä: 1
    • Profiili
Pitkäaikaisena Fedora-käyttäjänä päätin repäistä, ja niinpä asensinkin vähän aikaa sitten uudelle serverilleni Ubuntu 9.04:n. Kaikki on sujunut oikeastaan kuin tanssi - yhtä pientä mutta päänraavintaa aiheuttavaa ongelmaa lukuunottamatta.

Asiaan liittyvien osasten kokoonpano on seuraavanlainen:
mysql-server-5.0-5.1.30really5.0.75-0ubuntu10.2_amd64
libapache2-mod-auth-mysql-4.3.9-11_amd64
apache2-mpm-prefork-2.2.11-2ubuntu2.2_amd64
libapache2-mod-php5-5.2.6.dfsg.1-3ubuntu4.1_amd64 (ja muu PHP-kama samalla versiolla).

Varsinaisesti ongelma ei ole erityisen akuutti, mutta ihan periaatteessa haluaisin saada tämänkin ratkaistua :) Eräässä web-kehitysprojektissa on tarpeen käyttää Apachen auth_mysql-moduulia käyttäjien autentikointiin ja haluaisin testata sitä (sekä kehittää sivustoa) omalla serverilläni. Fedorassa olen tottunut naputtelemaan suojatun hakemiston .htaccessin jotakuinkin seuraavaan tapaan:

Koodia: [Valitse]
AuthType Basic
AuthName "Testi"

AuthMySQLEnable On
AuthMySQLHost localhost
AuthMySQLUser user
AuthMySQLPassword password
AuthMySQLDB database

AuthMySQLUserTable users
AuthMySQLNameField username
AuthMySQLPasswordField password

AuthMySQLPwEncryption md5

Require valid-user

Ubuntussa tulevan moduulin komennot ovat hieman erilaisia (onkohan kyseessä jopa kokonaan eri moduuli: Fedoran moduulin versio kun on luokkaa 3.0 ja Ubuntun 4.9). Siispä käytössäni on nyt testailua varten vastaava .htaccess:

Koodia: [Valitse]
AuthType Basic
AuthName "Testi"
AuthUserFile /dev/null

AuthBasicAuthoritative Off
AuthMySQL On
AuthMySQL_Authoritative On
AuthMySQL_Host localhost
AuthMySQL_User user
AuthMySQL_Password password
AuthMySQL_DB database

AuthMySQL_Password_Table users
AuthMySQL_Username_Field username
AuthMySQL_Password_Field password

AuthMySQL_Encryption_Types PHP_MD5

Require valid-user

Tämä ei toimi lainkaan. Toimimattomuus vaihtelee hieman sen mukaan, mitä tiedoston rivejä on kommentoitu pois.

1. Jos AuthBasicAuthoritative Off on asetettu, Apache segfaulttaa (loki: [Wed Jul 15 22:34:47 2009] [notice] child pid 30732 exit signal Segmentation fault (11))
2. Jos AuthBasicAuthoritative Off on pois käytöstä, selain pyytää käyttäjätunnusta ja salasanaa ikuisesti. Lokiin ilmestyy rivi käyttäjän puuttumisesta: [Wed Jul 15 22:35:15 2009] [error] [client aaa.bbb.ccc.ddd] user test not found: /authtest/

Mm. tahallaan laitettu väärä tietokanta tai serveri aiheuttavat kakkostapauksessa täsmälleen saman lopputuloksen, mikä mielestäni viittaa siihen, ettei Apache edes yritä käyttää auth_mysql:ää ilman AuthBasicAuthoritative Off -asetusta. Jos näin todella on, oikeana ongelmana on siis segfaulttaaminen.

Onko kenkään törmännyt vastaavanlaiseen taikka löytyykö Ubuntun Apachen paremmin tuntevilta neuvoja tilanteen ratkaisemiseen?