Installation on Unix systems
Table of Contents
This section will guide you through the general configuration and
installation of PHP on Unix systems. Be sure to investigate any
sections specific to your platform or web server before you begin
the process.
As our manual outlines in the General
Installation Considerations section, we are mainly dealing with
web centric setups of PHP in this section, although we will cover
setting up PHP for command line usage as well.
There are several ways to install PHP for the Unix platform, either
with a compile and configure process, or through various
pre-packaged methods. This documentation is mainly focused around
the process of compiling and configuring PHP. Many Unix like systems
have some sort of package installation system. This can assist in
setting up a standard configuration, but if you need to have a
different set of features (such as a secure server, or a different
database driver), you may need to build PHP and/or your web server.
If you are unfamiliar with building and compiling your own software,
it is worth checking to see whether somebody has already built a
packaged version of PHP with the features you need.
Prerequisite knowledge and software for compiling:
-
Basic Unix skills (being able to operate "make" and a C
compiler)
-
An ANSI C compiler
-
A web server
-
Any module specific components (such as GD,
PDF libs, etc.)
When building directly from Git sources or after custom modifications you
might also need:
-
autoconf:
-
PHP 7.3 and later: 2.68+
-
PHP 7.2: 2.64+
-
PHP 7.1 and earlier: 2.59+
-
automake: 1.4+
-
libtool: 1.4.x+ (except 1.4.2)
-
re2c:
-
PHP 8.3 and later: 1.0.3+
-
PHP 8.2 and earlier: 0.13.4+
-
bison:
-
PHP 7.4 and later: 3.0.0+
-
PHP 7.3 and earlier: 2.4+ (including Bison 3.x)
The initial PHP setup and configuration process is controlled by the
use of the command line options of the configure
script. You could get a list of all available options along with short
explanations running ./configure --help.
Our manual documents the different options separately. You will
find the core options in the appendix,
while the different extension specific options are described on the
reference pages.
When PHP is configured, you are ready to build the module and/or
executables. The command make should
take care of this. If it fails and you can't figure out why, see
the Problems section.
Note:
Some Unix systems (such as OpenBSD and SELinux) may disallow mapping pages
both writable and executable for security reasons, what is called PaX
MPROTECT or W^X violation protection. This kind of memory mapping is,
however, necessary for PCRE's JIT support, so either PHP has to be built
without PCRE's JIT support, or the
binary has to be whitelisted by any means provided by the system.
Note:
Cross-compiling for ARM with the Android toolchain is currently not supported.