[英]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.