姜维博客
欢迎来访~

owncloud Can't create or write into the data directory

 

问题描述

安装owncloud时发生以下报错:
Can't create or write into the data directory /data/owncloud
请确保文件根目录下包含一个名为“.ocdata”的文件
Data directory *** not writable by owncloud
如下图:
 

问题分析

 检查php error log,发现存在以下错误日志
Message: is_dir(): open_basedir restriction in effect. File(/mnt/web_site_log/www.aaa.com/) is not within the allowed path(s): (/vagrant/vbee2:/tmp/:/proc/)
 
message":"realpath(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/wwwroot/owncloud/:/tmp/:/proc/) at /home/wwwroot/owncloud/lib/private/Files/Storage/Local.php#365"}
提取关键信息,应该是open_basedir设置问题,open_basedir限制了PHP能操作的目录。

解决方法

将PHP需要操作的目录加入到open_basedir中,
我使用的是LNMP环境,故以nginx为例来写解决办法。
 
1.配置nginx fastcgi fastcgi_param
vim /usr/local/nginx/conf/fastcgi.conf
找到open_basedir所在行,修改或添加成以下代码
# set php open_basedir
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
#这里用$document_root是一种取巧的方法,也可以设置绝对路径
 
注意:对于将owncloud数据文件保存在网站目录以外的路径,需要加上数据文件的路径!!!
如:将owncloud数据文件保存在/data/owncloud,需要修改或添加成以下代码
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/data/owncloud/";
 
2.配置php.ini
vim /usr/local/php/etc/php.ini
找到open_basedir所在行,修改或添加成以下代码:
[HOST=www.aaa.com]
open_basedir=/home/wwwroot/owncloud/:/proc/:/tmp/
 
 
同样,对于将owncloud数据文件保存在网站目录以外的路径,需要加上数据文件的路径。
[HOST=www.aaa.com]
open_basedir=/home/wwwroot/owncloud/:/proc/:/tmp/:/data/owncloud/
 
 
修改完毕后,重启nginx和PHP,问题解决。
 
 
可附来源转载:姜维博客 » owncloud Can't create or write into the data directory

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

待添加阿里云优惠