簡體   English   中英

CakePHP 3.0,生產500由供應商引起的錯誤

[英]CakePHP 3.0, Production 500 Error caused by Vendor

我正在使用CAKEPHP 3.4版。

這是來自error.log的錯誤堆棧跟蹤

 2017-03-16 21:37:45 Error: [ParseError] syntax error, unexpected 'getWordCount' (T_STRING), expecting variable (T_VARIABLE) or '$' in /home/mfeditin/public_html/mf_editing_services/src/Controller/WordController.php on line 27
Request URL: /Word/getWordCount
Client IP: 47.54.223.
Stack Trace:
#0 /home/mfeditin/public_html/mf_editing_services/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/mfeditin/...')
#1 [internal function]: Composer\Autoload\ClassLoader->loadClass('App\\Controller\\...')
#2 [internal function]: spl_autoload_call('App\\Controller\\...')
#3 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Core/App.php(152): class_exists('App\\Controller\\...')
#4 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Core/App.php(64): Cake\Core\App::_classExistsInBase('\\Controller\\Wor...', 'App')
#5 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/ControllerFactory.php(68): Cake\Core\App::className('Word', 'Controller', 'Controller')
#6 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(90): Cake\Http\ControllerFactory->create(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#7 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/BaseApplication.php(78): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#8 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#9 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(59): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#10 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#11 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#12 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#13 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(92): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#14 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
#15 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#16 /home/mfeditin/public_html/mf_editing_services/vendor/cakephp/cakephp/src/Http/Server.php(80): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
#17 /home/mfeditin/public_html/mf_editing_services/webroot/index.php(37): Cake\Http\Server->run()
#18 {main}

我在控制器中使用我的供應商類之一時遇到問題。

基本上,我的代碼在localhost上運行良好,但是當我將其推送到生產服務器時,它會顯示500錯誤並顯示以下消息。

我的控制器代碼如下

use App\Controller\AppController; 
use App\Form\ContactForm; 
use Vendor\autoload; 

class WordController extends AppController 
{
    public function initialize() 
    { 
        parent::initialize(); 
        $this->loadComponent('RequestHandler'); 
    } 

    public function getWordCount() 
    { 
        if ($data = $this->request->data) 
        { 
            $wrap = new \Enzim\Lib\TikaWrapper\TikaWrapper; 

            $count = new \Enzim\Lib\TikaWrapper\TikaWrapper::getWordCount($data['file-0']['tmp_name']); 

            $count = 1; 

            $this->set('count', $count); 
            $this->set(compact('count')); 
        } else { 
            $this->Flash->error('We were unable to charge this card'); 
        }
    } 
} 

如果需要有關生產服務器,依賴項或其他任何信息的更多信息,請告訴我。

也; 我要再次強調一下,該代碼在localhost上可以正常工作; 而且它打破了

$count = new \Enzim\Lib\TikaWrapper\TikaWrapper::getWordCount($data['file-0']['tmp_name']);

如果我在上面的文本中對此進行評論,則控制器將運行,但是當然,count顯示為1(臨時占位符以查看ajax請求正在運行。)

如果它在localhost上運行正常,是否上傳了.htaccess文件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM