Php Zend_Search_Lucene-Can';t创建目录'/数据/用户索引';
我在使用Zend_Search_Lucene创建索引时遇到问题 现在,在我的本地机器上一切正常,所以我猜只是Web服务器上的文件权限有问题 下面是我如何尝试在控制器中创建索引:Php Zend_Search_Lucene-Can';t创建目录'/数据/用户索引';,php,zend-framework,lucene,zend-search-lucene,Php,Zend Framework,Lucene,Zend Search Lucene,我在使用Zend_Search_Lucene创建索引时遇到问题 现在,在我的本地机器上一切正常,所以我猜只是Web服务器上的文件权限有问题 下面是我如何尝试在控制器中创建索引: $index = Zend_Search_Lucene::create('/data/users_index'); 当然,数据目录的权限设置为0777。以下是目录列表: public_html public 0755 css 0755 js 0755
$index = Zend_Search_Lucene::create('/data/users_index');
当然,数据目录的权限设置为0777。以下是目录列表:
public_html
public 0755
css 0755
js 0755
data 0777
但我得到了这个错误:
无法创建目录“/data/users\u index”
$index=Zend_Search_Lucene::create('public/data/users_index')
??
编辑/更新
:进一步阅读并查看您的结构后,我会尝试使用一个绝对路径,而不是相对路径,以确保其写入到写入位置。对不起,我刚才错过了那一部分。这显然不是最佳实践,但至少可以缩小是否存在许可/查找问题的范围
所以把它改成
$index = Zend_Search_Lucene::create('/path/to/public_html/public/data/users_index');
不过,您确实应该将其放在公共HTML文件夹之外。公众没有理由访问你的Lucene索引文件
例如,我的存储在这里:
'../application/models/lucene/articles/index'
如果您在Linux/Unix计算机上,则必须对文件夹或CHOWN/CHGRP进行CHMOD,以便web服务器具有写访问权限。如果您有权访问服务器,只需运行:
chmod -R 770 /path/to/your/data/users_index
但是,如果您不是服务器管理员,您可能应该要求服务器管理员确保这是应用于此文件夹的正确权限,每个管理员在如何设置文件夹权限方面都有自己的怪癖;他们应该属于哪一组;谁来改变它;等等
如果您在Windows计算机上,您必须右键单击该文件夹,并向IUSR\uuxxxxx
帐户授予权限,并授予他们对该文件夹的读/写访问权限。(用您的机器名替换XXX)这也不行,我已经试过了(当然,它也可以在我的本地机器上运行,但不能在联机服务器上运行)。在大多数ZF应用程序中,您定义了一个应用程序路径-使用它-应用程序路径。“/models/lucene/articles/index”实际上我将其更改为$index=Zend\u Search\u lucene::create('data/users\u index');它是有效的。奇怪的在我的本地机器上,不管我是否在开始时使用斜杠。。。