Roundcube: Difference between revisions

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
description
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
<hide>
{{#set:page type|article}}
[[page type::article]]
{{#set:thing type|webmail client}}
[[thing type::webmail client]]
[[category:software]]
[[category:software]]
</hide>
==About==
==About==
[[Roundcube]] is a [[webmail client]] using the [[LAMP stack]].{{seed}}
[[Roundcube]] (RC) is a [[webmail client]] that runs under the [[LAMP stack]].
===Files===
===Files===
{|
When installed via {{l/cmd|apt}}, this is where Roundcube's files end up:
{| class="wikitable sortable"
|-
|-
! path !! description
! path !! description
|-
|-
| /etc/roundcube
| valign=top | <code>/etc/roundcube/</code>
| global configuration stuff
| global configuration stuff:
* <code>defaults.inc.php</code>: must be present; should not be edited
* <code>config.inc.php</code>: must be present, and should be edited to contain local settings
* <code>main.inc.php</code>:
** old name for <code>config.inc.php</code>
** RC will load this if <code>config.inc.php</code> is not found
** should not be present in new installations
* <code>debian-db.php</code>: database credentials for RC installs in [[Debian]]-based systems
|-
|-
| /usr/share/roundcube
| valign=top |  <code>/usr/share/roundcube/</code>
| application code
| application code
|-
|-
| /var/lib/roundcube
| valign=top | <code>/var/lib/roundcube/</code>
| installation image -- mostly links to pieces of the other two
| installation image -- about half of the top folders here are just links:
* <code>config/</code> &rarr; <code>/etc/roundcube/</code>
* <code>logs/</code> &rarr; <code>../../log/roundcube/</code> (<code>/var/log/roundcube</code>)
* <code>program/</code> &rarr; <code>/usr/share/roundcube/program/</code>
* <code>SQL/</code> &rarr; <code>/usr/share/roundcube/SQL/</code>
It also contains a few web-app-related things:
* <code>public_html/</code>: the web server should point at this folder
** <code>index.php</code>: the actual root page
** <code>.htaccess</code> &rarr; <code>../.htaccess</code>
*** &rarr; <code>/etc/roundcube/htaccess</code>
* <code>skins/</code> ''&lArr; <code>public_html/skins/</code>''
** <code>classic/</code> &rarr; <code>/usr/share/roundcube/skins/classic/</code>
** <code>elastic/</code> &rarr; <code>/usr/share/roundcube/skins/elastic/</code>
** <code>larry</code> &rarr; <code>/usr/share/roundcube/skins/larry/</code>
* <code>plugins/</code> ''&lArr; <code>public_html/plugins/</code>''
* <code>index.php</code> ''&lArr; <code>/usr/share/roundcube/index.php</code>''
* <code>.htaccess</code> &rarr; <code>/etc/roundcube/htaccess</code>
|}
|}
===Notes===
When installed this way, however, RC is ''not'' configured to play nicely with a virtual domain. It seems to expect to run as <code>www-data</code>. Tentatively, the remedy is just to change ownership of everything it touches (including log folders), but I'm still working on this. &mdash;''[[User:Woozle|Woozle]] ([[User talk:Woozle|talk]]) 15:02, 17 February 2025 (UTC)''
I wasn't able to get it working from the APT repository. Steps:
==Tech Notes==
* Created link to /var/lib/roundcube
The MariaDB/MySQL password must not contain the <code>&amp;</code> character, because the DSN parser treats it as syntactically significant. There does not seem to be any way of escaping it, either. The critical piece of code is in <code>/usr/share/roundcube/program/lib/Roundcube/rcube_db.php</code>, line 1336:
* Pasted link at (my domain public html)/roundcube
<syntaxhighlight lang=php>
* Accessing http://(my domain)/roundcube brought up Roundcube sofware with error saying it couldn't connect to the database
if (strpos($dsn, '&') !== false) {
** Remainder of interface was in some sort of Arabic script
    $opts = explode('&', $dsn);
* There was no change after configuring db parameters in /etc/roundcube
}
* Installed full version from download -- couldn't get mcrypt working, but that apparently isn't vital
</syntaxhighlight>
==Pages==
* [[/archive]]: obsolete stuff
==Links==
==Links==
===Reference===
===Reference===
* [https://roundcube.net roundcube.net] - official
* {{wikipedia}}
* {{wikipedia}}

Latest revision as of 16:04, 17 February 2025

{{#set:page type|article}} {{#set:thing type|webmail client}}

About

Roundcube (RC) is a webmail client that runs under the LAMP stack.

Files

When installed via apt, this is where Roundcube's files end up:

path description
/etc/roundcube/ global configuration stuff:
  • defaults.inc.php: must be present; should not be edited
  • config.inc.php: must be present, and should be edited to contain local settings
  • main.inc.php:
    • old name for config.inc.php
    • RC will load this if config.inc.php is not found
    • should not be present in new installations
  • debian-db.php: database credentials for RC installs in Debian-based systems
/usr/share/roundcube/ application code
/var/lib/roundcube/ installation image -- about half of the top folders here are just links:
  • config//etc/roundcube/
  • logs/../../log/roundcube/ (/var/log/roundcube)
  • program//usr/share/roundcube/program/
  • SQL//usr/share/roundcube/SQL/

It also contains a few web-app-related things:

  • public_html/: the web server should point at this folder
    • index.php: the actual root page
    • .htaccess../.htaccess
      • /etc/roundcube/htaccess
  • skins/ public_html/skins/
    • classic//usr/share/roundcube/skins/classic/
    • elastic//usr/share/roundcube/skins/elastic/
    • larry/usr/share/roundcube/skins/larry/
  • plugins/ public_html/plugins/
  • index.php /usr/share/roundcube/index.php
  • .htaccess/etc/roundcube/htaccess

When installed this way, however, RC is not configured to play nicely with a virtual domain. It seems to expect to run as www-data. Tentatively, the remedy is just to change ownership of everything it touches (including log folders), but I'm still working on this. —Woozle (talk) 15:02, 17 February 2025 (UTC)

Tech Notes

The MariaDB/MySQL password must not contain the & character, because the DSN parser treats it as syntactically significant. There does not seem to be any way of escaping it, either. The critical piece of code is in /usr/share/roundcube/program/lib/Roundcube/rcube_db.php, line 1336:

if (strpos($dsn, '&') !== false) {
    $opts = explode('&', $dsn);
}

Pages

Reference