Serious problem installing activeCollab
Page: 1, 2
I upload activecolla to our server, and run the installer. The environment check is ok:
* ok — Your PHP version is 4.4.4
* ok — Required extension 'mysql' found
* ok — Required extension 'tokenizer' found
* ok — Required extension 'ctype' found
* ok — Recommended extension 'gd' found
* ok — Recommended extension 'mbstring' found
* ok — Recommended extension 'iconv' found
* ok — cache is writable
* ok — cache/templates is writable
* ok — compile is writable
* ok — config is writable
* ok — logs is writable
* ok — public/avatars is writable
* ok — public/logos is writable
* ok — public/projects_icons is writable
* ok — thumbnails is writable
* ok — upload is writable
* ok — work is writable
But when I hit "Install" I get the following error:
* ok — Database connection has been established successfully
* ok — InnoDB storage engine is supported
* error — SQL error: CREATE TABLE `acx_time_reports` ( `id` smallint(5) unsigned NOT NULL auto_increment, `name` varchar(50) collate utf8_unicode_ci NOT NULL, `group_name` varchar(50) collate utf8_unicode_ci NOT NULL, `is_default` tinyint(1) unsigned NOT NULL, `user_filter` enum('anyone','logged_user','company','selected') collate utf8_unicode_ci NOT NULL default 'anyone', `user_filter_data` text collate utf8_unicode_ci, `billable_filter` enum('all','billable','not_billable','billable_billed','billable_not_billed') collate utf8_unicode_ci NOT NULL default 'all', `date_filter` enum('all','today','last_week','this_week','last_month','this_month','selected_date','selected_range') collate utf8_unicode_ci NOT NULL default 'all', `date_from` date default NULL, `date_to` date default NULL, `sum_by_user` tinyint(1) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB
* error — Failed to import database construction. MySQL said: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'collate utf8_unicode_ci NOT NULL, `group_name` varchar(50) co
Apparently there was a problem with the encoding and/or collation. I tried different enconding methods by chaging the settings in mysql_schema.php and installaion_class.php without luck.
Could anyone help please?
* ok — Your PHP version is 4.4.4
* ok — Required extension 'mysql' found
* ok — Required extension 'tokenizer' found
* ok — Required extension 'ctype' found
* ok — Recommended extension 'gd' found
* ok — Recommended extension 'mbstring' found
* ok — Recommended extension 'iconv' found
* ok — cache is writable
* ok — cache/templates is writable
* ok — compile is writable
* ok — config is writable
* ok — logs is writable
* ok — public/avatars is writable
* ok — public/logos is writable
* ok — public/projects_icons is writable
* ok — thumbnails is writable
* ok — upload is writable
* ok — work is writable
But when I hit "Install" I get the following error:
* ok — Database connection has been established successfully
* ok — InnoDB storage engine is supported
* error — SQL error: CREATE TABLE `acx_time_reports` ( `id` smallint(5) unsigned NOT NULL auto_increment, `name` varchar(50) collate utf8_unicode_ci NOT NULL, `group_name` varchar(50) collate utf8_unicode_ci NOT NULL, `is_default` tinyint(1) unsigned NOT NULL, `user_filter` enum('anyone','logged_user','company','selected') collate utf8_unicode_ci NOT NULL default 'anyone', `user_filter_data` text collate utf8_unicode_ci, `billable_filter` enum('all','billable','not_billable','billable_billed','billable_not_billed') collate utf8_unicode_ci NOT NULL default 'all', `date_filter` enum('all','today','last_week','this_week','last_month','this_month','selected_date','selected_range') collate utf8_unicode_ci NOT NULL default 'all', `date_from` date default NULL, `date_to` date default NULL, `sum_by_user` tinyint(1) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB
* error — Failed to import database construction. MySQL said: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'collate utf8_unicode_ci NOT NULL, `group_name` varchar(50) co
Apparently there was a problem with the encoding and/or collation. I tried different enconding methods by chaging the settings in mysql_schema.php and installaion_class.php without luck.
Could anyone help please?
Ilija Studen:What version of MySQL are you using? You can see it in your phpMyAdmin (outlined on the screenshot attached to this message).
The server's running 4.0.27-standard.
Ilija Studen:MySQL 4.0 does not support field collation. activeCollab installer should detect this and properly prepare queries, but from some reason it doesn't. To fix this open /public/installer/library/Installation.class.php and find this block of code (around like 228):
$mysql_version = mysql_get_server_info($this->database_connection); if($mysql_version && version_compare($mysql_version, '4.1', '>=')) { $this->default_collation = 'utf8_unicode_ci'; $this->default_charset = 'utf8'; $constants['DB_CHARSET'] = 'utf8'; @mysql_query("SET NAMES 'utf8'", $this->database_connection); $tpl->assign('default_collation', 'collate ' . $this->default_collation); $tpl->assign('table_collation', 'COLLATE=' . $this->default_collation); $tpl->assign('default_charset', 'DEFAULT CHARSET=' . $this->default_charset); } else { $constants['DB_CHARSET'] = null; $tpl->assign('default_collation', ''); $tpl->assign('table_collation', ''); $tpl->assign('default_charset', ''); } // if
Replace it with:
$mysql_version = mysql_get_server_info($this->database_connection); $constants['DB_CHARSET'] = null; $tpl->assign('default_collation', ''); $tpl->assign('table_collation', ''); $tpl->assign('default_charset', '');
and run installer again. Please let me know how it went.
PS: If upgrade to MySQL5 is an option please consider it. While activeCollab will work on earlier versions having latest stable version of DB is always a good thing.
Allright, this is the error I now get:
* ok — Database connection has been established successfully
* ok — InnoDB storage engine is supported
* error — SQL error: CREATE TABLE `acx_time_reports` ( `id` smallint(5) unsigned NOT NULL auto_increment, `name` varchar(50) collate utf8_unicode_ci NOT NULL, `group_name` varchar(50) collate utf8_unicode_ci NOT NULL, `is_default` tinyint(1) unsigned NOT NULL, `user_filter` enum('anyone','logged_user','company','selected') collate utf8_unicode_ci NOT NULL default 'anyone', `user_filter_data` text collate utf8_unicode_ci, `billable_filter` enum('all','billable','not_billable','billable_billed','billable_not_billed') collate utf8_unicode_ci NOT NULL default 'all', `date_filter` enum('all','today','last_week','this_week','last_month','this_month','selected_date','selected_range') collate utf8_unicode_ci NOT NULL default 'all', `date_from` date default NULL, `date_to` date default NULL, `sum_by_user` tinyint(1) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB
* error — Failed to import database construction. MySQL said: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'collate utf8_unicode_ci NOT NULL, `group_name` varchar(50) co
Could it be related to en encoding method used by the MySQL server?
Ok. Our client finally upgraded their servers. I run the installer again and get this:
ok — Database connection has been established successfully
warning — InnoDB storage engine is not supported (recommended)
ok — Tables created in 'acdb'. (Executed queries: 27)
ok — Initial data imported into 'acdb'. (Executed queries: 8)
ok — Owner company created
ok — Administrator account created
error — Failed to write config data into config file
I've spoken with them and they'll enable InnoDB today. I'll give it another try, but what worries me is the "failed to write" error. The server is running PHP 4.3.9. Any ideas?
ok — Database connection has been established successfully
warning — InnoDB storage engine is not supported (recommended)
ok — Tables created in 'acdb'. (Executed queries: 27)
ok — Initial data imported into 'acdb'. (Executed queries: 8)
ok — Owner company created
ok — Administrator account created
error — Failed to write config data into config file
I've spoken with them and they'll enable InnoDB today. I'll give it another try, but what worries me is the "failed to write" error. The server is running PHP 4.3.9. Any ideas?



