Prerequisites for Manual Installation on Linux

Introduction

This document guides you through the prerequisites for a manual ownCloud Server installation on Linux.

The ownCloud tar archive contains all of the required third-party PHP libraries. As a result, no extra ones are strictly necessary. However, ownCloud does require that PHP has a set of extensions installed, enabled and configured.

This section lists both the required and optional PHP extensions. If you need further information about a particular extension, please consult the relevant section of the extensions section of the PHP manual.

If you are using a Linux distribution, it should have packages for all the required extensions. You can check the presence of a module by typing php -m | grep -i <module_name>. If you get a result, the module is present.

Required Prerequisites

openSSL Version

ownCloud requires that you have openSSL version 1.1.x installed. With the release change of openSSL v1.x to openSSL version 3.x in December 2021, some ciphers which were valid in version 1.x, have been retired with immediate effect. This impacts the ownCloud encryption app.

If you plan to:

  • upgrade the openSSL version of your server to v3 or

  • install or upgrade your server where the server upgrade delivers the new openSSL v3 version and

  • you have enabled and use encryption

your encryption environment will break due to openSSL v3 retired (legacy) ciphers. As a result, encrypted files cant be accessed. As a temporary solution, you have to manually reenable in the openSSL v3 config the legacy ciphers. To do so, see the example in the OpenSSL 3.0 Wiki at section 6.2 Providers.

How to implement the fix for the above mentioned issue:

  1. Find the openssl config directory with

    openssl version -d

    Output example:

    OPENSSLDIR: "/usr/lib/ssl"

  2. Go in to that directory and open the config file openssl.cnf

    Look for:

    [openssl_init]
    providers = provider_sect

    and add this line below

    legacy = legacy_sect

    then look for

    [default_sect]
    # activate = 1

    remove the "#" before "activate" and add the following lines below:

    [legacy_sect]
    activate = 1
  3. The file should now look like this:

    openssl_conf = openssl_init
    
    [openssl_init]
    providers = provider_sect
    
    [provider_sect]
    default = default_sect
    legacy = legacy_sect
    
    [default_sect]
    activate = 1
    
    [legacy_sect]
    activate = 1
  4. Save the file and you have enabled OpenSSL legacy support.

PHP Version

ownCloud can run with following PHP versions: 7.4

PHP 7.4 must be used for all installations. Sites currently using a different PHP version must migrate to PHP 7.4.

Note that PHP 8.x is currently not supported.

PHP Extensions

Name Description

Ctype

For character type checking

cURL

Used for aspects of HTTP user authentication

DOM

For operating on XML documents through the DOM API

GD

For creating and manipulating image files in a variety of different image formats, including GIF, PNG, JPEG, WBMP, and XPM

HASH Message Digest Framework

For working with message digests (hash)

iconv

For working with the iconv character set conversion facility

intl

Increases language translation performance and fixes sorting of non-ASCII characters

JSON

For working with the JSON data-interchange format

libxml

This is required for the DOM, libxml, SimpleXML, and XMLWriter extensions to work. It requires that libxml2, version 2.7.0 or higher, is installed

Multibyte String

For working with multibyte character encoding schemes

OpenSSL

For symmetric and asymmetric encryption and decryption, PBKDF2, PKCS7, PKCS12, X509 and other crypto operations

PDO

This is required for the pdo_msql function to work

Phar

For working with PHP Archives (.phar files)

POSIX

For working with UNIX POSIX functionality

SimpleXML

For working with XML files as objects

XMLWriter

For generating streams or files of XML data

Zip

For reading and writing ZIP compressed archives and the files inside them.

Zlib

For reading and writing gzip (.gz) compressed files

The Phar, OpenSSL, and cUrl extensions are mandatory if you want to use Make to setup your ownCloud environment, prior to running either the web installation wizard, or the command line installer.

Database Extensions

Name Description

mysql

For working with MySQL & MariaDB

pgsql

For working with PostgreSQL. It requires PostgreSQL 9.0 or above

sqlite

For working with SQLite. It requires SQLite 3 or above. This is, usually, not recommended for performance reasons

Required For Specific Apps

Name Description

ftp

For working with FTP storage

sftp

For working with SFTP storage

imap

For IMAP integration

ldap

For LDAP integration

smbclient

For SMB/CIFS integration

SMB/Windows Network Drive mounts require the PHP module smbclient version 0.8.0+. See SMB/CIFS.

Optional

Extension Reason

Bzip2

Required for extraction of applications

Fileinfo

Highly recommended, as it enhances file analysis performance

Mcrypt

Increases file encryption performance

OpenSSL

Required for accessing HTTPS resources

imagick

Required for creating and modifying images and preview thumbnails

For Specific Apps

Extension Reason

Exif

For image rotation in the pictures app

GMP

For working with arbitrary-length integers

For Server Performance

For enhanced server performance consider installing one of the following cache extensions:

See Caching Configuration to learn how to select and configure Memcache.

For Preview Generation

For Command Line Processing

Extension Reason

PCNTL

Enables command interruption by pressing ctrl-c

You don’t need the WebDAV module for your Web server (i.e., Apache’s mod_webdav), as ownCloud has a built-in WebDAV server of its own, SabreDAV. If mod_webdav is enabled, you must disable it for ownCloud. See the Apache preparation guide for more details.

For MySQL/MariaDB

The InnoDB storage engine is required, and MyISAM is not supported, see MySQL / MariaDB storage engine for more information.