Я пытаюсь запустить php с завитом внутри него так часто, чтобы он извлекал информацию с веб-сайта, а затем вставлял ее в мою базу данных. Я могу заставить cronjob работать, и php работает, потому что у меня есть он, чтобы отправлять мне электронное письмо каждый раз, когда он запускается, и это так. Однако не работает скрипт CURL и скрипты MySQL.Crontab Linux с PHP, MySQL и Curl
Cronjob:
* * * * * /usr/bin/php -q /var/www/rstracker/cronjobs.php
cronjobs.php:
<?php
$to = '';
$subject = 'RSTracker Cronjob Ran!';
$message = 'Successful cronjob!';
$headers = 'From: ' . "\r\n" .
'Reply-To: ' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
<?php
include("connect.php");
$query = mysql_query("SELECT id FROM users");
while($row = mysql_fetch_array($query))
{
$userID = $row['id'];
$date = mktime();
// create a new cURL resource
$ch = curl_init();
// set URL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_URL, "http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=".$username);
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab HTML
$data = curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
//echo "<textarea>$data</textarea><br />";
$hs = explode("\n",$data);
$skills = array("Overall","Attack","Defence","Strength","Constitution","Ranged","Prayer","Magic","Cooking","Woodcutting","Fletching","Fishing","Firemaking","Crafting","Smithing","Mining","Herblore","Agility","Thieving","Slayer","Farming","Runecrafting","Hunter","Construction");
$i = 0;
for($i = 0; $i<count($skills);$i++) {
// Explode each skill into 3 values - rank, level, exp
$stat = explode(',', $hs[$i]);
$out[$skills[$i]] = Array();
$out[$skills[$i]]['rank'] = $stat[0];
$out[$skills[$i]]['level'] = $stat[1];
$out[$skills[$i]]['xp'] = $stat[2];
}
foreach($out as $key => $value)
{
if($value['level']>0||$value['xp']>0||$value['rank']>0)
{
mysql_query("INSERT INTO skills SET userID='$userID', skill='$key', level='".$value["level"]."', xp='".$value["xp"]."', rank='".$value["rank"]."', date='$date'");
}
}
}
?>
Вы пытались запустить скрипт вне задания cron? Вызывает ли это какие-либо ошибки? –