【发布时间】:2014-11-05 22:08:53
【问题描述】:
我在一台服务器 (VPS WHM) 上通过 cronjob 运行此脚本,并将所有内容复制到另一台具有相同类型的 VPS 和 WHM 的主机上。此脚本未在新服务器上运行,或未发送电子邮件。我曾尝试与提供商一起对其进行故障排除,但他们不知所措。我的问题是什么设置可能导致这样的问题?我似乎弄乱了服务器上的所有设置,几乎没有结果。任何有助于追踪此问题的信息,请告诉我,我将编辑问题。如果你有一个猜测也会有帮助,我只是在寻找新的眼光来解决这个问题。
更多信息:
Apache 版本 2.2.27 PHP 版本 5.4.31 MySQL 版本 5.5.40-cll
日志中没有错误
Cron 是:10 4 * * * php /home/xxxxx/public_html/alert.php
我也试过:10 4 * * * /home/xxxxx/public_html/alert.php
#!/usr/bin/php
<?php
$db_host = "localhost";
$db_username = "xxxx";
$db_pass = "xxxx";
$db_name = "xxxxxx";
mysql_connect("$db_host","$db_username","$db_pass") or die(mysql_error());
mysql_select_db("$db_name") or die ("no database");
$headers = "Bcc: xxxxx@xxxx.com";
$tierasql = "SELECT date,phonenumber,email, SUM(dataplan) AS currentplantiera, SUM(datamb) AS value_sumtiera FROM maindata2 WHERE dataplan BETWEEN 2 and 50 and dataplan != '20' GROUP BY email";
$resulttiera = mysql_query($tierasql);
while ($rowtiera = mysql_fetch_assoc($resulttiera)){
if ($resulttiera){
$rowtiera = mysql_fetch_assoc($resulttiera);
$plantiera = $rowtiera['currentplantiera'] ;
$date = $rowtiera['date'] ;
$inventorytiera = ROUND ($rowtiera["value_sumtiera"],2) ;
$recipienttiera = $rowtiera['email'];
if ($inventorytiera > (.75 * $plantiera)){
$msgtiera = "Xxxxxxxxx Data Usage Alert:
This alert is being provided to you because your lines in Tier A have exceeded 75% of your Xxxxxxxxx Service Plan.
As of $date, your current data usage is $inventorytiera MB and you have a data allotment of $plantiera MB of shared data.
Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle.
One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details.
Please refer to Xxxxxxxxx.com/data to review your data usage.";
mail($recipienttiera,"xxxxx@xxxx.com", "Xxxxxxxxx Data Usage Alert", $msgtiera, $headers);
}
}
else {
$msg = "An error occurred: " . mysql_error();
mail($recipienttiera,"xxxxx@xxxx.com", "Alert from Xxxxxxxxx error", $msgtiera, $headers);
}
}
$tierbsql = "SELECT date,phonenumber,email, SUM(dataplan) AS currentplantierb, SUM(datamb) AS value_sumtierb FROM maindata2 WHERE dataplan BETWEEN 500 and 8000 GROUP BY email";
$resulttierb = mysql_query($tierbsql);
while ($rowtierb = mysql_fetch_assoc($resulttierb)){
if ($resulttierb){
$rowtierb = mysql_fetch_assoc($resulttierb);
$plantierb = $rowtierb['currentplantierb'] ;
$date = $rowtierb['date'] ;
$inventorytierb = ROUND ($rowtierb["value_sumtierb"],2) ;
$recipienttierb = $rowtierb['email'];
if ($inventorytierb > (.75 * $plantierb)){
$msgtierb = "Xxxxxxxxx Data Usage Alert:
This alert is being provided to you because your lines in Tier B have exceeded 75% of your Xxxxxxxxx Service Plan.
As of $date, your current data usage is $inventorytierb MB and you have a data allotment of $plantierb MB of shared data.
Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle.
One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details.
Please refer to Xxxxxxxxx.com/data to review your data usage.";
mail($recipienttierb,"xxxxx@xxxx.com", "Xxxxxxxxx Data Usage Alert", $msgtierb, $headers);
}
}
else {
$msg = "An error occurred: " . mysql_error();
mail($recipienttierb,"xxxxx@xxxx.com", "Alert from Xxxxxxxxx error", $msg, $headers);
}
}
$tiercsql = "SELECT date,phonenumber,email, SUM(dataplan) AS currentplantierc, SUM(datamb) AS value_sumtierc FROM maindata2 WHERE dataplan BETWEEN 10000 and 100000 GROUP BY email";
$resulttierc = mysql_query($tiercsql);
while ($rowtierc = mysql_fetch_assoc($resulttierc)){
if ($resulttierc){
$rowtierc = mysql_fetch_assoc($resulttierc);
$plantierc = $rowtierc['currentplantierc'] ;
$date = $rowtierc['date'] ;
$inventorytierc = ROUND ($rowtierc["value_sumtierc"],2) ;
$recipienttierc = $rowtierc['email'];
if ($inventorytierc > (.75 * $plantierc)){
$msgtierc = "Xxxxxxxxx Data Usage Alert:
This alert is being provided to you because your lines in Tier B have exceeded 75% of your Xxxxxxxxx Service Plan.
As of $date, your current data usage is $inventorytierc MB and you have a data allotment of $plantierc MB of shared data.
Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle.
One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details.
Please refer to Xxxxxxxxx.com/data to review your data usage.";
mail($recipienttierc,"xxxxx@xxxx.com", "Xxxxxxxxx Data Usage Alert", $msgtierc, $headers);
}
}
else {
$msg = "An error occurred: " . mysql_error();
mail($recipienttierc,"xxxxx@xxxx.com", "Alert from Xxxxxxxxx error", $msg, $headers);
}
}
$sql = "SELECT date,phonenumber,email, dataplan AS currentplan, SUM(datamb) AS value_sum FROM maindata2 GROUP BY phonenumber, dataplan";
$result = mysql_query($sql);
if ($result) {
while ($row = mysql_fetch_assoc($result)){
$plan = $row['currentplan'] ;
$date = $row['date'] ;
$inventory = ROUND ($row["value_sum"],2) ;
$recipient = $row['email'];
$line = $row['phonenumber'];
if ($inventory > (.75 * $plan)) {
$msg = "Xxxxxxxxx Single Line Usage Alert:
This alert is being provided to you because your line $line has exceeded 75% of it's Xxxxxxxxx Service Plan.
As of $date, your current data usage is $inventory MB of your $plan MB data plan.
Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle.
One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details.
Please refer to Xxxxxxxxx.com/data to review your data usage.";
mail($recipient,"xxxxx@xxxx.com", "Alert from Xxxxxxxxx", $msg, $headers);
}
}
}
else {
$msg = "An error occurred: " . mysql_error();
mail($recipient,"xxxxx@xxxx.com", "Alert from Xxxxxxxxx error", $msg, $headers);
}
?>
【问题讨论】:
-
安装了哪个版本的php?
-
Apache 版本 2.2.27 PHP 版本 5.4.31 MySQL 版本 5.5.40-cll