Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend_Search_Lucene-Can';t创建目录'/数据/用户索引';_Php_Zend Framework_Lucene_Zend Search Lucene - Fatal编程技术网

Php Zend_Search_Lucene-Can';t创建目录'/数据/用户索引';

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

我在使用Zend_Search_Lucene创建索引时遇到问题

现在,在我的本地机器上一切正常,所以我猜只是Web服务器上的文件权限有问题

下面是我如何尝试在控制器中创建索引:

$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');它是有效的。奇怪的在我的本地机器上,不管我是否在开始时使用斜杠。。。