在 macOS Monterey 之前使用捆绑的 PHP

PHP 从 macOS X (10.0.0) 开始捆绑到 macOS Monterey (12.0.0) 之前的 macOS 版本中。使用默认 Web 服务器启用 PHP 需要在 Apache 配置文件 httpd.conf 中取消注释几行,而 CGI 和/或 CLI 默认情况下是启用的(可以通过终端程序轻松访问)。

使用以下说明启用 PHP 旨在快速设置本地开发环境。强烈建议始终将 PHP 升级到最新版本。像大多数实时软件一样,更新的版本是为了修复错误和添加功能而创建的,PHP 也不例外。有关详细信息,请参阅相应的 macOS 安装文档。以下说明针对初学者,并提供了有关使默认设置正常工作的详细信息。鼓励所有用户编译或安装新的打包版本。

标准安装类型是使用 mod_php,在 macOS 上为 Apache Web 服务器(默认 Web 服务器,可以通过系统偏好设置访问)启用捆绑的 mod_php 包含以下步骤:

  1. 找到并打开 Apache 配置文件。默认情况下,位置如下:/private/etc/apache2/httpd.conf 使用 FinderSpotlight 查找此文件可能很困难,因为默认情况下它是私有的,并且归 root 用户所有。

    注意 一种打开它的方法是在终端中使用基于 Unix 的文本编辑器,例如 nano,并且由于文件归 root 所有,因此我们将使用 sudo 命令来打开它(作为 root),例如在 终端应用程序中键入以下内容(之后,它将提示输入密码):sudo nano /private/etc/apache2/httpd.conf 值得注意的 nano 命令:^w(搜索)、^o(保存)和 ^x(退出),其中 ^ 代表 Ctrl 键。

    注意 早于 10.5 的 Mac OS X 版本捆绑了旧版本的 PHP 和 Apache。因此,旧机器上的 Apache 配置文件可能是 /etc/httpd/httpd.conf

  2. 使用文本编辑器,取消注释类似于以下内容的行(通过删除 #)(这两行通常不在一起,在文件中找到它们):

    # LoadModule php5_module libexec/httpd/libphp5.so
    
    # AddModule mod_php5.c
    
    注意位置/路径。将来构建 PHP 时,应替换或注释掉以上文件。

  3. 确保所需的扩展将解析为 PHP(示例:.php .html 和 .inc)

    由于以下语句已存在于 httpd.conf 中(从 Mac Panther 开始),因此一旦启用 PHP,.php 文件将自动解析为 PHP。

    <IfModule mod_php5.c>
        # If php is turned on, we respect .php and .phps files.
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        # Since most users will want index.php to work we
        # also automatically enable index.php
        <IfModule mod_dir.c>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    

    注意:

    在 Mac OS X 10.5(Leopard)之前,捆绑的是 PHP 4 而不是 PHP 5,在这种情况下,上述说明将略有不同,将 5 改为 4。

  4. 确保 DirectoryIndex 加载所需的默认索引文件 这也在 httpd.conf 中设置。通常使用 index.phpindex.html。默认情况下,index.php 是启用的,因为它也在上面显示的 PHP 检查中。相应地调整。
  5. 设置 php.ini 位置或使用默认位置 macOS 上的典型默认位置是 /usr/local/php/php.ini,调用 phpinfo() 将显示此信息。如果未使用 php.ini,PHP 将使用所有默认值。另请参见有关 查找 php.ini 的相关常见问题解答。
  6. 找到或设置 DocumentRoot 这是所有 Web 文件的根目录。此目录中的文件将从 Web 服务器提供,因此 PHP 文件将在输出到浏览器之前解析为 PHP。典型的默认路径是 /Library/WebServer/Documents,但这可以在 httpd.conf 中设置为任何内容。或者,单个用户的默认 DocumentRoot/Users/yourusername/Sites
  7. 创建一个 phpinfo() 文件

    phpinfo() 函数将显示有关 PHP 的信息。考虑在 DocumentRoot 中创建一个包含以下 PHP 代码的文件:

    <?php phpinfo(); ?>

  8. 重新启动 Apache,并加载上面创建的 PHP 文件

    要重新启动,请在 shell 中执行 sudo apachectl graceful 或在 macOS 系统偏好设置中停止/启动“个人 Web 服务器”选项。默认情况下,在浏览器中加载本地文件将具有以下 URLhttps://127.0.0.1/info.php 或者使用用户目录中的 DocumentRoot 是另一种选择,最终看起来像:https://127.0.0.1/~yourusername/info.php

CLI(或旧版本中的 CGI)恰如其分地命名为 php,并且可能存在于 /usr/bin/php 中。打开终端,阅读 PHP 手册的 命令行部分,并执行 php -v 以检查此 PHP 二进制文件的 PHP 版本。调用 phpinfo() 也将显示此信息。

添加注释

用户贡献注释 2 个注释

42
匿名
15 年前
您只需要取消注释
#LoadModule php5_module libexec/apache2/libphp5.so

这消失了
# AddModule mod_php5.c

语句 3 更改为
<IfModule mime_module>
#
# TypesConfig 指向包含从
# 文件名扩展到 MIME 类型的映射列表的文件。
#
TypesConfig /private/etc/apache2/mime.types

#
# AddType 允许您为特定文件类型添加或覆盖
# TypesConfig 中指定的文件的 MIME 配置。
#
#AddType application/x-gzip .tgz
#
# AddEncoding 允许您让某些浏览器动态解压缩
# 信息。注意:并非所有浏览器都支持此功能。
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# 如果上面的 AddEncoding 指令被注释掉,那么您
# 可能应该定义这些扩展以指示媒体类型
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#
# AddHandler 允许您将某些文件扩展名映射到“处理程序”
# 与文件类型无关的操作。这些可以是内置于服务器中的
# 或者使用 Action 指令添加(见下文)
#
# 要在 ScriptAliased 目录之外使用 CGI 脚本
#(您还需要在“Options”指令中添加“ExecCGI”。)
#
#AddHandler cgi-script .cgi

# 用于类型映射(协商资源)
#AddHandler type-map var

#
# 过滤器允许您在将内容发送到客户端之前对其进行处理。
#
# 要解析 .shtml 文件以进行服务器端包含 (SSI)
#(您还需要在“Options”指令中添加“Includes”。)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

额外的 MIME 类型可以添加到文件 /private/etc/apache2/mime.types 中,也可以使用上面注释的 AddType 指令。
3
10086 at xiaoi dot me
5 年前
在 macOS 10.12.6 上设置 apache + php 环境

步骤 1:通过 apachectl 启动 httpd
> sudo apachectl start

步骤 2:查找 httpd.conf
> sudo apachectl -t -D DUMP_INCLUDES

步骤 3:编辑 conf,例如:/opt/local/etc/apache2/httpd.conf
> sudo vim /opt/local/etc/apache2/httpd.conf

步骤 4:在 <IfModule unixd_module> 之前加载 php 模块,例如
```
LoadModule php5_module /usr/libexec/apache2/libphp5.so
<IfModule unixd_module>
```

步骤 5:将 mod_php5.c 添加到 httpd.conf 的末尾
```
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
```

步骤 6:保存并退出
步骤 7:重新启动 httpd
> sudo apachectl restart

步骤 8:编写 demo.php,测试配置
```
<?php
phpinfo
();
?>
```

步骤 9:将 demo.php 复制到“DocumentRoot”,您可以通过 httpd.conf 找到

步骤 10:访问 demo.php

全部完成。
To Top