29.4 PHP

PHP 8.x 引入 JIT 编译器,其类型系统与安全机制均有显著改进。本节涵盖 pkg 安装、PHP-FPM 配置及与 Apache 和 MySQL 的协同配置方法。

安装 PHP

使用 pkg 包管理器安装:

# pkg install php84 php84-extensions mod_php84

技巧

不同的 PHP 模块之间可能存在冲突,这会导致 Ports 编译失败,因此不建议启用全部 PHP 扩展。推荐使用 pkg 安装,能够更好地处理模块间的依赖关系。

或者使用 Ports 方式安装 PHP:

# cd /usr/ports/lang/php84/ && make install clean
# cd /usr/ports/lang/php84-extensions/ && make install clean
# cd /usr/ports/www/mod_php84 && make install clean

安装完成后,可通过以下命令显示已安装 PHP 的版本信息:

# php -v
PHP 8.4.4 (cli) (built: Feb 15 2025 01:05:08) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.4, Copyright (c) Zend Technologies

注意

数字 84 可能会随 PHP 版本变化而不同。可使用以下命令查看当前可用的 PHP 版本后再进行安装。

# pkg search -o lang/php    # 在 FreeBSD Ports/Packages 中搜索以 lang/php 开头的包
lang/php-mode.el               PHP mode for GNU Emacs
lang/php81                     PHP Scripting Language (8.1.X branch)
lang/php81-extensions          "meta-port" to install PHP extensions
lang/php82                     PHP Scripting Language (8.2.X branch)
lang/php82-extensions          "meta-port" to install PHP extensions
lang/php83                     PHP Scripting Language (8.3.X branch)
lang/php83-extensions          "meta-port" to install PHP extensions
lang/php84                     PHP Scripting Language (8.4.X branch)
lang/php84-extensions          "meta-port" to install PHP extensions (8.4.X branch)

配置 PHP 守护进程

安装完成后,需完成 PHP 基本配置,包括复制配置文件与启动 PHP-FPM(FastCGI 进程管理器)服务。

目录结构:

PHP 的示例配置文件位于 /usr/local/etc/php.ini-production,该文件包含适合生产环境的推荐配置。

将生产环境的 PHP 配置文件复制为默认配置文件,并显示复制过程:

设置 PHP-FPM 服务开机自启:

启动 PHP-FPM 服务,使配置生效,启动前系统将自动检查配置文件的语法:

查看 PHP-FPM 服务当前状态,确认服务是否正常运行:

查看安装后信息,了解 mod_php84 的配置说明:

参考文献

面向 Apache 的 PHP 配置文件

如果使用 Apache 作为 Web 服务器,需进行相应配置,使 Apache 能够正确处理 PHP 文件。

编辑 /usr/local/etc/apache24/Includes/php.conf 文件,添加

编辑 /usr/local/www/apache24/data/info.php 文件,加入:

用于输出当前 PHP 的配置信息和运行环境。

重启服务:

访问 ip/info.php,如 http://192.168.179.150/info.php

技巧

上述示例中的 192.168.179.150 为占位符,需要替换为实际的值。

Apache PHP8 FreeBSD

面向 Nginx 的 PHP 配置文件

如果使用 Nginx 作为 Web 服务器,同样需进行相应配置,使 Nginx 能够通过 PHP-FPM 处理 PHP 文件。

编辑 /usr/local/etc/nginx/nginx.conf 文件,需进行相应修改:

删除以下行中的所有注释符号 #

修改如下:

编辑 /usr/local/www/nginx/info.php 文件,加入测试代码以显示 PHP 配置信息:

用于显示当前 PHP 的配置信息及运行环境。

重启服务,使配置更改生效:

访问 IP/info.php,如 http://192.168.179.150/info.php

Nginx PHP8 FreeBSD

参考文献

最后更新于