php - Vagrant : Unable to create sessions, 缓存中的 Cakephp,缓存模型

标签 php session cakephp caching vagrant

我一直在尝试在配备 Apache2、mysql、neo4j 的 vagrant box 中运行 Cakephp 应用程序,应用程序运行所需的一切。该站点正在打开,当我尝试在本地登录时,出现了这些错误。

这是调试日志:

2015-06-29 19:04:38 Warning: Warning (512): /vagrant/app/tmp/cache/ is not writable in [/vagrant/cake/libs/cache/file.php, line 267]

2015-06-29 19:04:38 Warning: Warning (512): /vagrant/app/tmp/cache/persistent/ is not writable in [/vagrant/cake/libs/cache/file.php, line 267]

2015-06-29 19:04:38 Warning: Warning (512): /vagrant/app/tmp/cache/models/ is not writable in [/vagrant/cake/libs/cache/file.php, line 267]

 2015-06-29 19:04:38 Warning: Warning (2): session_start(): open(/vagrant/app/tmp/sessions/sess_ojvjndme1tqt1bn4dnra8erq96, O_RDWR) failed: Permission denied (13) in [/vagrant/cake/libs/cake_session.php, line 587]

 2015-06-29 19:04:38 Warning: Warning (2): Unknown: open(/vagrant/app/tmp/sessions/sess_ojvjndme1tqt1bn4dnra8erq96, O_RDWR) failed: Permission denied (13) in [Unknown, line 0]

 2015-06-29 19:04:38 Warning: Warning (2): Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/vagrant/app/tmp/sessions) in [Unknown, line 0]

 2015-06-29 19:04:49 Warning: Warning (2): session_start(): open(/vagrant/app/tmp/sessions/sess_p2utf2okm73g71cv2ed361a8c7, O_RDWR) failed: Permission denied (13) in [/vagrant/cake/libs/cake_session.php, line 587]

 2015-06-29 19:04:49 Warning: Warning (2): session_write_close(): open(/vagrant/app/tmp/sessions/sess_p2utf2okm73g71cv2ed361a8c7, O_RDWR) failed: Permission denied (13) in [/vagrant/cake/libs/controller/controller.php, line 694]

我打开了所有权限(通过在 ./tmp 文件夹中执行“sudo chmod -R 777 .”)对/tmp 中的所有文件夹,但错误仍然存​​在。不确定为什么应用程序无法在 tmp 目录中创建新的 session 文件。

Edits & New developments :所以,我意识到当代码与主机和 vagrant guest 操作系统共享时,代码中的 tmp 文件夹实际上已挂载,这可能是原因对于未授予权限的错误。

现在问题已简化为如何在/vagrant/文件夹之外创建一个“tmp”文件夹,并将所有日志、缓存、 session 等写入虚拟操作系统文件系统内的外部文件夹?

我尝试使用以下建议:http://singletonio.blogspot.in/2009/01/changing-tmp-directory-of-cakephp-so-it.html

但是,新的日志、 session 没有写在 ~/tmp 上(这是我设置缓存、 session 、日志文件夹的地方)?

你能帮帮我吗?

最佳答案

我所做的是将开发服务器中的 Apache 用户从“www-data”更改为“vagrant”。

编辑/etc/apache2/envvars:

export APACHE_RUN_USER=vagrant
export APACHE_RUN_GROUP=vagrant

关于php - Vagrant : Unable to create sessions, 缓存中的 Cakephp,缓存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117266/

相关文章:

php - 在cakephp 3中查询获取数据

php - 如何在 30 分钟后使 PHP session 过期?

PHP:imagePNG() 不会将文件保存到目录。文件权限都正确,还是不行

php - CodeIgniter 正在数据库中生成多个 session 。为什么?

javascript - Node 请求如何处理 session

javascript - 在 CakePHP 中使用 Dojo 工具包

PHP - 检查/比较文本字段的输入

php - 添加多个 MySQL 条目

java - 匿名用户的 Tomcat/spring session 管理

php - CakePHP:值未保存到 Db