我有一个PHP脚本,我想通过cron运行。它应该加载不同的配置信息,具体取决于脚本是在我的本地服务器,QA服务器还是生产服务器上运行。问题是,当脚本通过cron运行时,它没有任何标识$ _SERVER信息,我用它来确定脚本运行的环境。
我唯一能想到的就是让cron作业本身为脚本附加一个参数,但我希望有一个更好的方法,我不必这样做。有什么其他方法可以识别脚本在从cron运行时所驻留的服务器吗?
感谢。
答案 0 :(得分:3)
我通过下一个方法解决问题:传递给脚本环境变量。
如果是.htaccess / httpd.conf:
SetEnv SITE_NAME x1
如果是cron(运行脚本):
#!/bin/bash
export SITE_NAME=x1;
php /path
在这两种情况下,获取此环境变量的PHP代码为:getenv('SITE_NAME');
x1 - 是一个示例站点名称。
答案 1 :(得分:0)
getenv('COMPUTERNAME')将返回正在运行的计算机名称...
但是,如果你的脚本在生产中做不同的测试,你怎么知道它在生产中是正确的?