2017-01-04 7 views
8

मेरे पास एपीआई प्रमाणीकरण प्रदान करने के लिए पासपोर्ट का उपयोग करके लार्वा ऐप है। ऐप को पोस्ट-प्राप्त हुक के साथ गिट का उपयोग करके तैनात किया जाता है। पोस्ट-प्राप्त स्क्रिप्ट का हिस्सा एक संगीतकार स्थापित है। जब से मैंने पासपोर्ट शामिल किया है, जब भी मैं अपना ऐप तैनात करता हूं, एपीआई एक प्रमाणीकरण द्वार के पीछे वाले मार्गों पर टूट जाता है, नीचे चिपकने वाले स्टैक ट्रेस के साथ।लैरवेल ऐप की तैनाती ऐप तोड़ती है जब तक कि संगीत इंस्टॉल मैन्युअल रूप से चलाया जाता है

जब मैं ऐप के सर्वर पर जाता हूं और उसी पोस्ट composer install कमांड को चलाता हूं जैसा कि मेरे पोस्ट-प्राप्त हुक में होता है, तो चीजें फिर से ठीक काम करती हैं।

मुझे तैनाती होने पर गिट से कोई त्रुटि संदेश नहीं दिखाई देता है, और ऐसा प्रतीत होता है कि जब मैं तैनाती करता हूं और मैन्युअल रूप से आदेश चलाता हूं तो मुझे composer install से एक ही आउटपुट मिलता है।

यहाँ composer install आदेश से तैनाती उत्पादन है:

Loading composer repositories with package information 
Installing dependencies (including require-dev) from lock file 
Nothing to install or update 
Generating autoload files 
> php artisan clear-compiled 
The compiled class file has been removed. 
> php artisan optimize 
Generating optimized class loader 
Compiling common classes 

क्या यहाँ हो रहा है:

remote: Loading composer repositories with package information   
remote: Installing dependencies (including require-dev) from lock file   
remote: Nothing to install or update   
remote: Generating autoload files   
remote: > php artisan clear-compiled   
remote: The compiled class file has been removed.   
remote: > php artisan optimize   
remote: Generating optimized class loader   
remote: Compiling common classes 

यहाँ और मैं क्या देख जब मैं आदेश मैन्युअल रूप से चलाना है? ऐसा लगता है कि तैनाती पासपोर्ट के कुछ घटक का पुराना संस्करण स्थापित कर रही है जिसे मैन्युअल रूप से composer install चलाने के बाद ठीक किया गया है, लेकिन मुझे नुकसान हुआ है कि यह क्यों हो रहा है, और विशेष रूप से ऐसा क्यों होगा जब भी मैं एक नया तैनात करता हूं अद्यतन करें, भले ही composer.json या composer.lock में कोई बदलाव न हो।

यहाँ स्टैक ट्रेस ऊपर करने के लिए भेजा गया है:

