[DOC-CVS] [doc-en] master: Add Alpine Linux installation documentation (#5266)

[email protected] (Louis-Arnaud via GitHub)
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: Louis-Arnaud (lacatoire)
Committer: GitHub (web-flow)
Pusher: lacatoire
Date: 2026-08-27T14:35:04+02:00

Commit: https://github.com/php/doc-en/commit/5a5899391ef91a4d42bca9495c8a1d323d38f23a
Raw diff: https://github.com/php/doc-en/commit/5a5899391ef91a4d42bca9495c8a1d323d38f23a.diff

Add Alpine Linux installation documentation (#5266)

* Add Alpine Linux installation documentation

Fixes #3782

* fix(alpine): align structure with dnf/pacman and correct technical details

- Rewrite intro to match the established pattern (while PHP can be
  installed from source...)
- Add missing simpara after &warn.install.third-party-support;
- Add version substitution note: replace 83 with the version available
  on the Alpine release
- Remove redundant php83-common from apk add (auto-dependency of php83,
  confirmed via Docker)
- Explain the php83-fpm package / php-fpm83 service naming difference
- Rename sect2 title to 'Better control of configuration' for consistency
  with dnf.xml and pacman.xml
- Replace 'modules' with 'extensions' (correct PHP terminology)
- State explicitly that extensions are auto-enabled via conf.d on install
  (confirmed via Docker: apk add php83-gd creates conf.d/00_gd.ini)

Changed paths:
  A  install/unix/alpine.xml
  M  install/unix/index.xml


Diff:

diff --git a/install/unix/alpine.xml b/install/unix/alpine.xml
new file mode 100644
index 000000000000..af35e4ce7ef2
--- /dev/null
+++ b/install/unix/alpine.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<sect1 xml:id="install.unix.alpine" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Installing from packages on Alpine Linux</title>
+ <simpara>
+  While PHP can be installed from source, it is also available through
+  packages on Alpine Linux and derivatives that use the
+  <command>apk</command> package manager.
+ </simpara>
+ &warn.install.third-party-support;
+ <simpara>
+  The packages can be installed using the <command>apk</command> package manager.
+ </simpara>
+ <sect2 xml:id="install.unix.alpine.packages">
+  <title>Installing packages</title>
+  <simpara>
+   PHP packages in Alpine Linux include the major version number in their name
+   (e.g. <literal>php83</literal> for PHP 8.3). In the examples below, replace
+   <literal>83</literal> with the PHP version available on your Alpine Linux release.
+  </simpara>
+  <simpara>
+   Before installing a package, ensure the package index is up to
+   date by running <command>apk update</command>.
+  </simpara>
+  <example xml:id="install.unix.alpine.example">
+   <title>Alpine Install Example</title>
+   <programlisting role="shell">
+<![CDATA[
+# apk add php83
+]]>
+   </programlisting>
+  </example>
+  <simpara>
+   Alpine does not configure PHP for a web server automatically.
+   For FastCGI setups, install <literal>php83-fpm</literal> and enable
+   the <literal>php-fpm83</literal> OpenRC service (note that the package
+   name and the service name use different ordering of the version suffix).
+   For example:
+  </simpara>
+  <example xml:id="install.unix.alpine.example2">
+   <title>Enabling and starting PHP-FPM</title>
+   <programlisting role="shell">
+<![CDATA[
+# apk add php83-fpm
+# rc-update add php-fpm83 default
+# rc-service php-fpm83 start
+]]>
+   </programlisting>
+  </example>
+ </sect2>
+ <sect2 xml:id="install.unix.alpine.config">
+  <title>Better control of configuration</title>
+  <para>
+   Only the core extensions are installed with the base package. Additional
+   extensions such as
+   <simplelist type="inline">
+    <member><link linkend="book.mysql">MySQL</link></member>
+    <member><link linkend="book.curl">cURL</link></member>
+    <member><link linkend="book.image">GD</link></member>
+    <member>etc.</member>
+   </simplelist>
+   can be installed as separate packages.
+  </para>
+  <example xml:id="install.unix.alpine.config.example">
+   <title>Searching for available PHP packages</title>
+   <programlisting role="shell">
+<![CDATA[
+# apk search php83
+]]>
+   </programlisting>
+  </example>
+  <simpara>
+   The list of packages includes the CLI, FPM, and many extensions.
+   When extensions are installed, their dependencies are automatically
+   resolved.
+  </simpara>
+  <example xml:id="install.unix.alpine.config.example2">
+   <title>Install PHP with MySQL, GD</title>
+   <programlisting role="shell">
+<![CDATA[
+# apk add php83-mysqli php83-gd
+]]>
+   </programlisting>
+  </example>
+  <simpara>
+   Extensions are automatically enabled when installed; no manual
+   &php.ini; editing is required. Configuration files are placed in
+   <filename>/etc/php83/conf.d/</filename>. After installing new
+   extensions, PHP-FPM (or the web server) needs to be restarted for
+   the changes to take effect.
+  </simpara>
+ </sect2>
+</sect1>
+<!-- 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
+-->
diff --git a/install/unix/index.xml b/install/unix/index.xml
index 646d001dd396..31b9d8f97a5a 100644
--- a/install/unix/index.xml
+++ b/install/unix/index.xml
@@ -27,6 +27,7 @@
  <!-- distribution specific nodes -->
  &install.unix.debian;
  &install.unix.dnf;
+ &install.unix.alpine;
  &install.unix.pacman;
  &install.unix.openbsd;
  <!-- general from-source instructions -->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.