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 mail@xxxxxxxxxx
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,