Skip to content

Commit 0207096

Browse files
committed
Update install
1 parent d3e0b79 commit 0207096

File tree

4 files changed

+245
-1
lines changed

4 files changed

+245
-1
lines changed

install/composer.xml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<!-- EN-Revision: 3678a6db126048bf052180c85577daab044759aa Maintainer: mowangjuanzi Status: ready -->
4+
<chapter xml:id="install.composer" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="chunk:false">
5+
<title>Composer 与第三方软件包的安装</title>
6+
7+
<sect1 xml:id="install.composer.intro">
8+
<title>Composer 简介</title>
9+
<simpara>
10+
&link.composer; 是 PHP 的依赖管理工具,可用于定义项目所使用的第三方代码包,并轻松完成安装与更新。它利用
11+
PHP 内置的<link linkend="language.oop5.autoload">类自动加载功能</link>、PHP 软件包仓库(如 <link
12+
xlink:href="&url.packagist;">Packagist</link>),以及通用的项目结构和编码规范。
13+
</simpara>
14+
<simpara>
15+
例如,某个 PHP 应用或网站需要处理 <abbrev>UUID</abbrev> 值,可使用 <link
16+
xlink:href="&url.packagist.package;ramsey/uuid">Ben Ramsey 开发的
17+
<literal>ramsey/uuid</literal> 软件包</link>,该包实现了 <link
18+
xlink:href="&url.rfc;4122">RFC 4122</link> 所定义的广泛使用和认可的 UUID 类型。
19+
</simpara>
20+
<simpara>
21+
简而言之,这一过程通过在项目中创建 <literal>composer.json</literal> 文件,使用 Composer
22+
安装该软件包的最新版本,并引入 Composer 的自动加载脚本以供代码使用。<link
23+
xlink:href="&url.composer;doc/01-basic-usage.md">Composer
24+
“基本用法”文档</link>对此有更详细的说明。
25+
</simpara>
26+
<example>
27+
<title>
28+
<literal>composer.json</literal> 需要单个软件包
29+
</title>
30+
<programlisting role="javascript">
31+
<![CDATA[
32+
{
33+
"require": {
34+
"ramsey/uuid": "^4.7"
35+
}
36+
}
37+
]]>
38+
</programlisting>
39+
</example>
40+
41+
</sect1>
42+
</chapter>

