Roundcube Community Forum

Recycle Bin => Recycle Bin => Topic started by: theTerran on September 09, 2006, 09:13:59 PM

Title: trouble with installation on Win32/Apache
Post by: theTerran on September 09, 2006, 09:13:59 PM
Hello all,

I've seen references to RoundCube for a few months on the hMailServer forum (, and decided to give it a try. After carefully following the instructions and searching the forum and Google, I still can't get an index/logon page to appear; instead I see this each time:


Error No. 1f4)

This is referenced a couple of times in the forum, but resolution seems to be correcting the database string, and I'm pretty sure mine is right:

$rcmail_config['db_dsnw'] = 'mysql://roundcube:mypass@localhost/roundcubemail';

My environment is Windows Server 2003, MySQL 5.0.24a (Community Edition), Apache 2.0.59, and PHP5 (5.1.6). The roundcubemail database has been created in MySQL, the user roundcube has been granted all privileges to this database, and all objects have been created using the mysql5 script provided. I have configured as an Apache VirtualHost.

The only error I have seen is in the Apache error log where the following is recorded:

[Sat Sep 09 20:14:04 2006] [error] [client] (OS 5)Access is denied. : access to /program/style.css denied, referer:

This file, /program/style.css, was not included in the downloaded roundcube archive.

Can anyone offer suggestions, or is there any other information I might provide that could assist in diagnosis?

Thank you,

Terran Enterprises Corp
Title: Re: trouble with installation on Win32/Apache
Post by: bpat1434 on September 09, 2006, 11:32:39 PM
Typically the server is the issue. Do a few things for me:

1.) Check that the mySQL server is truly running on "localhost"
2.) Try using '' instead of 'localhost' in the dsnw string
3.) Check that the mySQL server is reachable from within a PHP script

Also, can we see your config files? They'd surely help us debug some other issues you may be having that may cause this.
Title: Re: trouble with installation on Win32/Apache
Post by: theTerran on September 10, 2006, 06:26:14 AM
Hello Brett,

Thanks for the reply. Here are my results and the answers to your questions:

1) MySQL is truly running on localhost at the default port of 3306. I know, you had to ask...
2) I have tried using in to no avail. Set back to localhost.
3) MySQL server is reachable using both SQLyog on localhost and phpMyAdmin on the same Apache VirtualHost. Both allow login and insert/update/delete of data in roundcubemail database (I inserted, updated and deleted a record as user roundcube in the session table to make sure everything worked and permissions were correct.)

Here are my config files (passwords changed to suit paranoia):
Code: [Select]

 | Configuration file for database access                |
 |                                    |
 | This file is part of the RoundCube Webmail client           |
 | Copyright (C) 2005, RoundCube Dev. - Switzerland           |
 | Licensed under the GNU GPL                      |
 |                                    |


$rcmail_config = array();

// PEAR database DSN for read/write operations
// format is db_provider://user:password@host/databse
// currentyl suported db_providers: mysql, sqlite

$rcmail_config['db_dsnw'] = 'mysql://roundcube:mypass@localhost/roundcubemail';
// postgres example: 'pgsql://roundcube:pass@localhost/roundcubemail';
// sqlite example: 'sqlite://./sqlite.db?mode=0646';

// PEAR database DSN for read only operations (if empty write database will be used)
// useful for database replication
$rcmail_config['db_dsnr'] = '';

// database backend to use (only db or mdb2 are supported)
$rcmail_config['db_backend'] = 'db';

// maximum length of a query in bytes
$rcmail_config['db_max_length'] = 512000// 500K

// use persistent db-connections
$rcmail_config['db_persistent'] = TRUE;

// you can define specific table names used to store webmail data
$rcmail_config['db_table_users'] = 'users';

$rcmail_config['db_table_identities'] = 'identities';

$rcmail_config['db_table_contacts'] = 'contacts';

$rcmail_config['db_table_session'] = 'session';

$rcmail_config['db_table_cache'] = 'cache';

$rcmail_config['db_table_messages'] = 'messages';

// you can define specific sequence names used in PostgreSQL
$rcmail_config['db_sequence_users'] = 'user_ids';

