ownCloud 9.0 - Class 'XMLReader' not found in Reader.php (after upgrade from 8.2.2) #23003

Closed
blablablabla opened this Issue Mar 9, 2016 · 5 comments

Projects

None yet

6 participants

@blablablabla

Steps to reproduce

  1. Have ownCloud 8.2.2 (manual installation).
  2. Perform manual upgrade to 9.0.0 (according to the manual).

Expected behaviour

Everything working normally.

Actual behaviour

  1. User files are inaccessible with error: This directory is unavailable, please check the logs or contact the administrator. (even for admin)
  2. User contacts and calendars are empty (no webpage error though).
  3. Synchronization (ownCloud desktop client, CardDav, CalDav) doesn't work.

Server configuration

Operating system: Gentoo Linux 4.1.12 x86_64

Web server: nginx 1.8.1

Database: MySQL 5.6.28

PHP version: 5.6.18-pl0-gentoo

ownCloud version: 9.0.0

Updated from an older ownCloud or fresh install: updated from 8.2.2

Where did you install ownCloud from: tarball

Signing status (ownCloud 9.0 and above):

No errors have been found.

List of activated apps:

Enabled:
  - activity: 2.2.1
  - calendar: 1.0
  - comments: 0.2
  - contacts: 1.0.0.0
  - dav: 0.1.5
  - documents: 0.12.0
  - federatedfilesharing: 0.1.0
  - files: 1.4.4
  - files_sharing: 0.9.1
  - files_texteditor: 2.1
  - files_trashbin: 0.8.0
  - files_versions: 1.2.0
  - firstrunwizard: 1.1
  - gallery: 14.5.0
  - notifications: 0.2.3
  - systemtags: 0.2
  - updatenotification: 0.1.0
Disabled:
  - encryption
  - external
  - federation
  - files_external
  - files_pdfviewer
  - files_videoplayer
  - provisioning_api
  - templateeditor
  - user_external
  - user_ldap

The content of config/config.php:

<?php
$CONFIG = array (
  'instanceid' => '51ae2ad06beb6',
  'passwordsalt' => '***REMOVED SENSITIVE VALUE***',
  'datadirectory' => '/var/www/example.com/private/owncloud/data',
  'dbtype' => 'mysql',
  'version' => '9.0.0.19',
  'dbname' => 'www_user2_owncloud',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'www_user2_oc',
  'dbpassword' => '***REMOVED SENSITIVE VALUE***',
  'installed' => true,
  'forcessl' => true,
  'maintenance' => false,
  'trashbin_retention_obligation' => '1, auto',
  'theme' => '',
  'trusted_domains' =>
  array (
    0 => 'example.com',
  ),
  'mail_smtpmode' => 'php',
  'mail_smtpname' => 'admin',
  'mail_smtppassword' => '***REMOVED SENSITIVE VALUE***',
  'secret' => '***REMOVED SENSITIVE VALUE***',
  'loglevel' => 2,
  'filelocking.enabled' => 'true',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => '/var/run/redis/redis.sock',
    'port' => 0,
    'timeout' => 0,
    'password' => '***REMOVED SENSITIVE VALUE***',
  ),
  'memcache.local' => '\\OC\\Memcache\\APCu',
);

Note: The actual domain has been replaced by example.com.
Note: Passwords have been replaced in the config output.

Are you using external storage, if yes which one: No.

Are you using encryption: No.

Are you using an external user-backend, if yes which one: No.

Client configuration

Browser 1: Firefox 45.0
Browser 2: Iron 48.0.2550.1
Browser 3: Vivaldi 1.0.403.24 (Beta 3) (32 bit)

Operating system: Windows 8.1 x64

Logs

Web server error log

With every page load (any page), the following error is added to the log:

2016/03/09 09:50:01 [error] 6360#0: *2715 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class 'XMLReader' not found in /var/www/example.com/web/3rdparty/sabre/xml/lib/Reader.php on line 20" while reading response header from upstream, client: 1.2.3.4, server: example.com, request: "PROPFIND /remote.php/webdav/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9008", host: "example.com"

Note: The actual domain has been replaced by example.com.
Note: The client IP has been replaced by 1.2.3.4.

ownCloud log (data/owncloud.log)

{"reqId":"xsCKIjSCwseTdoHCMMtQ","remoteAddr":"1.2.3.4","app":"PHP","message":"Class 'XMLReader' not found at \/var\/www\/example.com\/web\/3rdparty\/sabre\/xml\/lib\/Reader.php#20","level":3,"time":"2016-03-09T09:44:19+00:00"}

Note: The actual domain has been replaced by example.com.
Note: The client IP has been replaced by 1.2.3.4.

Browser log

N/A

Additional information

  • nginx has been configured accordin to this guide.
@LukasReschke
Member

Can you post a link to a phpinfo file? I'm curious how the libxml support looks there.

@LukasReschke LukasReschke added this to the 9.0.1-current-maintenance milestone Mar 9, 2016
@LukasReschke LukasReschke self-assigned this Mar 9, 2016
@LukasReschke
Member

Ok. Gentoo is not compiling XMLReader by default:

Gentoo users: emerge does not compile dev-lang/php with --enable-xmlreader by default. To enable this option, add the flag xmlreader to your USE variable and recompile php.

Will add a check to the setup. It's required by SabreDAV now.

@LukasReschke LukasReschke added a commit that referenced this issue Mar 9, 2016
@LukasReschke LukasReschke Add XMLReader as requirement
The SabreDAV release in 9.0 requires XMLReader, while this is usually compiled in by default some distributions like Gentoo don't.

Without this ownCloud gives a fatal 500 error instead of telling people to enable XMLReader.

Fixes #23003
642c38f
@LukasReschke LukasReschke removed the needs info label Mar 9, 2016
@blablablabla

I've recompiled PHP (dev-lang/php) with xmlreader USE flag enabled, restarted PHP deamon (php-fpm) and the problem seems to be fixed.

Thank you!

@LukasReschke LukasReschke added a commit that referenced this issue Mar 9, 2016
@LukasReschke LukasReschke Add XMLReader as requirement
The SabreDAV release in 9.0 requires XMLReader, while this is usually compiled in by default some distributions like Gentoo don't.

Without this ownCloud gives a fatal 500 error instead of telling people to enable XMLReader.

Fixes #23003
316f86f
@sporokh
sporokh commented Mar 16, 2016

In anyone using alpine-linux:
Fixed this issue on alpine-linux by simply installing php-xmlreader package.

@chiefy
chiefy commented Oct 2, 2016

@sporokh thanks for the tip!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment