Real minimum php requirments and some php mistiness

Hallo all,
in the course of my Nextcloud installation on my Synology NAS (see here and here) I’m diving deeply into the php setup to give more than a basic understanding about what and why.
I’ve learned that you can even run NC with less than explained in the administration manual.
It seems you can run it with only the following installed:

  1. curl
  2. GD
  3. openssl
  4. pdo_mysql
  5. zip

I would be nice what are limitations if you use only those extensions. A lot is self explaining if you go through all listed extension in the manual (see list at the end) but some experienced opinion would be helpful.

In addition

  1. it is not really clear which option of the listed recommendation is best:
    6. For enhanced server performance…
    7.2 avconv or ffmpeg
  2. some extension should not be used, says even php.net
    1.9 posix
    2.5 mcrypt

Some feedback on those points would be highly appreciated.

Based on NC13 administration manual:

  1. Required:

    1. PHP (>= 5.6, 7.0, 7.1 or 7.2)
    2. ctype: Character type checking
    3. dom: This parser makes it possible to process XML documents in PHP. #1
    4. GD (listed): It is used to create and manipulate image files in a variety of different image. #1
    5. iconv (listed): character set conversion
    6. JSON (listed): A common use of JavaScript Object Notation (JSON) is to read data from a web server, and display the data in a web page. #1
    7. libxml (Linux package libxml2 must be >=2.7.0): The libxml functions and constants are used by DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC and XMLWriter. #1
    8. mbstring 1.(not in Extensions)1. : It is used to manage non-ASCII strings. #1
    9. posix: It allows acces to to standards specified by the IEEE Computer Society for maintaining compatibility between operating systems, php.net warns to use it. #1, #2
    10. SimpleXML: it allows us to easily manipulate and get XML data. #1
    11. XMLReader: It is a class for reading XML. Unlike SimpleXML or the DOM, XMLReader operates in streaming mode. #1
    12. XMLWriter: As above, it used to write large files. #1
    13. zip 1.(not in Core)1. : It allows to transparently read or write ZIP compressed archives and the files inside them. #1
    14. zlib (not in Extensions): It allows to transparently read or write ZIP compressed archives and the files inside them. #1
  2. Database connectors

    1. pdo_mysql (listed) (MySQL/MariaDB), alternatively you can use mysqli. #1
  3. Recommended packages:

    1. curl (listed) (highly recommended, some functionality, e.g. HTTP user authentication, depends on this) : It is a command line tool for getting or sending files using URL syntax. It allows you to connect and communicate to many different types of servers with many different types of protocols. #1
    2. fileinfo (highly recommended, enhances file analysis performance): It is used to try to guess the content type and encoding of a file. #1
    3. bz2 (recommended, required for extraction of apps) (not in Core): it reads and writes bzip2 (.bz2) compressed files.
    4. intl (listed) (increases language translation performance and fixes sorting of non-ASCII characters): Most applications perform locale aware operations like working with texts, dates, timezones, etc. The PHP Intl extension provides a good API for accessing the widely known ICU library’s functions. It is a wrapper for ICU library. #1
    5. mcrypt (listed) (increases file encryption performance): This feature was DEPRECATED in PHP 7.1.0, and REMOVED in PHP 7.2.0, the alternatives are listed here. #1
    6. openssl (listed) (required for accessing HTTPS resources): This extension binds functions of OpenSSL. #1
  4. Required for specific apps:

    1. ldap (listed) (for LDAP integration)
    2. smbclient (SMB/CIFS integration, see SMB/CIFS): GitHub
    3. ftp (for FTP storage / external user authentication)
    4. imap (not in Core&CONSOLE): It is require access to email mailboxes. It is reported that PHP’s built in IMAP library is buggy.
  5. Recommended for specific apps (optional):

    1. exif (listed) (for image rotation in pictures app)
    2. gmp (for SFTP storage) (not in Core&CONSOLE)
  6. For enhanced server performance (optional) select one of the following memcaches: #1, #2 ,#3, #4

    1. apcu (>= 4.0.6)
    2. memcached
    3. redis (>= 2.2.6, required for Transactional File Locking): GitHubSee Configuring memory caching to learn how to select and configure a memcache.
  7. For preview generation (optional):

    1. imagick
    2. avconv or ffmpeg: GitHub #1,
    3. OpenOffice or LibreOffice
  8. For command line processing (optional):

    1. pcntl (enables command interruption by pressing ctrl-c)
2 Likes

You already moved the discussion to where it belongs:

but the forum is the place where I search up information like this.
Personally I wouldn’t start such a search on the GitHub repo.

:+1: same here

PHP 7.2 is working too.
Mentioned here. https://docs.nextcloud.com/server/13/admin_manual/installation/system_requirements.html

I don’t know why it’s not listed in the Prerequisites part of the manual…

That’s the reason why this topic belongs there. There is nothing wrong about asking this in the forum.

updated my post

http://www.welookups.com/Php7/default.html

a link to site like w3schools, so what :thinking: