# Setup Overview

The Phoronix Test Suite supports Linux, Apple macOS, Microsoft Windows, Solaris, Hurd, BSD, and other operating system environments. The only Linux distribution-specific code deals with the external dependencies support feature that are set by individual test profiles. If you are not running one of the supported Linux distributions, Solaris, BSD, or macOS, you may need to install a package manually (as instructed by the Phoronix Test Suite) in order for a test to run. An example of an external dependency would be GCC and the OpenGL Utility Toolkit being needed for test profiles that build an OpenGL benchmark from source-code.

Among the distributions where the Phoronix Test Suite has been officially tested include Ubuntu, Fedora, Mandriva / Mageia, Gentoo, PCLinuxOS, Arch Linux, Pardus, OpenSuSE, Optware, webOS, Zenwalk, CentOS, Red Hat Enterprise Linux, Oracle Linux, Scientific Linux, Debian, Mint, MEPIS, Alpine Linux, Void Linux, Intel Clear Linux, and Amazon Linux EC2.

Among the tested BSD distributions are FreeBSD, PC-BSD, NetBSD, OpenBSD, Debian GNU/kFreeBSD, and DragonflyBSD. Tested Solaris distributions include OpenSolaris, Solaris Express 11, Oracle Solaris 11, OpenIndiana, Illumos, and Nexenta.

# Dependencies

The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions, the needed package is commonly called php5-cli or php-cli or php7 or php. It is important to note that only PHP for the command-line is needed and not a web server (Apache) or other packages commonly associated with PHP and its usage by web-sites. The PHP5 version required is PHP 5.3+ and can also be found at www.php.net. PHP 7 is fully supported by the Phoronix Test Suite as well as HHVM.

The phoronix-test-suite.bat Windows launcher for the Phoronix Test Suite will automatically download and setup PHP on the local system if PHP is not present already.

As part of the PHP requirement, the following PHP extensions are required and/or highly recommended in order to take advantage of the Phoronix Test Suite capabilities:

- PHP DOM is needed for XML operations and must be installed for the Phoronix Test Suite to function.
- PHP ZIP is needed for file compression and decompression and specifically dealing with test profiles and suites obtained via OpenBenchmarking.org or when uploading such tests and suites.
- PHP OpenSSL is used for enabling HTTPS communication with Phoronix Test Suite / OpenBenchmarking.org servers.
- PHP GD is highly recommended for rendering of test data to JPEG and PNG image formats and is selectively used in other image operations.
- PHP Zlib is highly recommended for greater data compression when dealing with remote OpenBenchmarking.org assets.
- PHP PCNTL is used for multi-threaded system sensor monitoring support during the testing process and other threaded tasks by the Phoronix Test Suite module framework.
- PHP POSIX is used for reliably obtaining more system information in an efficient manner.
- PHP CURL is supported as an alternative networking library for improved network performance in downloading test files and other operations.
- PHP FPDF is used to generate PDF reports of test data.

Without all of these extensions, some capabilities of the Phoronix Test Suite will not be available. Many of these packages are enabled by default and do not require any additional installation steps on most Linux distributions, otherwise they are often found in the package vendor's repository.

# Notes

## General

You may need to modify the php.ini file on your system in order to support uploading results to OpenBenchmarking.org or logging into your OpenBenchmarking.org account. The allow_url_fopen, file_uploads, and allow_url_include options must be set to true in the PHP configuration.

Major updates to the Phoronix Test Suite are released on a quarterly basis. The latest stable and development versions of the Phoronix Test Suite are available at Phoronix-Test-Suite.com. The Git repository where the latest Phoronix Test Suite code is provided is hosted at GitHub.com/phoronix-test-suite and can be cloned/pulled from the https://github.com/phoronix-test-suite/phoronix-test-suite.git repository location. The latest upstream development code is housed in the master tree while older Phoronix Test Suite releases are available in their respective Git branches based upon the release's code-name.

If building the PHP package from upstream sources, it should just be a matter of running ./configure with the --enable-zip flag (all other requirements should be apart of the stock PHP configuration) to satisfy the PHP needs of the Phoronix Test Suite.

## File Structure

If manually changing the location of the phoronix-test-suite launcher file, the PTS_USER_PATH environment variable must be adjusted inside the file to reflect the absolute location that leads to the root directory of the pts and pts-core folders. The pts-core directory contains the "engine" of the Phoronix Test Suite.

## Running Locally

The Phoronix Test Suite can be simply extracted from the downloaded .tar.gz or .zip file or it can also be installed system-wide. If you just wish to run the Phoronix Test Suite without installing it, open a terminal and run ./phoronix-test-suite <options> from the same directory.

## Generic Installation

Running install-sh from the root directory of the Phoronix Test Suite will install the software for system-wide access. By default the phoronix-test-suite executable is in /usr/bin/, the Phoronix Test Suite files in /usr/share/phoronix-test-suite/, and the documentation in /usr/share/doc/phoronix-test-suite/. Root access is required. The default installation prefix is /usr/ but can be adjusted as the first argument (example: install-sh /home/user/ to install the Phoronix Test Suite in your home directory).

## Debian/Ubuntu Installation

Debian/Ubuntu users are able to follow the Generic Installation instructions or can obtain a Debian Package from the Phoronix Test Suite web-site. The package contains the phoronix-test-suite executable in /usr/bin/, the Phoronix Test Suite files in /usr/share/phoronix-test-suite/, and the documentation in /usr/share/doc/phoronix-test-suite/.

## Fedora / Red Hat Installation

The Phoronix Test Suite can be installed on Fedora, Red Hat Enterprise Linux, and CentOS systems using the generic installation method. Alternatively, a phoronix-test-suite package is available in recent versions of the Fedora repository and in the EPEL (Extra Packages for Enterprise Linux) repository for Red Hat Enterprise Linux. However, at times this package may be out-of-date compared to upstream stable.

## BSD Installation

The Phoronix Test Suite also supports *BSD operating systems. However, like the Solaris support, not all test profiles are compatible with BSD operating systems, but should run well on the likes of FreeBSD and DragonFlyBSD.

## MacOS Installation

The Phoronix Test Suite is fully supported on Apple's macOS operating system. PHP ships with macOS by default so it's simply a matter of downloading the Phoronix Test Suite package, extracting it, and running the executable. For tests that rely upon a compiler, Apple's XCode with GCC and LLVM can be utilized.