如何在nginx上设置cakephp?

如何在nginx上设置cakephp?,cakephp,nginx,cakephp-2.5,Cakephp,Nginx,Cakephp 2.5,在nginx服务器上设置cakephp-2.5.2时遇到问题。我一直在看这个网站上的问题和其他类似的问题,但答案似乎不太好。我不能使用url重写,因为我不拥有服务器,所以我没有权限处理这些文件,但我可以更改文件。无论如何,我得到了以下错误: Warning: _cake_core_ cache was unable to write 'cake_dev_en-us' to File cache in /home/webdev/webroot/cake/lib/Cake/Cache/Cache.p

在nginx服务器上设置cakephp-2.5.2时遇到问题。我一直在看这个网站上的问题和其他类似的问题,但答案似乎不太好。我不能使用url重写,因为我不拥有服务器,所以我没有权限处理这些文件,但我可以更改文件。无论如何,我得到了以下错误:

Warning: _cake_core_ cache was unable to write 'cake_dev_en-us' to File cache in /home/webdev/webroot/cake/lib/Cake/Cache/Cache.php on line 323

Warning: /home/webdev/webroot/cake/app/tmp/cache/persistent/ is not writable in /home/webdev/webroot/cake/lib/Cake/Cache/Engine/FileEngine.php on line 384

Fatal error: Uncaught exception 'CacheException' with message 'Cache engine _cake_core_ is not properly configured.' in /home/webdev/webroot/cake/lib/Cake/Cache/Cache.php:181 Stack trace: #0 /home/webdev/webroot/cake/lib/Cake/Cache/Cache.php(151): Cache::_buildEngine('_cake_core_') #1 /home/webdev/webroot/cake/app/Config/core.php(373): Cache::config('_cake_core_', Array) #2 /home/webdev/webroot/cake/lib/Cake/Core/Configure.php(72): include('/home/webdev/we...') #3 /home/webdev/webroot/cake/lib/Cake/bootstrap.php(175): Configure::bootstrap(true) #4 /home/webdev/webroot/cake/app/webroot/index.php(94): include('/home/webdev/we...') #5 /home/webdev/webroot/cake/index.php(41): require('/home/webdev/we...') #6 {main} thrown in /home/webdev/webroot/cake/lib/Cake/Cache/Cache.php on line 181
经过一些搜索,我做了
/home/webdev/webroot/cake/app
/home/webdev/webroot/cake/app/tmp
/home/webroot/cake/app/tmp/cache
/home/webdev/webroot/cake/app/tmp/cache/persistent
/home/webdev/webroot/cake/app/tmp/logs都有权限
775
(或
rwxrwxr-x
),但我仍然会遇到这些错误

我不确定在
cake/.htaccess
cake/app/.htaccess
、或
cake/app/webdev/.htaccess
文件中,或在
cake/app/webroot/index.php
或其他一些文件中是否有我可以更改的内容


任何帮助都将不胜感激。谢谢你

Nginx不使用.htaccess,所以不用麻烦了

您的问题是消息中显示的权限问题

如果web服务用户与文件所属的用户不相同或不在同一组中,则设置775无效。在这种情况下,将应用权限5(用于“world”),该权限不授予执行(=输入)tmp目录和读/写的权限


最快的方法是
chmod 777 tmp-R
,最好的方法是将tmp递归地传送到web服务组(也许清除缓存是最好的方法).

不要将用户添加到web服务组,相反:将web服务用户添加到用户组,这样web服务组可以读取用户的文件(提供适当的组权限)而且,如果用户属于Web服务组,那么他们也可以阅读其他人的文件——这在共享的EnV中是不好的。你是对的。ZAM坚果。再考虑一下,如果有人能够将他们自己或WebService添加到他们最可能拥有的任何用户/组中。通过访问“搞乱nginx配置”,用户说他不能。因此,出于这两个原因,我从我的答案中删除了这个建议。