el problema es que no soy capaz de compilar el módulo de apache mod_auth_mysql en la versión 2.2.13 de apache, en windows xp.
He seguido los pasos de algunas versiones de módulo, pero tengo el mismo error con varias versiones que he probado.
Para compilar utilizo Microsoft Express Visual C++ 2005, con el SDK del 2008 (necesario) y habiendo compilado previamente mysql, para poder enlazar las librerias necesarias por este módulo.
Los errores que me dan son:
Código:
y el codigo que provoca el error es:1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(511) : warning C4013: 'APR_XtOffsetOf' sin definir; se supone que extern devuelve como resultado int 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(511) : error C2143: error de sintaxis : falta ')' delante de 'tipo' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(515) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(519) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(523) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(527) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(531) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(535) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(539) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(543) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(547) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(551) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(555) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(559) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(563) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(567) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(571) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(575) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(579) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(583) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(587) : error C2059: error de sintaxis : ',' 1>c:\httpd-2.2.13\modules\mod_auth_mysql-2.9.0\mod_auth_mysql.c(590) : error C2059: error de sintaxis : '}'
Código:
No se si es este el foro más apropiado para la pregunta, pero como esta relacionado con Apache lo he situado aquí.#ifdef APACHE2 static command_rec mysql_auth_cmds[] = { AP_INIT_TAKE1("AuthMySQLHost", ap_set_string_slot, ((void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlhost)), OR_AUTHCFG, "mysql server host name"), AP_INIT_TAKE1("AuthMySQLPort", ap_set_int_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlport), OR_AUTHCFG, "mysql server port number"), AP_INIT_TAKE1("AuthMySQLSocket", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlsocket), OR_AUTHCFG, "mysql server socket path"), AP_INIT_TAKE1("AuthMySQLUser", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqluser), OR_AUTHCFG, "mysql server user name"), AP_INIT_TAKE1("AuthMySQLPassword", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlpasswd), OR_AUTHCFG, "mysql server user password"), AP_INIT_TAKE1("AuthMySQLDB", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlDB), OR_AUTHCFG, "mysql database name"), AP_INIT_TAKE1("AuthMySQLUserTable", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlpwtable), OR_AUTHCFG, "mysql user table name"), AP_INIT_TAKE1("AuthMySQLGroupTable", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlgrptable), OR_AUTHCFG, "mysql group table name"), AP_INIT_TAKE1("AuthMySQLNameField", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlNameField), OR_AUTHCFG, "mysql User ID field name within table"), AP_INIT_TAKE1("AuthMySQLGroupField", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlGroupField), OR_AUTHCFG, "mysql Group field name within table"), AP_INIT_TAKE1("AuthMySQLPasswordField", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlPasswordField), OR_AUTHCFG, "mysql Password field name within table"), AP_INIT_TAKE1("AuthMySQLPwEncryption", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlEncryptionField), OR_AUTHCFG, "mysql password encryption method"), AP_INIT_TAKE1("AuthMySQLSaltField", ap_set_string_slot, (void*) APR_XtOffsetOf(mysql_auth_config_rec, mysqlSaltField), OR_AUTHCFG, "mysql salfe field name within table"), AP_INIT_FLAG("AuthMySQLKeepAlive", ap_set_flag_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlKeepAlive), OR_AUTHCFG, "mysql connection kept open across requests if On"), AP_INIT_FLAG("AuthMySQLAuthoritative", ap_set_flag_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlAuthoritative), OR_AUTHCFG, "mysql lookup is authoritative if On"), AP_INIT_FLAG("AuthMySQLNoPasswd", ap_set_flag_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlNoPasswd), OR_AUTHCFG, "If On, only check if user exists; ignore password"), AP_INIT_FLAG("AuthMySQLEnable", ap_set_flag_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlEnable), OR_AUTHCFG, "enable mysql authorization"), AP_INIT_TAKE1("AuthMySQLUserCondition", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlUserCondition), OR_AUTHCFG, "condition to add to user where-clause"), AP_INIT_TAKE1("AuthMySQLGroupCondition", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlGroupCondition), OR_AUTHCFG, "condition to add to group where-clause"), AP_INIT_TAKE1("AuthMySQLCharacterSet", ap_set_string_slot, (void *) APR_XtOffsetOf(mysql_auth_config_rec, mysqlCharacterSet), OR_AUTHCFG, "mysql character set to be used"), { NULL } };
Espero que alguien pueda resolverme el problema porque me voy a volver loco. Llevo 1 semana intentando compilar este maldito módulo.
Quizá sea porque no es posible usar el módulo en windows con esta versión de apache. Asi que si alguien sabe que por favor me lo diga.
También agradecería si alguien puedira decirme si existe otro módulo similar, para utilizar autentificación de usuarios con base de datos mysql, es que he visto algo del módulo mod_authn_dbd pero explican con un ejemplo de oracle y soy un pcoo novato en esto y no lo entiendo muy bien.
Un saludo, gracias!!