2024 年 PHP 日本会议

使用 macOS Monterey 之前的版本中捆绑的 PHP

从 macOS X (10.0.0) 开始,PHP 就捆绑在 macOS 中,直到 macOS Monterey (12.0.0)。要启用默认 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 个注释

匿名
16 年前
您只需要取消注释
#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 脚本
#(您还需要将“ExecCGI”添加到“Options”指令中。)
#
#AddHandler cgi-script .cgi

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

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

额外的 MIME 类型可以添加到文件 /private/etc/apache2/mime.types 中,也可以使用上面注释的 AddType 指令。
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:编辑配置文件,例如:/opt/local/etc/apache2/httpd.conf
> sudo vim /opt/local/etc/apache2/httpd.conf

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

步骤 5:在httpd.conf文件的末尾添加mod_php5.c
```
<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