我的一位客户有 PHP 脚本,可以加载 cvs 文件。当他通过 WWW 执行此脚本时,它可以正常工作 - 加载数据的日志存储在 /var/php/CLIENT/loaded.log 中。但是当我尝试由 Apache 执行的同一用户使用相同的配置 (php.ini) 执行同一脚本时,我在 loaded.log 中没有收到任何数据。如果我通过 Cron 执行此操作,情况也一样。Syslog 说 Cron 收到任何错误。
您有什么线索告诉我应该去哪里搜索吗?
答案1
当 PHP 脚本通过 Apache 运行时可以工作,但通过 cron 运行时却不行时,一些常见的问题可能是脚本使用仅在 Web 请求期间可用的变量,例如$_SERVER
变量(例如$_SERVER['DOCUMENT_ROOT']
或其他变量)或$_GET
变量,或者它可能是用于 Web 请求与命令行的 PHP 不同。
尝试使用您列出的 su 命令在 shell 中自己运行脚本,但之后php5.3
添加-d display_errors=on
并查看是否收到任何错误输出。