↑↓ to navigate ↵ to open Esc to close Search by Algolia

PHP requirements

FileRun works with PHP 8.3, 8.4 and 8.5.
Use 8.4 or 8.5 if you can.
PHP 8.6 and newer have not been tested yet.

The ionCube Loader extension is required:

  • On PHP 8.3 and 8.4: version 14.4 or newer.
  • On PHP 8.5: version 15.5.0 or newer.

Installing PHP

If you are installing PHP now, on a modern Linux distribution, here is a quick command for you to copy:

 1sudo apt-get install php8.5-common php8.5-cli php8.5-mysql php8.5-curl php8.5-zip php8.5-xml php8.5-mbstring php8.5-imagick

This should install most of the extensions FileRun needs.
If your distribution ships PHP 8.4, as Debian 13 does, replace 8.5 with 8.4 in every package name.

The ionCube Loader extension needs manual installation.

Configuring PHP

The following are the optimal PHP settings we recommend for using with your FileRun installation.

This guide assumes that you have a regular PHP installation, which was not configured with any --disable or --without parameters that might have removed standard functionality.

Verifying the configuration

Create a file named info.php inside the FileRun installation folder and copy the following inside:

 1<?php
 2phpinfo();

Opening it in your browser via your web server should provide information about your PHP configuration, as in the following example:

phpinfo.png

Scroll down on that page and check your settings. Delete info.php when you are done, as it shows your server configuration to anyone who opens it.

Error handling

 1expose_php              = Off
 2error_reporting         = E_ALL & ~E_NOTICE
 3display_errors          = Off
 4display_startup_errors  = Off
 5log_errors              = On
 6error_log               = "/private/path/php_error.log"
 7ignore_repeated_errors  = Off

Note

Replace /private/path/php_error.log with a valid path.

Keep in mind that you need to have display_errors set to Off on a production server, and it's a good idea to frequently check the error logs for possible problems.

If encountering any problems with your FileRun installation, please check your error log and include the related entries when requesting technical assistance.

General settings

 1open_basedir = /path-to-filerun:/path-to-user-files/

Important

Replace /path-to-filerun and /path-to-user-files above with actual paths.

This allows PHP access to the FileRun application files (to run the application) and your files, to allow FileRun to manage them. You can add more paths, as needed. Under Windows, separate the directories with a semicolon character (;).

 1allow_url_fopen = On
 2allow_url_include = Off
 3variables_order = "GPCS"
 4memory_limit = 128M
 5max_execution_time = 300
 6output_buffering = Off
 7output_handler = ""
 8zlib.output_compression = Off
 9zlib.output_handler = ""
10date.timezone = "UTC"

Note

Replace UTC with your actual time zone. For a list of possible values, see https://www.php.net/manual/en/timezones.php

Executable handling

 1enable_dl = Off
 2disable_functions = ""

Disabling functions such as exec and system is a common practice, but it does not necessarily make your PHP safer. Keep proc_open enabled in any case: FileRun starts third-party programs (ImageMagick, FFmpeg, Apache Tika, etc.) through it, and every feature that needs one stops working without it.

Session handling

 1session.save_handler = files
 2session.use_cookies = 1
 3session.use_only_cookies = 1
 4session.auto_start = 0
 5session.cookie_lifetime = 0
 6session.cookie_httponly = 1
 7session.cookie_secure = 1

It is a good practice to change session.name to something other than the PHP default.

Important

Make sure session.save_path is set in your PHP configuration file and points to an existing folder that PHP can write to.

Extensions needed

The following are the extensions needed by FileRun. For performance, it's recommended that you disable any other extension that PHP does not enable by default.

  • ionCube
  • curl
  • mbstring
  • OPcache (always built in, since PHP 8.5)
  • openssl
  • pdo
  • pdo_mysql
  • xml (xmlreader + xmlwriter)
  • zlib/zip

The following extensions are optional, but good to have:

  • fileinfo
  • exif
  • iconv

Outgoing HTTPS/SSL support

If your FileRun installation fails to connect to other servers because of SSL problems, the certificate bundle used for the connection is usually out of date.

FileRun chooses the bundle in this order, and the first one it finds is the one used:

  1. The openssl.cafile setting of your PHP configuration.
  2. The curl.cainfo setting of your PHP configuration.
  3. The bundle shipped with FileRun, at apps/Core/!classes/HTTP/cacert.pem.

So look at your PHP configuration first, on the info.php page described above. If either setting has a value, replace the file it points at. Only when neither is set does FileRun use its own copy.

Such a setting looks like this:

 1[CURL]
 2curl.cainfo = "/path/to/cacert.pem"

Download the current bundle from https://curl.se/ca/cacert.pem and put it in place of the file you identified. You will need to restart PHP (either by restarting PHP-FPM or Apache/Nginx, depending on how your server is configured) for the change to take effect.

Note

Replacing the bundle shipped with FileRun lasts only until the next FileRun update, which brings its own copy of that file. Setting openssl.cafile or curl.cainfo in your PHP configuration is not affected by updates.

Windows servers specific

 1fastcgi.impersonate = 0
 2cgi.fix_pathinfo = 1

To avoid troubles installing FileRun updates, make sure the above is set in your PHP configuration.

Performance optimizations

Make sure the xdebug extension is not loaded, as it slows down PHP considerably.

If you don't have other applications running on the same server, for a small performance improvement, you can disable the following PHP extensions which are of no use to FileRun.

  • readline
  • shmop
  • ftp
  • ffi
  • sysvsem
  • sysvshm
  • sysvmsg
  • sockets
  • gettext
  • tokenizer
  • mysqli
  • phar

Other notes

Besides the settings above, for everything else we recommend leaving the default PHP settings.

Remember, if you make any changes to the PHP configuration files you will need to restart the web server and/or PHP-FPM.