【问题标题】:Doctrine - Warning message on production serverDoctrine - 生产服务器上的警告消息
【发布时间】:2011-12-13 18:05:28
【问题描述】:

我无法确定是什么原因造成的,我知道这是一个很长的问题 - 但有人知道这个错误可能意味着什么吗?它在我的本地主机上运行良好。

警告: file_put_contents(/tmp/NinjaspinCoreEntitiesTemplateProxy.php) [function.file-put-contents]:无法打开流:权限被拒绝 在 /var/www/vhosts/quickbrownfox.in/httpdocs/ninja/vendor/Doctrine/ORM/Proxy/ProxyFactory.php 在第 155 行

我已尝试为整个目录设置所有必需的写入权限,但仍然出现此错误。

【问题讨论】:

    标签: php linux permissions doctrine-orm


    【解决方案1】:

    我知道我回答这个问题已经过时了。但我遇到了完全相同的问题,也不知道为什么,权限和一切都很好。

    然后我意识到我在生产设置下将我的application.ini 上的自动生成代理选项设置为true。 (我在 Zend 和 Bisna 中使用 Doctrine 2.1)

    这会导致 Doctrine 在每个请求中重新生成代理,因此它试图用新的代理覆盖现有的代理,并尝试同时读取它们,或类似的东西。这有点疯狂,但这就是它的工作方式(无论如何,自动生成代理应该只在开发中完成)

    希望这会有所帮助。

    编辑:

    我还读到 here 说处于开发模式默认情况下会打开此功能。

    【讨论】:

    • 这就是发生的事情!我通过指定目录和设置开发模式来修复它
    【解决方案2】:

    您的/tmp 目录似乎没有正确的权限。

    在标准发行版中,此目录的默认权限是rwx rwx rwt。如果您像下面描述的那样修复此权限,您将不再有任何问题。

    sudo chmod 1777 /tmp

    【讨论】:

    • 我已授予整个目录的完全权限 (777) 以及其中的所有内容.. 我仍然收到此警告.. 我不明白这个目录在哪里
    • 您确定,粘滞位已激活?设置777权限时,不激活sticky bit...
    猜你喜欢
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2015-03-01
    相关资源
    最近更新 更多