Install
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.3and8.4: version14.4or newer. - On PHP
8.5: version15.5.0or 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:

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.logwith 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-filerunand/path-to-user-filesabove 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
UTCwith 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_pathis 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:
- The
openssl.cafilesetting of your PHP configuration. - The
curl.cainfosetting of your PHP configuration. - 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.cafileorcurl.cainfoin 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.