[2017-01-04 20:36:37] production.ERROR: exception 'BadMethodCallException' with message 'Call to undefined method Illuminate\Database\Query\Builder::withAccessToken()' in /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2450 
Stack trace: 
#0 [internal function]: Illuminate\Database\Query\Builder->__call('withAccessToken', Array) 
#1 [internal function]: Illuminate\Database\Query\Builder->withAccessToken(Object(Laravel\Passport\Token)) 
#2 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1469): call_user_func_array(Array, Array) 
#3 [internal function]: Illuminate\Database\Eloquent\Builder->__call('withAccessToken', Array) 
#4 [internal function]: Illuminate\Database\Eloquent\Builder->withAccessToken(Object(Laravel\Passport\Token)) 
#5 /home/portalvarius/app/production/bootstrap/cache/compiled.php(11801): call_user_func_array(Array, Array) 
#6 /home/portalvarius/app/production/vendor/laravel/passport/src/Guards/TokenGuard.php(139): Illuminate\Database\Eloquent\Model->__call('withAccessToken', Array) 
#7 /home/portalvarius/app/production/vendor/laravel/passport/src/Guards/TokenGuard.php(139): App\Models\User->withAccessToken(Object(Laravel\Passport\Token)) 
#8 /home/portalvarius/app/production/vendor/laravel/passport/src/Guards/TokenGuard.php(90): Laravel\Passport\Guards\TokenGuard->authenticateViaBearerToken(Object(Illuminate\Http\Request)) 
#9 /home/portalvarius/app/production/vendor/laravel/passport/src/PassportServiceProvider.php(251): Laravel\Passport\Guards\TokenGuard->user(Object(Illuminate\Http\Request)) 
#10 [internal function]: Laravel\Passport\PassportServiceProvider->Laravel\Passport\{closure}(Object(Illuminate\Http\Request)) 
#11 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php(53): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#12 /home/portalvarius/app/production/bootstrap/cache/compiled.php(544): Illuminate\Auth\RequestGuard->user() 
#13 /home/portalvarius/app/production/bootstrap/cache/compiled.php(548): Illuminate\Auth\RequestGuard->check() 
#14 /home/portalvarius/app/production/app/Http/Middleware/Authenticate.php(20): Illuminate\Auth\RequestGuard->guest() 
#15 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10052): App\Http\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure), 'api') 
#16 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#17 /home/portalvarius/app/production/Api/V1/Http/Middleware/LogApiAccess.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#18 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10052): Api\V1\Http\Middleware\LogApiAccess->handle(Object(Illuminate\Http\Request), Object(Closure)) 
#19 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#20 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10160): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#21 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10052): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure)) 
#22 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#23 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#24 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10052): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), '60', '1') 
#25 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#26 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10037): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#27 /home/portalvarius/app/production/bootstrap/cache/compiled.php(8339): Illuminate\Pipeline\Pipeline->then(Object(Closure)) 
#28 /home/portalvarius/app/production/bootstrap/cache/compiled.php(8330): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request)) 
#29 /home/portalvarius/app/production/bootstrap/cache/compiled.php(8321): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request)) 
#30 /home/portalvarius/app/production/bootstrap/cache/compiled.php(2575): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) 
#31 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request)) 
#32 /home/portalvarius/app/production/bootstrap/cache/compiled.php(3371): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#33 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10052): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure)) 
#34 /home/portalvarius/app/production/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#35 /home/portalvarius/app/production/bootstrap/cache/compiled.php(10037): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#36 /home/portalvarius/app/production/bootstrap/cache/compiled.php(2519): Illuminate\Pipeline\Pipeline->then(Object(Closure)) 
#37 /home/portalvarius/app/production/bootstrap/cache/compiled.php(2503): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) 
#38 /home/portalvarius/app/production/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) 
#39 {main}   
+0

क्यों php artisan clear-compiled और php artisan आपके पोस्ट-प्राप्त हुक में ऑप्टिमाइज़ नहीं करते हैं? –

+0

उन दो आदेशों को composer.json में पोस्ट-इंस्टॉल-सीएमडी स्क्रिप्ट के माध्यम से चलाया जाता है, और आप देख सकते हैं कि वे उपरोक्त चिपकने वाले आउटपुट में दौड़ रहे हैं। – ralbatross

+0

ने भी "संगीतकार डंप" कमांड जोड़ने की कोशिश की ?? –

उत्तर

3

ठीक है, इसलिए इस मुद्दे को कारीगर का अनुकूलन आदेश में था। जैसा कि मैंने अपने प्रश्न पर टिप्पणी में संकेत दिया है, मैंने देखा है कि ऑप्टिमाइज़ कमांड मैन्युअल रूप से कमांड चलाते समय पोस्ट-प्राप्त हुक के माध्यम से बहुत तेज चल रहा था।

मेरे तैनात वातावरण में, मेरे पास आधार laravel निर्देशिका से अलग निर्देशिका में एक composer.phar फ़ाइल है। जब मैंने बेस निर्देशिका में composer.phar को सॉफ्टलिंक बनाया, तो सब कुछ ठीक काम करता था।

मुझे अभी भी यकीन नहीं है कि समस्या क्यों हुई, लेकिन ऐसा लगता है कि लैरवेल पोस्ट-प्राप्त हुक से चलते समय मेरे संगीतकार उदाहरण को खोजने में सक्षम नहीं था, भले ही मेरा पर्यावरण स्थापित किया गया था कमांडलाइन से चला गया ठीक काम किया।

संबंधित मुद्दे

 संबंधित मुद्दे