$rcmail_config['db_sequence_identities'] = 'identity_ids';

$rcmail_config['db_sequence_contacts'] = 'contact_ids';

$rcmail_config['db_sequence_cache'] = 'cache_ids';

$rcmail_config['db_sequence_messages'] = 'message_ids';

// end db config file
Code: [Select]

 | Main configuration file                        |
 |                                    |
 | This file is part of the RoundCube Webmail client           |
 | Copyright (C) 2005, RoundCube Dev. - Switzerland           |
 | Licensed under the GNU GPL                      |
 |                                    |


$rcmail_config = array();

// system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace
$rcmail_config['debug_level'] = 1;

// enable caching of messages and mailbox data in the local database.
// this is recommended if the IMAP server does not run on the same machine
$rcmail_config['enable_caching'] = TRUE;

// lifetime of message cache
// possible units: s, m, h, d, w
$rcmail_config['message_cache_lifetime'] = '10d';

// automatically create a new RoundCube user when log-in the first time.
// a new user will be created once the IMAP login succeeds.
// set to false if only registered users can use this service
$rcmail_config['auto_create_user'] = TRUE;

// the mail host chosen to perform the log-in
// leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL connection, enter ssl://hostname:993
$rcmail_config['default_host'] = '';

// TCP port used for IMAP connections
$rcmail_config['default_port'] = 143;

// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to support multiple hosts
$rcmail_config['username_domain'] = '';

// This domain will be used to form e-mail addresses of new users
// Specify an array with 'host' => 'domain' values to support multiple hosts
$rcmail_config['mail_domain'] = '';

// Path to a virtuser table file to resolve user names and e-mail addresses
$rcmail_config['virtuser_file'] = '';

// Query to resolve user names and e-mail addresses from the database
// %u will be replaced with the current username for login.
// The query should select the user's e-mail address as first col
$rcmail_config['virtuser_query'] = '';

// use this host for sending mails.
// to use SSL connection, set ssl://
// if left blank, the PHP mail() function is used
$rcmail_config['smtp_server'] = '';

// SMTP port (default is 25; 465 for SSL)
$rcmail_config['smtp_port'] = 25;

// SMTP username (if required) if you use %u as the username RoundCube
// will use the current username for login
$rcmail_config['smtp_user'] = '';

// SMTP password (if required) if you use %p as the password RoundCube
// will use the current user's password for login
$rcmail_config['smtp_pass'] = '';

// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
// best server supported one)
$rcmail_config['smtp_auth_type'] = '';

// Log sent messages
$rcmail_config['smtp_log'] = TRUE;

// these cols are shown in the message list
// available cols are: subject, from, to, cc, replyto, date, size, encoding
$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size');

// relative path to the skin folder
$rcmail_config['skin_path'] = 'skins/default/';

// use this folder to store temp files (must be writebale for apache user)
$rcmail_config['temp_dir'] = 'temp/';

// use this folder to store log files (must be writebale for apache user)
$rcmail_config['log_dir'] = 'logs/';

// session lifetime in minutes
$rcmail_config['session_lifetime'] = 30;

// check client IP in session athorization
$rcmail_config['ip_check'] = TRUE;

// this key is used to encrypt the users imap password which is stored
// in the session record (and the client cookie if remember password is enabled).
// please provide a string of exactly 24 chars.
$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';

// the default locale setting
$rcmail_config['locale_string'] = 'en';

// use this format for short date display
$rcmail_config['date_short'] = 'D H:i';

// use this format for detailed date/time formatting
$rcmail_config['date_long'] = 'd.m.Y H:i';

// add this user-agent to message headers when sending
$rcmail_config['useragent'] = 'RoundCube Webmail/0.1b';

// use this name to compose page titles
$rcmail_config['product_name'] = 'RoundCube Webmail';

// only list folders within this path
$rcmail_config['imap_root'] = '';

// store draft message is this mailbox
// leave blank if draft messages should not be stored
$rcmail_config['drafts_mbox'] = 'Drafts';

// store spam messages in this mailbox
$rcmail_config['junk_mbox'] = 'Junk';

