Horde issues before to release

hello @davidep we have an error to build nethserver-horde, locally there is no issue

could you help please…thank in advance

For now I pushed to nethforge-testing if you want to test

yum install nethserver-horde --enablerepo=nethforge-testing

I saw some things to fix I think cc @danb35 @mrmarkuz @m.traeumner

the UI display this after a new installation

   A fatal error has occurred
Allowed memory size of 134217728 bytes exhausted (tried to allocate 256645746 bytes)
Details have been logged for the administrator.

maybe /etc/httpd/conf.d/php-horde-horde.conf i the place to increase the php memory

I cannot display the email after the login there is a manual procedure to enable and update the database schema

it seems nethserver-mail-server is not a dependency of nethserver-horde

maybe more

I haven’t installed nethserver-horde at any time, I only installed it manually, but perhaps I can help.
At manual steps for horde mail you need to:

Please install mailserver from softwarecenter. After that you have to install imp for webmail and ingo for filtering mails in terminal

yum install php-horde-imp
yum install php-horde-ingo

After installation go back to X.X.X.X/horde/admin/config at your browser and click on horde.
Possible messages about DB Shemas you can ignore at this time.
Go to mail tab and setup the following values:

$conf[mailer][type] SMTP server (HIGHLY RECOMMENDED)
$conf[mailer][params][host] smtp.YourDomain
$conf[mailer][params][port] 587
$conf[mailer][params][secure] tls
$conf[mailer][params][localhost] YourDomain
$conf[mailer][params][auth] Yes
$conf[mailer][params][username] admin@yourDomain
$conf[mailer][params][username_auth] true
$conf[mailer][params][password] YourPassword
$conf[mailer][params][password_auth] true
$conf[mailer][params][lmtp] false

Now we can go to IMAP Server tab and set the following values

$conf[imap][enabled] Enabled
$conf[imap][server] imap.YourDomain
$conf[imap][port] 143
$conf[imap][secure] tls
$conf[imap][maildomain] YourDomain
$conf[imap][cache_folders] true

Now press the button to generate the Horde configuration again.

We have to create a webmail configuration now, click at Webmail (imp). If you want you can change some values here.
If you have finished, click on generate Webmail-Configuration.

After that you have to Update All DB Schemas.
For that you have to click “Update All DB Schemas” at X.X.X.X/horde/admin/config.

Now you can use the mailsystem. Your mail-adress is the one from active directory.

Yes it would be nice to fully automate this but after updating the DB scheme in the horde UI it should work…

EDIT:

It works after updating DB schema and configurations in the UI. For the DB schema there’s a script horde-db-migrate to automate the process.

IIRC it was the time when we had nethserver-mail and nethserver-mail2 so I decided to remove the dependency.

I think this is the only step that is needed with the package but I need to recheck…

2 Likes

I tried to use rh-php73, rh-php72 without success @mrmarkuz, fun I got an 500 error without any log traces.

Do you have some thoughts @danb35 ?

Does horde from epel is compatible with these phpversion, maybe we miss a rpm that we could have from remi scl.

By the way I still do not understand the need of php scl, for what I tested everythings was workable with php54.

Edit: reading this Horde login problems

Horde 5 is not compatible with php7, Horde 6 does. The last TLS policy breaks horde, php54 is not fully compatible with it

As I know, Horde 6 isn’t published at this time.
https://www.horde.org/apps/horde/roadmap

Some people use Horde 5 with PHP 7.
http://horde.690.n7.nabble.com/Status-of-PHP-7-support-td142808.html
https://dokuwiki.nausch.org/doku.php/centos:mail_c7:php7:horde_1

Only weather doesn’t work with PHP7.

To be not compatible with php7 in 2020, honestly does horde is still an alive project ?

I don’t know, but the last stable release is from 2017, and no release date for Horde Framework 6. It don’t look very active.

1 Like

It’s working with PHP73 if we install it with pear(see horde docs). This way IMAP TLS login works with newest TLS policy:

Install nethserver-horde:

yum install https://mrmarkuz.dynu.net/mirror/devtest/nethserver-horde-0.0.2-1.ns7.noarch.rpm

Make rh-php73 work:

yum -y install nethserver-rh-php73-php-fpm

Add

   <FilesMatch \.php$>
      SetHandler "proxy:fcgi://127.0.0.1:9003"
   </FilesMatch>

to /etc/httpd/conf.d/php-horde-horde.conf line 41 and reload http:

systemctl reload httpd

