HowTo install eGroupware on NS7 with AD

Installation of eGroupware Community Edition on NS7 Active Directory

NOTE: This HowTo is obsolete, because eGroupware 17 and above needs php >= 5.6 and CentOS upstream default is php 5.4. It’s possibel to install php > 5.4 on nethserver, bur be aware, that there are some incompatibilities with neth-GUI. php-SCL is no solution, cause installscript of eGroupware checks basic installed php-version. 26.11.2018

eGroupware is a powerfull Groupwareserver with calendaring, email (internal and external imap), adressbook, resource planning tool, timesheet function, tracking system, file manager for home directory, and a news feature.

install eGroupware-repo:

cd /etc/yum.repos.d
vi eGroupWare.repo

[eGroupWare]
name=EGroupware (CentOS_7)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/server:/eGroupWare/CentOS_7/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/server:/eGroupWare/CentOS_7//repodata/repomd.xml.key
enabled=1

install epel-repo (if not already installed)
install mariadb from softwarecenter
install webserver from softwarecenter

Now go to CLI and do:

yum install libtidy --enablerepo=epel
yum install libtidy-devel --enablerepo=epel
yum install php-tidy --enablerepo=epel
yum install php-pecl-apu --enablerepo=epel
yum install php-pecl-zendochache --enablerepo=epel
yum install php-bcmath --enablerepo=epel
yum install egroupware-epl --enablerepo=eGroupWare
systemctl restart httpd

you now can reach the configuration at
http://yourserver.domain.tld/egroupware/setup

Setup eGroupware

select language
select Run installation tests
if every item is checked green continue with => configure header admin
give password for Header password, DB password, Configuration password
click on write

continue with => setup/config admin login
(root password for mysql can be found in /root/.my.cnf)
next press => install all applications

now it should look like this:

click on => create an admin account and do it.

continue with => _edit current configuratio_n for configuring the active directory
Enter the host name (1)
choose Active Directory (2), SQL (3), Yes (4) and Never (5)

Note: This uses a seperate SQL-Database for the eGroupware users, so if a user is deleted in the AD it is NOT deleted in eGroupware! AD is just used for authentication. Change hostname.domain.tld to your specific settings.

AT „If using ADS…“ give the ADS credentials (see picture)

NOTE: the IP is the IP of the AD-container and again make sure to change doamin.tld to your specific settings

next at CLI do a systemctl restart httpd

Now you’re done and your eGroupware-server should be configured and you can login with the user credentials you have already created and will create in NethGUI.

Some more Notes:
This is one possible configuration which works and satisfy my needs at the first glance.
I didn’t try the calDav/CardDav-sync and the ActiveSync option yet (will follow).
This is a intranetsetup (green lan), so no firewall configuration is needed.
The setup for LDAP-Accountprovider should be similar.
If no Accountprovider at all is installed, use SQL only.

For security:
If you want to redirect logins and setup to https, you have to edit the
/etc/httpd/conf.d/egroupware.conf and delete some # an the end of the file.

  # Enable the following block in order to redirect logins to HTTPS:
	  RewriteEngine On
	  RewriteCond %{HTTPS} !^on$
	  RewriteCond %{SCRIPT_FILENAME} login\.php [OR]
	  RewriteCond %{AUTH_TYPE} Basic [NC]
	  RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [L,R]
	</Directory>

	# Enable the following block in order to redirect setup activities to HTTPS:
	<Directory /usr/share/egroupware/setup/>
	  RewriteEngine On
	  RewriteCond %{HTTPS} !^on$
	  RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [L,R]
	</Directory>

to aply changes do systemctl restart httpd

Please tryout this HowTo and report if there is a typo or something else. Thanks.
Have fun with this and of course every response (hopefully positive) is welcome. :wink:

7 Likes

Ohhh looks amazing! What do you think guys? @hucky @rowihei @bruno @gerald_fs @miko10 @transocean @asl @frx44 @flatspin @giordy @Pascal_Michard @andreadb @GOB @kisaacs

Hello!

Tried to install Egroupware. It don’t work anymore.


Error: Package: egroupware-epl-core-17.1.20180321-1.1.noarch (eGroupWare)
Requires: php >= 5.6.0
Installed: php-5.4.16-43.el7_4.1.x86_64 (@updates)
php = 5.4.16-43.el7_4.1
Available: php-5.4.16-42.el7.x86_64 (base)
php = 5.4.16-42.el7
Available: php-5.4.16-43.el7_4.x86_64 (updates)
php = 5.4.16-43.el7_4


I installed Php-SCL but it does not seem to help with the installation.
What can we do?

Curculio

