[horde] Successful Horde migration to PHP7.0 - can we compare configs?

Torben Dannhauer torben at dannhauer.info
Tue Apr 4 08:48:24 UTC 2017


> Thanks.  That is encouraging news.
>
> Would it be possible for you to share what version of Apache you are  
> using and what the applicable Apache 2.4 config files look like?
>
> Our Debian dev server is successfully using PHP 7, but we have an  
> Apache 2.4.xx issue that needs to be fixed before we update our  
> production servers.
>
> We have not been able to use any Apache version past 2.4.22 since  
> last summer (fetching IMAP folders fails).  It appears to be a  
> security issue with Apache not passing required info to PHP FPM, and  
> I thought it was fixed with a patch in Apache 2.4.25.  But about a  
> day after thinking it fixed and upgrading Apache on our dev server,  
> fetching the IMAP folders stopped working again after rebooting.
>
> So if PHP 7 FPM and a later Apache version are working for you, then  
> I may have something mis-configured in my Apache php fpm config  
> files. Here is what I am currently using successfully with Apache  
> 2.4.10 and PHP FPM 7.0.16 on our dev server that fails when Apache  
> upgraded to 2.4.25:


Sure

Here is my config, but without waranty since I may have missed some  
issues you are aware of.

I use Apache 2.4.25 with this modules:
[...]
proxy
proxy_fcgi
[...]

My vhost config is:
<VirtualHost *:443>
         ServerAdmin webmaster at dannhauer.de
         ServerName dannhauer.de
         ServerAlias www.dannhauer.de

         DocumentRoot /var/www/YOUR_ROOT/web
         DirectoryIndex index.php index.html index.htm

         <Directory />
                 Options FollowSymLinks
                 AllowOverride None
         </Directory>

         # PHP7.0-FPM via mod_proxy_fcgi
         <FilesMatch \.php$>
             SetHandler  
"proxy:unix:/run/php7.0-fpm.MYPOOL.sock|fcgi://localhost/"
         </FilesMatch>

         # Override PHP-FPMs plain error messages with Apaches  
standard error messages
         # ProxyErrorOverride On
         ProxyErrorOverride Off

         SuexecUserGroup USER USER
         ScriptAlias /cgi-bin/ /var/www/YOUR-ROOT/cgi-bin
         <Directory "/var/www/YOUR-ROOT/cgi-bin/">
                 AllowOverride None
                 Options +ExecCGI -MultiViews -Indexes -FollowSymLinks  
+SymLinksIfOwnerMatch
                 Order allow,deny
                 Allow from all
         </Directory>

         SSLEngine on
         SSLCertificateFile      /etc/ssl/certs/YOURCERT
         SSLCertificateKeyFile /etc/ssl/private/YOURKEY
         SSLCACertificateFile /etc/ssl/certs/YOURINTERMEDIATE
         SSLOpenSSLConfCmd DHParameters "/etc/ssl/dh_2048.pem"

         # Bettercrypto.org recommendation
         SSLProtocol All -SSLv2 -SSLv3
         SSLHonorCipherOrder On
         SSLCompression off
         # Add six earth month HSTS header for all users...
         Header add Strict-Transport-Security "max-age=15768000"
         # If you want to protect all subdomains, use the following header
         # ALL subdomains HAVE TO support HTTPS if you use this!
         # Strict-Transport-Security: "max-age=15768000 ; includeSubDomains"
         SSLCipherSuite  
'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA'

[... error loggind and stuff]


##------------------------------------------------------##
##                                                      ##
##                     Horde Setup                      ##
##                                                      ##
##------------------------------------------------------##

         ProxyTimeout 5400

         RewriteEngine On

         RewriteRule ^/AutoDiscover/AutoDiscover.xml  
/var/www/YOUR_ROOT/web/horde/rpc.php [NC]
         RewriteRule ^/Microsoft-Server-ActiveSync  
/var/www/YOUR_ROOT/web/horde/rpc.php [NC]

         # Pass this headers to PHP because fcgid doesn't
         RewriteRule .* -  
[E=HTTP_MS_ASPROTOCOLVERSION:%{HTTP:Ms-Asprotocolversion}]
         RewriteRule .* - [E=HTTP_X_MS_POLICYKEY:%{HTTP:X-Ms-Policykey}]
         RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

         <Directory /var/www/YOUR_ROOT/web/horde/>
                 Options +FollowSymLinks
                 AllowOverride None
                 Order allow,deny
                 Allow from all

                 RewriteEngine On
                 RewriteBase /horde
                 RewriteCond   %{REQUEST_FILENAME}  !-d
                 RewriteCond   %{REQUEST_FILENAME}  !-f
                 RewriteRule ^(.*)$ rampage.php [QSA,L]
         </Directory>

         # hordes root dir uses a .htaccess with an Rewriterule which  
needs to be extented with 'rewrite_base'
         # Overwriting it is a bad idea since it may be replaced by an update.
         # -> The solution is to disable .htaccess overwriting just  
for horde's root dir and reenable overwriting for all subdirs.
         <Directory ~ "/var/www/YOUR_ROOT/web/horde/.*>
                 AllowOverride All
         </Directory>


</VirtualHost>







More information about the horde mailing list