PEAR install of horde with rh-php73:

scl enable rh-php73 bash
pear channel-discover pear.horde.org
pear install horde/horde_role
pear run-scripts horde/horde_role

Enter Filesystem location for the base Horde application : /usr/share/horde

pear install -a -B horde/horde

Set permissions - should be optimized as regards security - needed to update the configurations in the ui

chown -R root:apache /usr/share/horde/
chmod -R 775 /usr/share/horde/

Login to UI with ldap/ad user admin and update db schemas and configurations and it should just work.

I tried to automate this process but still not fully working:

To update the DB schemas:

horde-db-migrate

The config files are missing a hash, see horde bug.

This adds the missing hash to the config files:

hordepart=(turba kronolith ingo imp nag .)
for i in "${hordepart[@]}"
do
   grep -q "// \$Hash:" /usr/share/horde/$i/config/conf.php || echo "// \$Hash: `sha1sum /usr/share/horde/$i/config/conf.xml | cut -d" " -f1`" >> /usr/share/horde/$i/config/conf.php
done

Looks good except of the missing mail and logout buttons:

In this case you can do a signal-event nethserver-horde-update and start over with configuring via the UI.

1 Like

when I use my module nethserver-php-scl, I tested it with php73-php-fpm or php73-php-fpm

just add in /etc/httpd/conf.d/php-horde-horde.conf

<Directory /usr/share/horde>
    # **IMPORTANT** By default, everyone accessing Horde is automatically logged
    # in as 'Administrator'. This is a security risk! It is very important that 
    # you change the authentication backend under the 'Authentication' tab. 
    # For this reason, Horde is currently only accessible from localhost. 
      <FilesMatch .php$>
         SetHandler "proxy:fcgi://127.0.0.1:9074"
      </FilesMatch>
   Options +FollowSymLinks

change 9074 for php74 or 9073 for php73

Who would like to test please

Maybe we can modify the template /etc/e-smith/templates/etc/httpd/conf.d/php-horde-horde.conf/10base

It is maybe more simple to maintain that module if we use the remi repo

2 Likes

got it workable with rh-php73 @mrmarkus, a bit vicious bug

add to /etc/opt/rh/rh-php73/php.ini

include_path = ".:/opt/rh/rh-php73/root/usr/share/pear:/opt/rh/rh-php73/root/usr/share/php:/usr/share/pear"

My scl integration of my module was better than the official :expressionless:

The clue to come to that conclusion: /var/opt/rh/rh-php73/log/php-fpm/www-error.log

 [18-Dec-2020 15:14:00 UTC] PHP Warning:  require_once(Horde/Autoloader/Default.php): failed to open stream: No such file or directory in /usr/share/horde/lib/core.php on line 49
[18-Dec-2020 15:14:00 UTC] PHP Fatal error:  require_once(): Failed opening required 'Horde/Autoloader/Default.php' (include_path='/usr/share/horde/lib:.:/opt/rh/rh-php73/root/usr/share/pear:/opt/rh/rh-php73/root/usr/share/php') in /usr/share/horde/lib/core.php on line 49
3 Likes

It seems a bit invasive to change the PHP include path globally. Instead I’d limit the change to the PHP-FPM pool that is running Horde.

As alternative, if possible, the Horde code can be installed under the existing path entries.

1 Like

It is a rpm, how can we move the destination of files without building the rpms ?

IIUC the Horde code that works with PHP 7 comes from Pear repositories. Did I misunderstand something?

yes @mrmarkuz tried an alternative, install horde with pear, we currently use the rpm from EPEL, however it seems that our last TLS policy (only TLS1.2) break something in the imap authentification, with only TLS1.2 you cannot authenticate to imap in the horde webmail

Hence the attempt to install from rpm + 73 RH php scl

I tried to change it in the httpd configuration, no success but indeed probably in the php pool however we use a template and all pools are declared inside. Not handy maybe

The question now is to know, does Horde needs really our love

3 Likes

We can decide to

  • do not fix this bug for TLS 1.2 and retain the old Horde EPEL RPM (PHP 5.4), or
  • upgrade to the latest Horde Pear version (PHP 7)

The second choice can be implemented in the following ways

  • update the HowTo to rely on Pear and the new PHP-FPM modules (fast)
  • prepare a new RPM that ships the code from Pear (requires community effort, testing and Travis-CI scripts)

IMO: we can do all the above steps, in that order :slight_smile:

3 Likes

I will try, if I have a little bit time.

2 Likes