2 Likes

You may solve it with adding a handler for php in the egroupware directory directive in /etc/httpd/conf.d/egroupware.conf:

With php scl this should work for PHP 5.6:

<Directory /usr/share/egroupware>
...
  <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9056"
  </FilesMatch>
...
</Directory>

Apply config:

systemctl restart httpd

The repo says its broken

The repo still works here, but I had to use yum install egroupware-epl --enablerepo=eGroupWare.

But I have the same problem with php-version and

doesn’t help.
@mrmarkuz I’m not familiar with php-scl. Can you please help?

1 Like

Ty I will try that.

Thank you, it stills says error getting repository information. Sorry, i am a newbie when it comes to yum, i am a Debian apt baby lol

Actually I have eGroupware archive… Just the notes for installing it on Centos 7 does not work with Neth… I am not sure how to activate the web server portion of it. Thanks.

Please be aware, that it’s case sensitive.

Hi Ralf:

Thank you, i am at the same point as you now. I have the rpm but it requires php 5.6 and we are at 5.4. We would not be able to edit the /etc/httpd/conf file as it would need to install prior to this file being created.

Thanks

Hi Ralf:

I just upgraded PHP to 5.6, and everything works fine.

Thanks
John

Hi John,

great to hear that. Upstream default is still 5.4, so you may encounter some strange behavior, may be you won’t. I can’t say.
If you encounter problems please report it.

Thx Ralf

php56 reached is end of line, probably it is not maintained anymore since months now against vunerability. PHP54 is maintained by redhat during all the life of centos7.

To make it short the php-scl is only the good way to do it, the software collection of php71 is the good version to use

Normally when the packager makes the rpm it set the apache configuration file as a file to do not replace if modified by the sysadmin

%config(noreplace) %{_datadir}/%{name}/config.php

so you could change it after the installation, the rpm installation should not replace it and you will have some new files belong your relevant configuration

*.rpmnew
*.rpmsave

It is quite simple, release notes say php 7.0, 7.1 or 7.2 is recommended, so i say go with (rh-)php 7.1 as it is available for nextcloud…

yum install nethserver-rh-php71-php-fpm

before going on check your php version :

# php --version
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

now open a new bash session (it’s like logging in again)

/bin/bash

you cloud check your unchanged php --version again :grin:

now enable php 7.1 from the software collection and check the php version:

source /opt/rh/rh-php71/enable

php --version
PHP 7.1.8 (cli) (built: Aug  9 2017 13:20:06) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.8, Copyright (c) 1999-2017, by Zend Technologies

Do the things you need to do with php-71 enabled then
close the (nested) bash shell and eventing is back to “normal”

exit

php --version
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Of cause you still need to configure eqroupware to use rh-php71-php-fpm similair @mrmarkuz suggested for php 5.6 the port for nethserver-rh-php71-php-fpm is 9001 :wink:

Hi Mark,

thanks for your suggestion. I tryed, but it failed:

--> Finished Dependency Resolution
Error: Package: egroupware-epl-core-17.1.20181205-2.1.noarch (eGroupWare)
           Requires: php >= 5.6.0
           Installed: php-5.4.16-46.el7.x86_64 (@cr)
               php = 5.4.16-46.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
[root@neth-test yum.repos.d]#
[root@neth-test yum.repos.d]#
[root@neth-test yum.repos.d]# php -v
PHP 7.1.8 (cli) (built: Aug  9 2017 13:20:06) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.8, Copyright (c) 1999-2017, by Zend Technologies
[root@neth-test yum.repos.d]#
[root@neth-test yum.repos.d]# exit
exit
[root@neth-test ~]# php -v
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
[root@neth-test ~]#

Although php -v says 7.1 in a nested bash.

In this case it doesn’t work in a nested bash because yum asks for the correct version of the php rpm.

You may install it via remi repo (that is used in nethserver-php-scl by @stephdl )

Please be careful as changing the systems php version may break your system, see Email Addresses link Doesn't work for instance. Don’t test on a production system.

yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install egroupware-epl --enablerepo=remi-php56

http://luchko.ca/~aaron/blog/?p=231

BTW, php 5.6 has reached EOL, to use PHP 7 use enablerepo=remi-php71 instead.

http://docs.nethserver.org/en/v7/release_notes.html#php-5-6-scl

Another way to workaround the package requirements would be installing egroupware from source:

I did this already on a test-vm with remi php 7.1, but I don’t want this, because of some incompatibilitys could apear. I want to stay with original upstream default.

With centos 8 php 7.x will become default AFAIK. So I think NS 8 also will have it as default.
Just a matter of time :wink: