JReviews logo Docs
Menu
Version

Requirements

JReviews is available for Joomla and WordPress. In addition to meeting the server requirements for your chosen CMS, make sure your server meets the requirements to install and run JReviews.

CMS Compatibility

  • Joomla 4, 5, 6
  • WordPress 6.x

Server Requirements

To run JReviews you'll need a server that meets the following requirements

  • PHP 8.2 / 8.3 / 8.4
  • PDO Driver for MySQL
  • JSON PHP Extension
  • Mbstring PHP Extension
  • CURL PHP Extension
  • BCMath PHP Extension
  • Exif PHP Extension
  • Fileinfo PHP Extension
  • Zip PHP Extension
  • Intl PHP Extension
  • GD Library or ImageMagick

These PHP functions must not be disabled. JReviews calls them directly, so the feature listed beside each one fails with an error when the function is unavailable:

Function Needed for
tmpfile Media uploads and transfers to remote storage
sys_get_temp_dir Temporary files created while uploading media
finfo_open File type detection for uploaded files
getimagesize Image processing and thumbnail generation
ignore_user_abort Serving uploaded images and file downloads
error_log Recording the details of a failed page request

Some of these come from a PHP extension rather than the PHP core, so a missing function can mean the extension is not installed rather than that the function was disabled. finfo_open needs the Fileinfo extension listed above.

The JReviews control panel checks for all of these and reports the ones that are unavailable under Setup Issues, so you do not have to inspect the server configuration yourself.

Background Processing

JReviews runs slower work outside the page request, including video and audio encoding, listings import and export via the Import Add-on, queued jobs and outgoing email. This needs a PHP command line binary on the server, plus a way to launch it.

Either of the following is enough to launch it:

  • proc_open, proc_close, proc_terminate and proc_get_status, which is the route JReviews prefers
  • at least one of passthru, exec, shell_exec and system, used when the proc_* functions are unavailable

The binary has to be a real command line build of PHP. JReviews checks this and rejects one that identifies itself as LiteSpeed, CGI or FPM, because those cannot run the job correctly.

None of this stops the site from working. When background processing is unavailable, the same work runs during the page request instead, so visitors wait for it to finish.

Installing Packages

To be able to install the packages:

  • php.ini upload_max_filesize must be higher than 8M.

  • At least in Joomla 4.x the server's ulimit value for nofile - max number of open file descriptors must be higher than 7000.

    You can check this number in the server's shell using the command:

    ulimit -Hn
    

    The output should be something higher than 7000. Otherwise this needs to be updated in the server configuration files. Typically under /etc/security/limits.conf. Please consult with your host or server manager.

If you see the following error when installing s2framework in Joomla, then you've ran into the above limitation.

Install path does not exist.
Package Install: There was an error installing an extension: com_s2framework.zip

We've opened an issue with Joomla that includes the code to easily get around this issue. You can patch your Joomla installation with the code that works, but unless Joomla updates this function, you will need to do this on every Joomla update to ensure the patch is not lost. Please voice your support for this change in the above Github issue.

Video and Audio Encoding

While JReviews allows and makes it easy to embed videos from YouTube, Vimeo, Daylomotion and Twitch; you can also build your own video and audio streaming platform by letting users upload these directly to your site.

JReviews has integrations with several cloud encoding services, which is the recommended solution to offload the resource requirements from your server. However, it also supports local encoding using FFMPEG. You need to consult with your hosting company for help with getting these installed on your server. Video encoding requires the libx264 and fdk-aac encoders. While audio encoding requires libmp3lame.

For audio, it's possible to completely bypass encoding for MP3 files.

Encoding jobs are started through background processing, so the server also needs to meet the background processing requirements.

Recommended Hosts

We use and recommend Digital Ocean and Hetzner to host JReviews sites.

Development Environments

If you are looking for options to develop locally on your own machine, we recommend using Herd for both Windows and Mac.