Hi all,
I've got a problem after upgrading to 2.4.26. Everything works fine
except my ownCloud instance.
I compile httpd by myself and used the exact same method for 2.4.26 as I
used for 2.4.25, where everything worked as expected. I noticed, that in
the current apr-util, theres no expat bundled anymore and manually
compiled it and expanded my configure to "--with-expat=...". Thats the
only difference to my working 2.4.25 compilation.
Now the problem:
ownCloud uses ocs as API to do different things. One is maintaining the
folder shares. And they aren't working anymore with 2.4.26 (in detail,
you can't search for groups, created public links are gone after reload
and you can't edit any existing share). I investigated some things on my
own already and found the following out:
I used the URL from logfiles (which get a 200 - OK as a response) to
investigate which URL is called when searching for a group at share tab.
Its this one:
/ocs/v1.php/apps/files_sharing/api/v1/sharees?format=json&search=Fa&perPage=200&itemType=folder
I search for "Fa" as one of my groups is called "Familie".
If I directly open this in my Browser tab with version 2.4.25 (or
mod_php), I get the following response:
ocs
meta
status "ok"
statuscode 100
message "OK"
totalitems ""
itemsperpage ""
data
exact
users
groups
remotes
users
groups
0
label "Familie"
value
shareType 1
shareWith "Familie"
remotes
Now I /only/ change the version from 2.4.25 to 2.4.26 and just reload
the exact same page. I still get a 200 return code in Apache logfiles,
but I get a different response in browser:
ocs
meta
status "failure"
statuscode 999
message "Invalid query, please check the syntax. API specifications
are here:
http://www.freedesktop.org/wiki/Specifications/open-collaboration-services.
DEBUG OUTPUT:\n"
data
So now I can't get why this isn't working. Everything else is the same
as before, just the current Apache release is the difference to working
and non-working.
In addition: All Logfiles are empty. No error in Apache Errorlog,
nothing in php-fpm Errorlog, nothing in owncloud.log (even with 'debug'
=> true in config.php).
As you can see, I'm using php-fpm (currently 7.1.6, also self-compiled).
I already posted an issue on ownCloud forums, and someone there asked,
if I have the same problem, if switching to mod_php instead of php-fpm.
So I testet that and it's strange, but now working. Everything works as
expected if using mod_php, but not with php-fpm.
There must be some change in Apache which doesn't work as before. I
tested everything else, used 2.4.25 with 7.1.6, 2.4.26 with 5.6.30, etc.
The only working combinations are
- httpd 2.4.25 with anything (php 5.6.30, 7.1.6 mod_php or php-fpm)
- httpd 2.4.26 with mod_php (5.6.30 and 7.1.6)
As you can suggest I don't want to use mod_php over php-fpm for obvious
reasons.
So any help would be appreciated to solve this problem.
To complete my request, heres my vhost configuration for my owncloud
instance:
<VirtualHost *:443>
SSLEngine On
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile
"/opt/instances/apache/conf/certs/owncloud/server.crt"
SSLCertificateKeyFile
"/opt/instances/apache/conf/certs/owncloud/server.key"
SSLCertificateChainFile
"/opt/instances/apache/conf/certs/owncloud/chain.crt"
# Add HSTS header
Header always set Strict-Transport-Security "max-age=63072000;
includeSubdomains;"
# Block TRACE/TRACK XSS vector
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRAC(E|K)
RewriteRule .* - [F]
#
ServerAdmin [email protected]
DocumentRoot /opt/websites/cloud
<Directory "/opt/websites/cloud/data">
Require all denied
</Directory>
# mod_xsendfile
SetEnv MOD_X_SENDFILE_ENABLED 1
XSendFile On
ServerName cloud.domain.de
ErrorLog "|/opt/products/apache/current/bin/rotatelogs -l -L
/opt/instances/apache/logs/cloud/error.log -f -c
/opt/instances/apache/logs/cloud/error.log-%Y-%m-%d 100M"
CustomLog "|/opt/products/apache/current/bin/rotatelogs -l -L
/opt/instances/apache/logs/cloud/access.log -f -c
/opt/instances/apache/logs/cloud/access.log-%Y-%m-%d 100M" extended
# FPM forwarding
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
Finally my used versions:
- Apache httpd 2.4.26
- PHP 7.1.6
- OpenSSL 1.0.2l
- Expat 2.2.1
- apr 1.6.2
- apr-util 1.6.0
- nghttp2 1.23.1
- PCRE 8.40
- mod_xsendfile 0.12
- curl 7.54.1 (for PHP)
Used configure:
./configure \
--prefix=/opt/products/apache/${apache_version} \
--enable-so \
--enable-mpms-shared=all \
--enable-modules=all \
--enable-static-support \
--enable-ssl-staticlib-deps \
--with-ssl=/opt/products/deps/openssl/current \
--with-included-apr \
--enable-nonportable-atomics=yes \
--enable-threads \
--with-crypto \
--with-openssl=/opt/products/deps/openssl/current \
--with-pcre=/opt/products/deps/pcre/current \
--with-nghttp2=/opt/products/deps/nghttp2/current \
--with-expat=/opt/products/deps/expat/current
(I'm not sure if I need every single line here, some are ported from my
previous 2.2 builds)
Any suggestions on this?
Thanks in advance and with regards,