// store sent message is this mailbox
// leave blank if sent messages should not be stored
$rcmail_config['sent_mbox'] = 'Sent';

// move messages to this folder when deleting them
// leave blank if they should be deleted directly
$rcmail_config['trash_mbox'] = 'Trash';

// display these folders separately in the mailbox list.
// these folders will automatically be created if they do not exist
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');

// protect the default folders from renames, deletes, and subscription changes
$rcmail_config['protect_default_folders'] = TRUE;

// Set TRUE if deleted messages should not be displayed
// This will make the application run slower
$rcmail_config['skip_deleted'] = FALSE;

// Set true to Mark deleted messages as read as well as deleted
// False means that a message's read status is not affected by marking it as deleted
$rcmail_config['read_when_deleted'] = TRUE;

// When a Trash folder is not present and a message is deleted, flag
// the message for deletion rather than deleting it immediately. Setting this to
// false causes deleted messages to be permanantly removed if there is no Trash folder
$rcmail_config['flag_for_deletion'] = TRUE;

// Make use of the built-in spell checker. It is based on GoogieSpell
// which means that the message content will be sent to Google in order to check spelling
$rcmail_config['enable_spellcheck'] = TRUE;

// path to a text file which will be added to each sent message
// paths are relative to the RoundCube root folder
$rcmail_config['generic_message_footer'] = '';

// this string is used as a delimiter for message headers when sending
// leave empty for auto-detection
$rcmail_config['mail_header_delimiter'] = NULL;

// in order to enable public ldap search, create a config array
// like the Verisign example below. if you would like to test,
// simply uncomment the Verisign example.
 * example config for Verisign directory
 * $rcmail_config['ldap_public']['Verisign'] = array('hosts'     => array(''),
 *                          'port'     => 389,
 *                          'base_dn'    => '',
 *                          'search_fields' => array('Email' => 'mail', 'Name' => 'cn'),
 *                          'name_field'  => 'cn',
 *                          'mail_field'  => 'mail',
 *                          'scope'     => 'sub',
 *                          'fuzzy_search' => 0);

// try to load host-specific configuration
$rcmail_config['include_host_config'] = FALSE;

/***** these settings can be overwritten by user's preferences *****/

// show up to X items in list view
$rcmail_config['pagesize'] = 40;

// use this timezone to display date/time
$rcmail_config['timezone'] = -5;

// daylight savings are On
$rcmail_config['dst_active'] = TRUE;

// prefer displaying HTML messages
$rcmail_config['prefer_html'] = TRUE;

// show pretty dates as standard
$rcmail_config['prettydate'] = TRUE;

// default sort col
$rcmail_config['message_sort_col'] = 'date';

// default sort order
$rcmail_config['message_sort_order'] = 'DESC';

// list of configuration option names that need to be available in Javascript.
$rcmail_config['javascript_config'] = array('read_when_deleted', 'flag_for_deletion');

// end of config file
Title: Re: trouble with installation on Win32/Apache
Post by: theTerran on September 10, 2006, 06:32:00 AM
Hi Brett,

Thankfully I have discovered (through sheer dumb luck) how to get the index/login page to display, though the solution is just as puzzling as the problem; also I still have trouble and hope you will continue to assist with my troubleshooting.

I had configured RoundCube so its files were in the root of the subdomain "roundcube", i.e., configured with a dedicated Apache VirtualHost entry. This works with other webmail packages I have tried, but for some reason did not work with RoundCube. The solution is to place all RoundCube files in a subdirectory instead; using works just fine. Very weird!

Now I have the login page, but unfortunately cannot log on. The account I am using has been successfully tested with IMAP in Thunderbird, and works perfectly.

The mail server is hMailServer, which requires the full email address as username. Could this be an issue?

Thanks for your feedback. Hope to have this resolved soon!


Terran Enterprises Corp
Title: Re: trouble with installation on Win32/Apache
Post by: bpat1434 on September 10, 2006, 09:51:45 AM
In the file, change the debug level to "8" and see what that gives us.

