douxian1892 2018-05-20 01:45
浏览 76
已采纳

无法写入元数据目录

I am using Phalcon and MySQL. Upon logging in I received an error like this,

Meta-Data directory cannot be written
#0 [internal function]: Phalcon\Mvc\Model\MetaData\Files->write('map-map\\models\\...', Array)
#1 [internal function]: Phalcon\Mvc\Model\MetaData->_initialize(Object(Map\Models\Users), NULL, NULL, NULL)
#2 [internal function]: Phalcon\Mvc\Model\MetaData->readColumnMapIndex(Object(Map\Models\Users), 1)
#3 [internal function]: Phalcon\Mvc\Model\MetaData->getReverseColumnMap(Object(Map\Models\Users))
#4 [internal function]: Phalcon\Mvc\Model::_invokeFinder('findFirstByUser...', Array)
#5 /var/www/html/app_map_system/app/library/Auth/Auth.php(27): Phalcon\Mvc\Model::__callStatic('findFirstByUser...', Array)
#6 /var/www/html/app_map_system/app/library/Auth/Auth.php(27): Map\Models\Users::findFirstByUsername('admin@admin.com')
#7 /var/www/html/app_map_system/app/controllers/IndexController.php(44): Map\Auth\Auth->check(Array)
#8 [internal function]: Map\Controllers\IndexController->loginAction()
#9 [internal function]: Phalcon\Dispatcher->callActionMethod(Object(Map\Controllers\IndexController), 'loginAction', Array)
#10 [internal function]: Phalcon\Dispatcher->dispatch()
#11 /var/www/html/app_map_system/public/index.php(41): Phalcon\Mvc\Application->handle()
#12 {main}

I have given access www-data as well as my user to /var/www/ directory using this command,

sudo chown -R www-data:www-data /var/www/

but still getting the same error. Anyone who encountered the same issue? Any help would be appreciated.

  • 写回答

1条回答 默认 最新

  • dongxian6653 2018-05-26 12:56
    关注

    I had this same issue when I switched to Ubuntu. Here's how I solved it.

    First, I realized that even after running a CHMod on my full project directory I always come across the write error for Meta-Data.

    A portion of my DI code to configure Models Meta-Data:

    $di -> set('modelsMetadata', function(){
        $metaData = new MetaDataAdapter([
            'metaDataDir'   => APP_PATH . '/cache/metaData/'
        ]);
        return $metaData;
    });
    

    Make sure the folder exists. Then using the Terminal, I do a cd command to my /app/cache/ folder. Once there, run: sudo chmod 755 metaData

    Hope this helps...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效