Página 1 de 1

Problema Con Cracker Tracker Y Base De Datos Postgres

Publicado: 19 Sep 2007, 17:25
por tk421
URL: www.automoto-soria.com
Plantilla(s) usuada(s): Subsilver
MODs instalados: The Humanizer, Antispam 1.03
Versión de phpBB: 2.0.21
Nombre y versión del MOD: Cracker Tracker Professional V504 es
Servidor: propio (Linux con Apache + PHP + PostgresSQL
Si es una actualización desde otra versión: no es actualizacion


No consigo instalar el Cracker Tracker en un phpBB que funciona con base de datos PostgreSQL

Alguien sabe algo del tema?

Re: Problema Con Cracker Tracker Y Base De Datos Postgres

Publicado: 25 Sep 2007, 18:46
por tk421
Bueno, pues ya he solucionado, al menos la parte de instalación. Lo que he hecho es "saltarne" la ejecucion del install.php y generar mi propio escript, que he ejecutado directamente n la base de datos. Lo he tenido que convertir, asi que aqui dejo el código que he ejecutado la final.

Código: Seleccionar todo

BEGIN;

ALTER TABLE phpbb_users ADD COLUMN ct_search_time INTEGER NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_search_count SMALLINT NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_last_mail INTEGER NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_last_post INTEGER NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_post_counter SMALLINT NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_last_pw_reset INTEGER NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_enable_ip_warn SMALLINT NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_last_used_ip VARCHAR( 16 ) NULL DEFAULT '0.0.0.0';
ALTER TABLE phpbb_users ADD COLUMN ct_last_ip VARCHAR( 16 ) NULL DEFAULT '0.0.0.0';
ALTER TABLE phpbb_users ADD COLUMN ct_login_count SMALLINT NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_login_vconfirm SMALLINT NULL DEFAULT 0;
ALTER TABLE phpbb_users ADD COLUMN ct_last_pw_change INTEGER NULL DEFAULT 1;
ALTER TABLE phpbb_users ADD COLUMN ct_global_msg_read SMALLINT NULL DEFAULT 0;
ALTER TABLE phpbb_users ADD COLUMN ct_miserable_user SMALLINT NULL DEFAULT 0;

CREATE TABLE phpbb_ctracker_config (
			ct_config_name varchar(255) NOT NULL,
			ct_config_value varchar(255) NOT NULL,
			PRIMARY KEY  (ct_config_name)
			);
			
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('ipblock_enabled', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('ipblock_logsize', '100');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('auto_recovery', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('vconfirm_guest', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('autoban_mails', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('detect_misconfiguration', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('search_time_guest', '30');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('search_time_user', '20');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('search_count_guest', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('search_count_user', '4');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('massmail_protection', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('reg_protection', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('reg_blocktime', '30');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('reg_lastip', '0.0.0.0');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pwreset_time', '20');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('massmail_time', '20');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('spammer_time', '30');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('spammer_postcount', '4');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('spammer_blockmode', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('loginfeature', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pw_reset_feature', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('reg_last_reg', '1155944976');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('login_history', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('login_history_count', '10');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('login_ip_check', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pw_validity', '30');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pw_complex_min', '4');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pw_complex_mode', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pw_control', '0');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('pw_complex', '0');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('last_file_scan', '1156000091');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('last_checksum_scan', '1156000082');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('logsize_logins', '100');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('logsize_spammer', '100');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('reg_ip_scan', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('global_message', 'Hello world!');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('global_message_type', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('logincount', '2');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('search_feature_enabled', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('spam_attack_boost', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('spam_keyword_det', '1');
INSERT INTO phpbb_ctracker_config (ct_config_name, ct_config_value) VALUES ('footer_layout', '3');

CREATE TABLE phpbb_ctracker_filechk (
			filepath text,
			hash varchar(32) default NULL
			);

CREATE TABLE phpbb_ctracker_filescanner (
			id smallint NOT NULL,
			filepath text,
			safety smallint NOT NULL default '0',
			PRIMARY KEY  (id)
			);
			
CREATE SEQUENCE phpbb_ctracker_id
    START WITH 1
    INCREMENT BY 33
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE TABLE phpbb_ctracker_ipblocker (
			id smallint DEFAULT nextval('phpbb_ctracker_id') NOT NULL,
			ct_blocker_value varchar(250) default NULL,
			PRIMARY KEY  (id)
			);
			
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (1, '*WebStripper*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (2, '*NetMechanic*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (3, '*CherryPicker*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (4, '*EmailCollector*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (5, '*EmailSiphon*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (6, '*WebBandit*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (7, '*EmailWolf*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (8, '*ExtractorPro*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (9, '*SiteSnagger*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (10, '*CheeseBot*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (11, '*ia_archiver*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (12, '*Website Quester*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (13, '*WebZip*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (14, '*moget*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (15, '*WebSauger*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (16, '*WebCopier*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (17, '*WWW-Collector*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (18, '*InfoNaviRobot*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (19, '*Harvest*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (20, '*Bullseye*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (21, '*LinkWalker*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (22, '*LinkextractorPro*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (23, '*WebProxy*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (24, '*BlowFish*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (25, '*WebEnhancer*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (26, '*TightTwatBot*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (27, '*LinkScan*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (28, '*WebDownloader*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (29, 'lwp');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (30, '*BruteForce*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (31, 'lwp-*');
INSERT INTO phpbb_ctracker_ipblocker (id, ct_blocker_value) VALUES (32, '*anonym*');

CREATE TABLE phpbb_ctracker_loginhistory (
			ct_user_id integer default NULL,
			ct_login_ip varchar(16) default NULL,
			ct_login_time integer NOT NULL default '0'
			);

COMMIT;
También he tenido que hacer algunas modificaciones para que me permita modificar la configuración del foro, y se que me quedan más pendientes, pero de momento solo pongo la que he tenido que realizar por el momento.

Concretamente, he tenido problemas en el archivo ctracker\classes\class_ct_adminfunctions.php, en la función recover_configuration(), ya que postgres no soporta la sentencia DROP TABLE IF EXISTS. Lo que he hecho, es primero, crear una funcion plp/pgsql que es la siguiente:

Código: Seleccionar todo

CREATE OR REPLACE FUNCTION "public"."drop_table_if_exists" (text) RETURNS boolean AS
$body$
DECLARE
   rec record;
BEGIN

   SELECT INTO rec oid FROM pg_class WHERE relname = $1::name;


   IF FOUND THEN
     EXECUTE 'DROP TABLE ' || $1 ;
     RETURN true;
   END IF;


   RETURN false;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
Y luego, he adaptado la función completa. Ha quedado así:

Código: Seleccionar todo

function recover_configuration()
	{
		global $db, $lang;

		// Drop existing Backup Table
		//$sql = 'DROP TABLE IF EXISTS ' . CTRACKER_BACKUP;
		
		$sql = "SELECT drop_table_if_exists('" . CTRACKER_BACKUP . "')";
		if ( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, $lang['ctracker_error_database_op'], '', __LINE__, __FILE__, $sql);
		}

		// Create Backup table
		$sql = "CREATE TABLE " . CTRACKER_BACKUP . " (
					config_name varchar( 255 ) NOT NULL ,
					config_value varchar( 255 ) NOT NULL ,
					PRIMARY KEY ( config_name )
					)";
		if ( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, $lang['ctracker_error_database_op'], '', __LINE__, __FILE__, $sql);
		}

		// Insert config data
		$sql = 'SELECT * FROM ' . CONFIG_TABLE;

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ctracker_error_loading_config'], '', __LINE__, __FILE__, $sql);
		}

		while ( $row = $db->sql_fetchrow($result) )
		{
			$row['config_name'] = addslashes($row['config_name']);
			$row['config_value'] = addslashes($row['config_value']);

			$sql2 = "INSERT INTO " . CTRACKER_BACKUP . " (config_name, config_value) VALUES ('". $row['config_name'] . "', '".  $row['config_value'] . "')";
			if ( !$result2 = $db->sql_query($sql2) )
			{
				message_die(GENERAL_ERROR, $lang['ctracker_error_database_op'], '', __LINE__, __FILE__, $sql2);
			}
		}

		// Insert Backup Timestamp
		$sql = 'INSERT INTO ' . CTRACKER_BACKUP . ' (config_name, config_value) VALUES (\'ct_last_backup\', \'' . time() . '\')';
		if ( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, $lang['ctracker_error_database_op'], '', __LINE__, __FILE__, $sql);
		}
	}
Bueno, cuando siga probando y sacando nuevos fallos y sus correcciones los iré publicando