diff --git a/install/windows/apache2.xml b/install/windows/apache2.xml index 212925516..80a164b26 100755 --- a/install/windows/apache2.xml +++ b/install/windows/apache2.xml @@ -1,9 +1,8 @@ - - + - Microsoft Windows 下的 Apache 2.x + 在Windows系统上安装 Apache 2.x 本节包括在 Microsoft Windows 系统中针对 Apache 2.x 安装 PHP 的指导与说明。 @@ -32,6 +31,11 @@ 以 Apache handler 方式安装 + + + 在使用 apache2handler SAPI 时,必须使用线程安全 (TS) 版本的 PHP。 + + 需要将以下几行加入到 Apache 的 &httpd.conf; 配置文件中以加载 Apache 2.x 的 PHP 模块: diff --git a/install/windows/commandline.xml b/install/windows/commandline.xml index 74297716c..cf25f51ed 100644 --- a/install/windows/commandline.xml +++ b/install/windows/commandline.xml @@ -1,16 +1,14 @@ - - - + - PHP 在 Microsoft Windows 下的命令行方式 + 在 Windows 系统上的命令行上运行 PHP 本章包含有针对在 Windows 下以命令行运行 PHP 的说明与提示。 - 应该先阅读 手工安装步骤! + 阅读 手工安装步骤! @@ -132,7 +130,7 @@ Windows Registry Editor Version 5.00 "C:\PHP Scripts\script" -arg1 -arg2 -arg3 ]]> - 或者如果 "C:\PHP Scripts" 路径位于 + 或者如果 "C:\PHP Scripts" 目录位于 PATH 环境变量中的话: - 不过如果想要通过此技巧将 PHP 脚本作为命令行管道过滤器的话,有个小问题。例如以下例子: + 当打算使用这种技术作为命令行过滤器运行 PHP 脚本时,会出现一个小问题,例如以下例子: - 此时脚本只是挂起,没有输出任何内容。要解决此问题,还需要做一个注册表修改。 + 脚本可能会直接挂起,没有任何输出。 + 要使其正常运行,需要对注册表进行另一项更改: - - + - Windows 下的 PHP 安装程序工具 - - - PHP 安装工具 - Windows 下使用 Apache 安装 PHP 应用程序: XAMPP 、WampServer 和 BitNami。 - - - 在 Windows 上设置和配置 Nginx 需要更多的配置。 - 参见 Nginx文档 - 来获取更多的设置帮助。 - - + 用于安装 PHP 的第三方工具 + &warn.install.third-party-support; + + XAMPP、 + WampServer 和 + Bitnami + 也会在 Windows 上使用 Apache 安装 PHP 应用程序。 + - + &reftitle.constants; @@ -42,6 +42,36 @@ + + + WEXITED + (int) + + + + + + + + + WSTOPPED + (int) + + + + + + + + + WNOWAIT + (int) + + + + + + @@ -1138,7 +1168,7 @@ - PRIO_* constants + PRIO_* 常量 PRIO_PGRP @@ -1196,7 +1226,7 @@ - FORK_* constants + FORK_* 常量 FORK_NOSIGCHLD @@ -1219,7 +1249,7 @@ - RF* constants + RF* 常量 RFCFDG @@ -1291,6 +1321,102 @@ + + <literal>waitid</literal>的第一个参数(<literal>idtype</literal>) + + + P_ALL + (int) + + + + 选择任何子进程。 + + + + + + P_PID + (int) + + + + 按进程 ID 选择。 + + + + + + P_PGID + (int) + + + + 按进程组 ID 选择。 + + + + + + P_PIDFD + (int) + + + + 按 PID 文件描述符选择。 + 仅适用于 Linux(自 Linux 5.4 起)。 + + + + + + P_UID + (int) + + + + 按有效用户 ID 选择。 + 仅适用于 NetBSD 和 FreeBSD。 + + + + + + P_GID + (int) + + + + 按有效组 ID 选择。 + 仅适用于 NetBSD 和 FreeBSD。 + + + + + + P_SID + (int) + + + + 按会话 ID 选择。 + 仅适用于 NetBSD 和 FreeBSD。 + + + + + + P_JAILID + (int) + + + + 按 jail 标识符选择。 + 仅适用于 FreeBSD。 + + + + + + + + pcntl_waitid + 等待子进程改变状态 + + + + &reftitle.description; + + boolpcntl_waitid + intidtypeP_ALL + intidnull + arraysiginfo[] + intflagsWEXITED + + + 获取与终止、停止和/或继续事件有关的状态信息,这些事件发生在调用者的一个子进程中。 + + + + 除非传递了 WNOHANG 标志,否则调用进程将被阻塞,直到发生错误, + 或者满足以下所有条件的状态信息变得可用: + + + + 由 idtypeid 参数指定的一组子进程中的一个子进程的状态信息。 + + + + + 状态信息的状态更改与在 flags 参数中设置的状态更改标志之一匹配。 + + + + + + + 如果在调用 pcntl_waitid 之前有匹配的状态信息可用,则返回将是立即的。 + 如果有两个或两个以上的子进程的匹配状态信息可用,则其状态报告的顺序是未指定的。 + + + + + 本文档涵盖了 POSIX 规范中 waitid 函数的说明,以及在 Linux、NetBSD 和 FreeBSD 上的实现中的一些额外参数。 + 请查看您系统的 waitid(2) man 手册,以获取有关 waitid 在您系统上的工作方式的具体细节。 + + + + + + &reftitle.parameters; + + + idtype + id + + + idtypeid 参数用于指定要等待的子进程。 + + + POSIX 标准 <parameter>idtype</parameter> 和 <parameter>id</parameter> 参数 + + + + 如果 idtypeP_ALL + + 等待任何子进程,id 被忽略。 + + + + 如果 idtypeP_PID + + 等待进程 ID 等于 id 的子进程。 + + + + 如果 idtypeP_PGID + + 等待进程组 ID 等于 id 的任何子进程。 + + + + +
+ + Linux 特定 <parameter>idtype</parameter> 和 <parameter>id</parameter> 参数 + + + + 如果 idtypeP_PIDFD(自 Linux 5.4 起) + + 等待由 id 中指定的 PID 文件描述符引用的子进程。 + (有关 PID 文件描述符的详细信息,请参见 Linux pidfd_open(2) man 手册) + + + + +
+ + NetBSD 和 FreeBSD 特定 <parameter>idtype</parameter> 和 <parameter>id</parameter> 参数 + + + + + 如果 idtypeP_UID + + + 等待有效用户 ID 等于 id 的进程。 + + + + + 如果 idtypeP_GID + + + 等待有效组 ID 等于 id 的进程。 + + + + + 如果 idtypeP_SID + + + 等待会话 ID 等于 id 的进程。 + 如果子进程启动了自己的会话,其会话 ID 将与其进程 ID 相同。 + 否则,子进程的会话 ID 将与调用者的会话 ID 匹配。 + + + + +
+ + FreeBSD 特定 <parameter>idtype</parameter> 和 <parameter>id</parameter> 参数 + + + + + 如果 idtypeP_JAILID + + + 等待在其 jail 标识符等于 id 的 jail 中的进程。 + + + + +
+
+
+ + siginfo + + + siginfo 参数设置为一个包含有关信号的信息的数组。 + + + siginfo 数组可能包含以下键: + + signo:信号量 + errno:系统错误号 + code:信号代码 + status:退出值或信号 + pid:发送进程 ID + uid:发送进程的真实用户 ID + utime:用户消耗的时间 + stime:系统消耗的时间 + + + + + + flags + + + flags 的值是零个或多个以下常量的值,这些常量通过 OR 运算在一起: + + <parameter>flags</parameter> 的可能值 + + + + WCONTINUED + + 为任何继续自作业控制停止的子进程返回状态。 + 控制停止后,要么没有报告过其状态,要么只有通过设置了 WNOWAIT + 标志的 pcntl_waitid 调用报告过其状态。 + + + + WEXITED + + 返回已退出的子进程的状态。 + + + + WNOHANG + + 如果没有可用的状态,则不挂起;立即返回。 + + + + WNOWAIT + + 保持状态返回在 siginfo 中的进程处于可等待状态。 + 这不会影响进程的状态;在此调用完成后,可以再次等待该进程。 + + + + WSTOPPED + + 返回已停止的子进程的状态。 + 控制停止后,要么没有报告过其状态,要么只有通过设置了 WNOWAIT + 标志的 pcntl_waitid 调用报告过其状态。 + + + + +
+
+
+
+
+
+ + + &reftitle.returnvalues; + + pcntl_waitid 如果指定了 WNOHANG 并且状态对于由 + idtypeid 指定的任何进程都不可用,则返回 &true;。 + + + + 如果由于其一个子进程的状态更改而返回 &true;,则 pcntl_waitid 返回 &true;。 + + + + 否则,返回 &false;,并且可以使用 pcntl_get_last_error 来获取 errno 错误号。 + + + + + 一旦获得了一个 errno 错误号,可以使用 pcntl_strerror 来获取与之关联的文本消息。 + + + + + + &reftitle.errors; + + 错误号 (<literal>errno</literal>) 值 + + + + ECHILD + + 调用进程没有未等待的子进程。 + + + + EINTR + + pcntl_waitid 被一个信号中断。 + + + + EINVAL + + 为 flags 指定了一个无效值, + 或者 idtypeid 指定了一组无效的进程。 + + + + +
+
+ + + &reftitle.seealso; + + + pcntl_waitpid + pcntl_wait + pcntl_fork + pcntl_signal + pcntl_wifexited + pcntl_wifstopped + pcntl_wifsignaled + pcntl_wexitstatus + pcntl_wtermsig + pcntl_wstopsig + + + + +
+