我完全被难住了。我有一个文件,我需要每天运行两次,查询数据库并在满足某些条件时向我发送电子邮件。
这个文件,我们称之为 abc.php,如果我在浏览器中输入“www.mysite.com/abc.php”,文件运行完美。如果满足条件,我会收到一封电子邮件,上面写着(例如)“某某,这是信息:a、b、c。”
但是当我用 cron 调用文件时,由于某种原因,电子邮件出现了乱码。我得到“某某,这是信息部分”,但没有得到“a,b,c”。
我完全被难住了。“某某”也来自数据库,因为这两个地方都显示了我知道数据库查询正在工作。
我不明白为什么某些东西在 http 调用中可以正常工作,但在通过 cron 调用时却不能正常工作。是否有应该以不同方式设置的权限?以不同方式描述的目录树?我应该使用完整路径而不是相对路径吗?
在搜索中,我发现一个似乎与 php.ini 文件不同的问题,但我认为情况并非如此,因为我得到了一个数据库查询。我不认为这是一个编码问题,因为它在从浏览器调用时可以完美运行。但我确实怀疑这可能是由于路径设置不正确或 cron 作为不同用户运行或需要不同权限造成的。
任何帮助或建议都会很棒。
编辑:这是 cron 行。当我从浏览器运行文件时,我可以编辑它以匹配正在使用的任何 php.ini 吗?
/ramdisk/bin/php5 -c /my/home/php.ini /my/home/sendmetheemail.php
它是否也有可能使用不同的mysql配置文件?php 部分似乎工作正常,但问题在于数据。
刚刚测试并且 wget 工作正常:
wget http://mydomain.com/sendmetheemail.php