As for using a sub-domain vs a sub directory, I think the issue may be that in windows installations, or at least for IIS, all the relative references (./) need to be a little more defined like: ./index.php. Not sure if that can cause it too. Or if you are missing something in your .htaccess or httpd.conf file that disallows .htaccess in the root of the vhost.
Title: Re: trouble with installation on Win32/Apache
Post by: theTerran on September 10, 2006, 04:51:08 PM
Really shouldn't have been working on this at 6am when I'd been up all night. :P

My development site is at, while the production site is at; I had mistakenly put in the file...

Took this out and entered on the logon page. Still got just "login failed" message in the browser, but the error log now recorded the following:

[10-Sep-2006 16:34:10 -0400] DB Error: DB Error: unknown error Query: INSERT INTO users (created, last_login, username, mail_host, alias, language) VALUES (now(), now(), '', '', '', 'en_US') [nativecode=1364 ** Field 'preferences' doesn't have a default value] in ..\data\www\\htdocs\roundcube\program\include\ on line 479
[10-Sep-2006 16:34:10 -0400] PHP Error: Failed to create new user in ..\data\www\\htdocs\roundcube\program\include\ on line 584

Following this, I set debug level to 8 and tried again. Oddly, this resulted in nothing being logged, but I did have a new message appear at the top of the screen in the browser:

* CAPABILITY IMAP4 IMAP4rev1 QUOTA SORT cp01 OK CAPABILITY completed Tried PLAIN: Resource id #32

Then I put back in; same result: information on screen, nothing logged. Then set debug level to 1 again: same DB error in log.

To test the SQL statement, I logged in to MySQL (using phpMyAdmin) as user roundcube to database roundcubemail and executed the SQL statement recorded in the log. This let me see that the message about "preferences" was an indication that the field is required, no value was passed, and there is no default value -- in other words, a value for preferences must be given when creating a record in the users table.

Is this something missing in my configuration? I don't see anything in that should effect this...

Thank you,

Terran Enterprises Corp
Title: Re: trouble with installation on Win32/Apache
Post by: ntchun on September 10, 2006, 05:10:53 PM
i having the same problem but i solve it by chaning the database value below is my post tech u howto setup roundcube on windows enviroment. hope can help u a bit
Title: Re: trouble with installation on Win32/Apache
Post by: bpat1434 on September 10, 2006, 09:38:00 PM
The mySQL 5 file for some odd reason requires non null values. Simply just change the alias and other items to "null" and they'll not be required, and the query should validate.
Title: Re: trouble with installation on Win32/Apache
Post by: theTerran on September 10, 2006, 10:55:48 PM

I thought of trying this but that would change the default behavior. As this is a beta product I hoped this issue could be corrected at the source so users of future versions will not have this problem.

Just for fun I allowed null values on the preferences column of the users table and found that I could log in. Like yourself, I then saw an error when the SQL query to create a new identity failed. This was also due to a NOT NULL constraint on columns in the database. Changing several columns there allowed this script to succeed as well.


I'd like to submit a corrected mySQL 5 script so these problems are resolved for future users. Also I would like to submit suggested minor changes for the default behavior when creating users and identities. How would I best go about this? Should I submit these in the Requests forum?

Thanks to both of you for supporting a new user!

Title: Re: trouble with installation on Win32/Apache
Post by: bpat1434 on September 11, 2006, 08:28:28 AM
Changes are best submitted via the trac system at (
Title: Instal help me
Post by: tomek0013 on September 14, 2006, 01:41:35 AM
I am greeting.
I unfortunately don't understand what it is marking and as it to place:
? $rcmail_config['db_dsnw'] = 'mysql://roundcube:mypass@localhost/roundcubemail';

What it has of MYSQL common to the base?
The server is on? localhost?

I am asking for the help because for me nothing is leaving

I am greeting
Title: Re: trouble with installation on Win32/Apache
Post by: bpat1434 on September 14, 2006, 08:35:44 AM
Hi Tomasz.

The mySQL string is constructed as follows:


db_type can be any of the following:

Username and password are the mySQL username and password required to connect and write/read/modify/update/insert to the database you specify.

The mysql_server is either the server location (IP address), server domain ( or relative path (localhost) to the mySQL server. Some people have more success with using in place of localhost, but they're the same thing.