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:
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
- it is not really clear which option of the listed recommendation is best:
6. For enhanced server performance…
7.2 avconv or ffmpeg… - 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:
-
Required:
- PHP (>= 5.6, 7.0, 7.1 or 7.2)
- ctype: Character type checking
- dom: This parser makes it possible to process XML documents in PHP. #1
- GD (listed): It is used to create and manipulate image files in a variety of different image. #1
- iconv (listed): character set conversion
- 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
- 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
- mbstring 1.(not in Extensions)1. : It is used to manage non-ASCII strings. #1
- 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
- SimpleXML: it allows us to easily manipulate and get XML data. #1
- XMLReader: It is a class for reading XML. Unlike SimpleXML or the DOM, XMLReader operates in streaming mode. #1
- XMLWriter: As above, it used to write large files. #1
- zip 1.(not in Core)1. : It allows to transparently read or write ZIP compressed archives and the files inside them. #1
- zlib (not in Extensions): It allows to transparently read or write ZIP compressed archives and the files inside them. #1
-
Database connectors
-
Recommended packages:
- 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
- fileinfo (highly recommended, enhances file analysis performance): It is used to try to guess the content type and encoding of a file. #1
- bz2 (recommended, required for extraction of apps) (not in Core): it reads and writes bzip2 (.bz2) compressed files.
- 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
- 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
- openssl (listed) (required for accessing HTTPS resources): This extension binds functions of OpenSSL. #1
-
Required for specific apps:
-
Recommended for specific apps (optional):
-
For enhanced server performance (optional) select one of the following memcaches: #1, #2 ,#3, #4
- apcu (>= 4.0.6)
- memcached
- redis (>= 2.2.6, required for Transactional File Locking): GitHubSee Configuring memory caching to learn how to select and configure a memcache.
-
For preview generation (optional):
- imagick
- avconv or ffmpeg: GitHub #1,
- OpenOffice or LibreOffice
-
For command line processing (optional):
- pcntl (enables command interruption by pressing ctrl-c)