install/unix/dnf.xml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<!-- EN-Revision: 4cb53ecbd763db2db808e90d7eda63afb380e6df Maintainer: mowangjuanzi Status: ready -->
4+
<sect1 xml:id="install.unix.dnf" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
5+
<title>在使用 DNF 的 GNU/Linux 发行版上通过软件包安装</title>
6+
<simpara>
7+
PHP 既可从源码安装,也可通过软件包在使用 DNF 的系统上安装,例如
8+
Red Hat Enterprise Linux、OpenSUSE、Fedora、CentOS、Rocky
9+
Linux 和 Oracle Enterprise Linux。
10+
</simpara>
11+
&warn.install.third-party-support;
12+
<simpara>
13+
这些软件包可通过 <command>dnf</command> 命令安装。
14+
</simpara>
15+
<sect2 xml:id="install.unix.dnf.packages">
16+
<title>安装软件包</title>
17+
<simpara>
18+
首先,注意可能还需要安装其他相关软件包,例如用于 <link xlink:href="&url.pear;">PEAR</link> 的
19+
<literal>php-pear</literal>,或用于 <link linkend="book.mysqlnd">MySQL 扩展</link>的
20+
<literal>php-mysqlnd</literal>。
21+
</simpara>
22+
<simpara>
23+
其次,在安装软件包前,建议确保软件包列表为最新状态。通常可通过运行 <command>dnf update</command> 命令完成此操作。
24+
</simpara>
25+
<example xml:id="install.unix.dnf.example">
26+
<title>DNF 安装示例</title>
27+
<programlisting role="shell">
28+
<![CDATA[
29+
# dnf install php php-common
30+
]]>
31+
</programlisting>
32+
</example>
33+
<simpara>
34+
DNF 会自动为 Web 服务器安装 PHP 的配置,但可能需要重启 Web 服务器才能使更改生效。例如:
35+
</simpara>
36+
<example xml:id="install.unix.dnf.example2">
37+
<title>安装 PHP 后重启 Apache</title>
38+
<programlisting role="shell">
39+
<![CDATA[
40+
# sudo systemctl restart httpd
41+
]]>
42+
</programlisting>
43+
</example>
44+
</sect2>
45+
<sect2 xml:id="install.unix.dnf.config">
46+
<title>更精细的配置控制</title>
47+
<para>
48+
上一节中仅安装了 PHP 的核心模块。通常还需要额外的模块,例如 <simplelist type="inline">
49+
<member><link linkend="book.mysql">MySQL</link></member>
50+
<member><link linkend="book.curl">cURL</link></member>
51+
<member><link linkend="book.image">GD</link></member>
52+
<member>等</member>
53+
</simplelist>,这些模块也可通过 <command>dnf</command> 命令进行安装。
54+
</para>
55+
<example xml:id="install.unix.dnf.config.example">
56+
<title>列出额外 PHP 软件包的方法</title>
57+
<programlisting role="shell">
58+
<![CDATA[
59+
# dnf search php
60+
]]>
61+
</programlisting>
62+
</example>
63+
<simpara>
64+
软件包列表将包含大量基础 PHP 组件(如 <literal>php-cli</literal>、<literal>php-fpm</literal>
65+
和 <literal>php-devel</literal>)以及众多 PHP 扩展。安装扩展时,系统会根据依赖关系自动安装所需的其他软件包。
66+
</simpara>
67+
<example xml:id="install.unix.dnf.config.example2">
68+
<title>安装 PHP 的 MySQL、GD 扩展</title>
69+
<programlisting role="shell">
70+
<![CDATA[
71+
# dnf install php-mysqlnd php-gd
72+
]]>
73+
</programlisting>
74+
</example>
75+
<simpara>
76+
DNF 会自动在不同的 &php.ini; 相关文件(如 <filename>/etc/php/8.3/php.ini</filename>、<filename>/etc/php/8.3/conf.d/*.ini</filename>
77+
等)中添加相应的行,并根据扩展添加类似 <literal>extension=foo.so</literal> 的条目。但需重启 Web 服务器(如 Apache)后,这些更改才会生效。
78+
</simpara>
79+
</sect2>
80+
</sect1>
81+
<!-- Keep this comment at the end of the file
82+
Local variables:
83+
mode: sgml
84+
sgml-omittag:t
85+
sgml-shorttag:t
86+
sgml-minimize-attributes:nil
87+
sgml-always-quote-attributes:t
88+
sgml-indent-step:1
89+
sgml-indent-data:t
90+
indent-tabs-mode:nil
91+
sgml-parent-document:nil
92+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
93+
sgml-exposed-tags:nil
94+
sgml-local-catalogs:nil
95+
sgml-local-ecat-files:nil
96+
End:
97+
vim600: syn=xml fen fdm=syntax fdl=2 si
98+
vim: et tw=78 syn=sgml
99+
vi: ts=1 sw=1
100+
-->

install/unix/source.xml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<!-- EN-Revision: 1c9fb12650addc936f5a0d5d1edc42cd32e9c765 Maintainer: mowangjuanzi Status: ready -->
4+
<sect1 xml:id="install.unix.source" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
5+
<title>在 Unix 和 macOS 系统上以源码安装</title>
6+
<para>
7+
编译所需的前置软件:
8+
<simplelist>
9+
<member>
10+
<link xlink:href="&url.gnu.make;">GNU <command>make</command></link>
11+
</member>
12+
<member>
13+
C 编译器(自 PHP 8.0.0 起要求支持 C99 标准;自 PHP 8.4.0 起要求支持 C11 标准)
14+
</member>
15+
<member>
16+
Web 服务器
17+
</member>
18+
<member>
19+
各模块所需的特定组件(例如 <acronym>GD</acronym>、<acronym>PDF</acronym> 库等)
20+
</member>
21+
</simplelist>
22+
</para>
23+
24+
<para>
25+
直接从 Git 源码构建或进行自定义修改后,可能需要以下额外工具:
26+
<itemizedlist>
27+
<listitem>
28+
<simpara>
29+
<link xlink:href="&url.gnu.autoconf;">autoconf</link>:
30+
</simpara>
31+
<simplelist>
32+
<member>
33+
PHP 7.3 及其以后:2.68+
34+
</member>
35+
<member>
36+
PHP 7.2:2.64+
37+
</member>
38+
<member>
39+
PHP 7.1 及其更早:2.59+
40+
</member>
41+
</simplelist>
42+
</listitem>
43+
<listitem>
44+
<simpara>
45+
<link xlink:href="&url.re2c;">re2c</link>:
46+
</simpara>
47+
<simplelist>
48+
<member>
49+
PHP 8.3 及其以后:1.0.3+
50+
</member>
51+
<member>
52+
PHP 8.2 及其更早:0.13.4+
53+
</member>
54+
</simplelist>
55+
</listitem>
56+
<listitem>
57+
<simpara>
58+
<link xlink:href="&url.bison;">bison</link>:
59+
</simpara>
60+
<simplelist>
61+
<member>
62+
PHP 7.4 及其以后:3.0.0+
63+
</member>
64+
<member>
65+
PHP 7.3 及其更早:2.4+(包含 Bison 3.x)
66+
</member>
67+
</simplelist>
68+
</listitem>
69+
</itemizedlist>
70+
</para>
71+
72+
<simpara>
73+
有关从源码编译 PHP 的详细步骤,请参见源码压缩包中的 <link xlink:href="&url.php.git.src.master.view;README.md">README.md</link> 文件。
74+
</simpara>
75+
76+
<simpara>
77+
PHP 的初始设置和配置过程由 <command>configure</command> 脚本的命令行选项控制。运行 <command>./configure --help</command>
78+
可列出所有可用选项及其简要说明。本手册对各项选项分别进行了说明:<link
79+
linkend="configure.about">核心选项位于附录</link>中,各扩展的特有选项则在其对应的参考页面中描述。
80+
</simpara>
81+
82+
<simpara>
83+
配置脚本执行完成后,可使用 <command>make</command> 命令构建 PHP。<link
84+
linkend="faq.installation">常见问题解答中的安装部分</link>提供了有关如何处理构建问题的更多信息。
85+
</simpara>
86+
87+
<note>
88+
<simpara>
89+
某些 Unix 系统(如 OpenBSD 和 SELinux)出于安全原因,禁止同时将内存页映射为可写和可执行,这种机制称为 <link
90+
xlink:href="&url.install.unix.pax-mprotect;">PaX MPROTECT</link> 或 » <link
91+
xlink:href="&url.install.unix.w-x-violation;">W^X 违规保护</link>。而 PCRE 的 JIT
92+
需要此类内存映射,因此要么在构建 PHP 时<link linkend="pcre.installation">禁用 PCRE 的 JIT
93+
支持</link>,要么通过系统提供的机制将 PHP 二进制文件加入白名单。
94+
</simpara>
95+
</note>
96+
97+
<note>
98+
<simpara>
99+
目前不支持使用 Android 工具链进行 ARM 交叉编译。
100+
</simpara>
101+
</note>
102+
</sect1>

install/windows/recommended.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ opcache.enable_cli=On
2323
]]>
2424
</screen>
2525
</example>
26-
然后重新启动你的 WEB 服务器。更多信息,请参阅:<link linkend="opcache.configuration">OpCache 配置</link> 章节。
26+
然后重新启动你的 WEB 服务器。更多信息,请参阅:<link linkend="opcache.configuration">OpCache 配置</link>章节。
2727
</para>
2828
</sect2>
2929
<sect2>

0 commit comments

Comments
 (0)