php 7.3 的 new relic 监控必须通过安装原生 newrelic.so 扩展实现,官方 sdk 已下架;需使用兼容的 9.x 版本(如 9.22.1),并运行时检测 newrelic_* 函数是否存在后调用。

PHP 7.3 的 New Relic 监控不能靠 Composer 安装 SDK 实现,因为 newrelic/newrelic 官方 PHP 包早在 2021 年就已下架,Packagist 上现存的同名包是空占位符,不含任何可调用类或函数。New Relic 对 PHP 的支持完全依赖其原生 C 扩展 newrelic.so,所有监控能力(如事务命名、自定义参数、错误捕获)均由该扩展导出。
确认 PHP 7.3 与 New Relic 版本兼容
New Relic 官方对 PHP 7.3 的支持已逐步收口:PHP 7.3 在 New Relic PHP Agent 9.x 系列末期仍被支持,但自 10.0+ 起仅支持 PHP 7.4 及以上。因此必须选用兼容版本(如 9.22.1),否则安装脚本会跳过或静默失败。
- 查看官方支持矩阵:New Relic PHP Agent System Requirements
- 执行
php -v确认当前为 PHP 7.3.x(如 7.3.29) - 避免使用 10.x 或更高版本的安装脚本,它们默认忽略 PHP 7.3
安装并启用 newrelic.so 扩展(核心步骤)
这是唯一有效的接入方式。Composer 仅可用于安装辅助工具(如 Laravel 封装包),但无法替代扩展本身。
- 在 CentOS 7 上运行官方兼容脚本(需指定旧版):
curl -Ls https://download.newrelic.com/php_agent/release/newrelic-php5-9.22.1.309-x64.tar.gz | tar -xzf - && cd newrelic-php5-9.22.1.309-x64 && sudo ./newrelic-install install - 安装完成后检查扩展是否写入
php.ini或/etc/php.d/newrelic.ini,确保含extension=newrelic.so - 验证加载状态:
php -m | grep newrelic应输出newrelic;php --ri newrelic查看配置详情(License Key、App Name 是否生效) - 重启 PHP-FPM 或 Apache:
sudo systemctl restart php-fpm(CentOS 7 默认服务名)
在 PHP 7.3 项目中安全调用 New Relic 函数
不能假设 newrelic_*() 函数一定存在——扩展可能未启用、被 disable 或版本不匹配。所有调用前必须做运行时检测。
- 封装基础安全调用函数(推荐放入公共引导文件):
function nr_call(string $func, ...$args) { return function_exists($func) ? call_user_func_array($func, $args) : null; } - HTTP 请求中命名事务:
nr_call('newrelic_name_transaction', 'api.users.index'); - 添加自定义参数(如用户 ID):
nr_call('newrelic_add_custom_parameter', 'user_id', $userId); - 捕获异常时不中断流程:
try { /* 业务逻辑 */ } catch (Exception $e) { nr_call('newrelic_notice_error', $e); throw $e; }
针对 Laravel 7.3 项目的轻量集成(可选)
若使用 Laravel 框架,可借助社区维护的 jackwh/laravel-new-relic 包实现生命周期感知监控,但它不提供扩展,仅封装已有 newrelic.so 功能:
- 先确保 newrelic.so 已正确安装并启用
- 执行:
composer require jackwh/laravel-new-relic - 发布配置:
php artisan vendor:publish --provider="JackWh\NewRelic\NewRelicServiceProvider" - 配置
.env:NEWRELIC_ENABLED=true(开发环境可设 false 避免报错) - 该包会自动为 HTTP 请求、队列任务、Artisan 命令等生成语义化事务名,无需手动调用
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











