2015-08-29 9 views
10

सबसे पहले मैं xampp \ htdocs \ project \ app \ कंसोल \ कमांड फ़ोल्डर में statusUpdate.php फ़ाइल बना देता हूं।कारीगर कमांड शेड्यूल कैसे चलाएं: होस्टिंग सर्वर पर चलाएं? (लैरावेल 5.1)

statusUpdate.php:

<?php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use DB; 


class statusUpdate extends Command 
{ 
    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'status:update'; 

/** 
* The console command description. 
* 
* @var string 
*/ 
protected $description = 'Update Job status daily'; 

/** 
* Create a new command instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    parent::__construct(); 
} 

/** 
* Execute the console command. 
* 
* @return mixed 
*/ 
public function handle() 
{ 
    $affected = DB::table('jobs')->update(array('status' => 1)); 
} 
} 

यह बनाया निम्नलिखित Laravel5 आधिकारिक दस्तावेज द्वारा। फिर मैं xampp \ htdocs \ project \ app \ कंसोल फ़ोल्डर पर Kernel.php में \App\Console\Commands\statusUpdate::class, कक्षा जोड़ता हूं।

<?php 

namespace App\Console; 

use Illuminate\Console\Scheduling\Schedule; 
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; 

class Kernel extends ConsoleKernel 
{ 
    /** 
    * The Artisan commands provided by your application. 
    * 
    * @var array 
    */ 
    protected $commands = [ 
     \App\Console\Commands\statusUpdate::class, 
]; 

/** 
* Define the application's command schedule. 
* 
* @param \Illuminate\Console\Scheduling\Schedule $schedule 
* @return void 
*/ 
protected function schedule(Schedule $schedule) 
{ 
    $schedule->command('status:update') 
      ->everyFiveMinutes(); 
} 
} 

तब मैं चलाने

php कारीगर अनुसूची: रन खिड़कियों पर अध्यक्ष एवं प्रबंध निदेशक का उपयोग कर 7.

अब यह ठीक काम करता है

यहाँ karnel.php फ़ाइल कोड नमूना है । मेरे नौकरियों तालिका स्थिति क्षेत्र से 1.

ठीक से अद्यतन लेकिन जब मैं होस्टिंग साझा एक क्रॉन प्रविष्टि cPanel में अपने सर्वर जोड़ा पर इस परियोजना का उपयोग करें:

क्रॉन नौकरी आदेश इस तरह है: php /path/to/artisan schedule:run 1>> /dev/null 2>&1

में अब यह केस कमांड & काम नहीं करता है यह समस्या है। मैं इसे कैसे सुलझाऊं?

+1

@michael ठीक काम किया हाँ मैं अपने पथ कहा,/घर/उपयोगकर्ता नाम/public_html/projectfolder/कारीगर अनुसूची: चलाने –

+0

अपने सर्वर के विन्यास क्या है? ओएस को बताएं और क्या आपने CRON –

+0

@ आदित्य गिरी स्थापित किया है, सर्वर कॉन्फ़िगरेशन का अर्थ है कि यह मेरा साझा होस्टिंग पैनल है। हाँ ओएस पहले ही सीआरओएन स्थापित है। –

उत्तर

7

अच्छा। मैंने जो कहा है उसके अनुसार मैं आपको उत्तर दे रहा हूं।

क्रॉन नौकरी आदेश इस तरह है: php /path/to/artisan schedule:run 1>> /dev/null 2>&1

पथ सर्वर में कारीगर फ़ाइल को ढूंढने में किया जाना चाहिए। इस तरह:

php /var/www/artisan schedule:run 1>> /dev/null 2>&1

बस की जाँच है कि अगर काम करता है:

मान लें कि आपका कारीगर फ़ाइल स्थान /var/www/artisan है, तो इसका सरल उत्तर इस तरह करते हैं हो सकता है करते हैं। धन्यवाद!

अद्यतन:

http://i.imgur.com/wVAWAHK.png

यह की तरह दिखना चाहिए कैसे है।

+0

मेरे कमांड php/path/to/artisan शेड्यूल के बीच अलग क्या है: 1 >>/dev/null 2> & 1 चलाएं और आपका कमांड php/var/www/artisan शेड्यूल: 1 >>/dev/null 2 ​​चलाएं> और 1! मैं पहले से ही अपना सही पथ कमांड में देता हूं। –

+0

वैसे दोनों समान हैं। मान लीजिए कि आप लिनक्स पर्यावरण के साथ एक सर्वर चला रहे हैं। 'पथ/से/कारीगर' का अर्थ है कि आप 'D: \ xampp \ path \ to \ artisan 'जैसे कुछ से लिंक कर रहे हैं और जाहिर है कि वह चीज़ नहीं है जिसे आप ढूंढ रहे हैं। आप उस फाइल से लिंक कर रहे हैं जो वहां कभी अस्तित्व में नहीं था। यदि आप फ़ाइलपैथ बदलते हैं तो यह निश्चित रूप से काम करेगा। मुझे अपनी परियोजना रूट निर्देशिका पथ बताएं और मैं आपको सही आदेश बताऊंगा जो आपको इनपुट करना चाहिए। –

+0

/home/belogin/public_html/jobssite/यह मेरा पथ है और मैंने इस/home/belogin/public_html/jobssite/artisan शेड्यूल का उपयोग करने का प्रयास किया: 1 >>/dev/null 2> & 1 चलाएं लेकिन काम नहीं करता है। –

8

इस के लिए मुझे

/usr/local/bin/php /path/to/artisan schedule:run >> /dev/null 2>&1 
संबंधित मुद्दे