资料库

Ecshop您的服务器设置了 open_base_dir 且没有包含 /tmp/

2010/11/18

转载自http://hi.baidu.com/dmkj2008/blog/item/aed606ca4327ab4bf31fe744.html

前二天,安装了ecshop发现,后台提示:“您的服务器设置了 open_base_dir 且没有包含 /tmp/,您将无法上传文件”。在网上一查,发现很多人都遇到同样的问题。网上有很多解决方式。我的空间是LINUX的,预装apache+mysql5.0+php5.2+kloxo。

首先按照一种说法,修改php下面php.ini。在ssh中用vi打开php.ini。只找到有段语句open_basedir,并不是open_base_dir。而且前面有分号(;)表示并没启用。而且这个问题应该是apache的设置问题,和PHP关系不大。尝试改成open_base_dir"/tmp" 删除前面的;重启apache问题依旧,证实不是这个问题。

另一种解决方式是修改apache的httpd-vhosts.conf 文件,apache默认应该装在usr/local。奇怪的是我的vps没有找到apache文件夹。问了vps租用商apache装在哪,我找不到。服务商直接回答你问这个干什么,不懂不要乱改,出了问题不负责任。NND,今时今日呢种服务带的系唔得噶。我自己找。发现vps装的环境很奇怪。发现了一堆conf文件都是kloxo的,在一个conf文件发现vps利用klxox针对每个域名设置了不同的open_base_dir。最终在home/httpd/abc.com/conf/kloxo.abc.com文件中找到open_base_dir参数。只是文件中写的是open_basedir(ps,可以/pattern 的vi查找命令一下)。改成open_base_dir。重启apache问题终于解决了。。。(ps,service httpd restart)

知道是apache配置问题,解决很简单。问题在于我的vps找这个配置文件找的累死我了。ecshop那么多人反映这个问题,我想可以通过程序解决这个问题的,干嘛非要让用户去自己解决呢。仅仅是个open_basedir和open_base_dir的区别。哎!kloxo还挺科学的。以前一直用windows的服务器,后来换了linux的,也是朋友在管。现在自己在弄linux,还有很多东西要了解呢.