php-doc-en/install/unix/index.xml
2021-01-13 17:52:07 +01:00

172 lines
5.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<chapter xml:id="install.unix" xmlns="http://docbook.org/ns/docbook">
<title>Installation on Unix systems</title>
<para>
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.
</para>
<para>
As our manual outlines in the <link linkend="install.general">General
Installation Considerations</link> 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.
</para>
<para>
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.
</para>
<para>
Prerequisite knowledge and software for compiling:
<itemizedlist>
<listitem>
<simpara>
Basic Unix skills (being able to operate "make" and a C
compiler)
</simpara>
</listitem>
<listitem>
<simpara>
An ANSI C compiler
</simpara>
</listitem>
<listitem>
<simpara>
A web server
</simpara>
</listitem>
<listitem>
<simpara>
Any module specific components (such as <acronym>GD</acronym>,
<acronym>PDF</acronym> libs, etc.)
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
When building directly from Git sources or after custom modifications you
might also need:
<itemizedlist>
<listitem>
<simpara>
autoconf: 2.59+ (for PHP &gt;= 7.0.0), 2.64+ (for PHP &gt;= 7.2.0)
</simpara>
</listitem>
<listitem>
<simpara>
automake: 1.4+
</simpara>
</listitem>
<listitem>
<simpara>
libtool: 1.4.x+ (except 1.4.2)
</simpara>
</listitem>
<listitem>
<simpara>
re2c: 0.13.4+
</simpara>
</listitem>
<listitem>
<simpara>
bison:
</simpara>
<itemizedlist>
<listitem>
<simpara>
PHP 7.0 - 7.3: 2.4 or later (including Bison 3.x)
</simpara>
</listitem>
<listitem>
<simpara>
PHP 7.4: &gt; 3.0
</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</para>
<para>
The initial PHP setup and configuration process is controlled by the
use of the command line options of the <command>configure</command>
script. You could get a list of all available options along with short
explanations running <command>./configure --help</command>.
Our manual documents the different options separately. You will
find the <link linkend="configure.about">core options in the appendix</link>,
while the different extension specific options are described on the
reference pages.
</para>
<para>
When PHP is configured, you are ready to build the module and/or
executables. The command <command>make</command> should
take care of this. If it fails and you can't figure out why, see
the <link linkend="install.problems">Problems section</link>.
</para>
<note>
<para>
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
<link linkend="pcre.installation">without PCRE's JIT support</link>, or the
binary has to be whitelisted by any means provided by the system.
</para>
</note>
<note>
<simpara>
Cross-compiling for ARM with the Android toolchain is currently not supported.
</simpara>
</note>
<!-- web server specific nodes -->
&install.unix.apache1;
&install.unix.apache2;
&install.unix.nginx;
&install.unix.lighttpd-14;
&install.unix.litespeed;
&install.unix.commandline;
<!-- operating system specific nodes -->
&install.unix.hpux;
&install.unix.openbsd;
&install.unix.solaris;
<!-- distribution specific nodes -->
&install.unix.debian;
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->