在Linux下实现PHP脚本后台执行的方法

最近遇到一个需求:需要在Web环境中触发一个PHP脚本执行,但又不能让它阻塞或打开浏览器窗口,说白了就是让它在后台“静默”运行。经过一番摸索,问题在Linux系统上得到了解决。下面就把具体方法分享出来,或许你哪天也用得上。

第一步:系统配置调整

关键点在于让Apache用户能无需密码地调用PHP命令行。这需要修改sudoers文件:

1. 打开终端,输入 visudo 命令来编辑sudoers文件。

2. 找到 Defaults requiretty 这一行,在行首加上 # 将其注释掉。这一步很重要,因为它允许在非终端环境下使用sudo。

3. 在文件末尾另起一行,添加:apache ALL=NOPASSWD:/usr/bin/php。这赋予了apache用户无需密码即可执行指定PHP解释器的权限。

4. 保存并退出。

第二步:PHP代码调用

系统配置好后,前端的调用就非常简单了。假设你的网站根目录是 /var/www/html,需要在 a.php 中触发 b.php 在后台运行。

那么,a.php 中的核心代码只需要一行:

是的,只需要这两步。通过exec函数调用sudo命令来运行PHP,脚本便会脱离Web请求进程,在后激进分子立执行。

这样一来,既满足了功能需求,又不会影响前端用户的体验。当然,出于安全考虑,在生产环境中如此配置sudo权限时,务必确保脚本路径和命令的绝对性,将风险控制在最小范围。

本文转载于:https://blog.csdn.net/pymary/article/details/3453793 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。