Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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
Ruby on rails sphinx search安装在根目录下,如何更改所有者?_Ruby On Rails_Sphinx_Thinking Sphinx - Fatal编程技术网

Ruby on rails sphinx search安装在根目录下,如何更改所有者?

Ruby on rails sphinx search安装在根目录下,如何更改所有者?,ruby-on-rails,sphinx,thinking-sphinx,Ruby On Rails,Sphinx,Thinking Sphinx,我遵循了本教程: 在ec2上的Ubuntu12上安装了sphinx,问题是我的rails应用程序是在一个名为“ubuntu”的用户下运行的,在我的 searchd.log 文件我看到它无法访问*.spl文件的警告 FATAL: failed to open /home/ubuntu/sites/app/shared/db/sphinx/production/group.tmp.spl: Permission denied, will not index. Try --rotate

我遵循了本教程:

在ec2上的Ubuntu12上安装了sphinx,问题是我的rails应用程序是在一个名为“ubuntu”的用户下运行的,在我的

searchd.log

文件我看到它无法访问*.spl文件的警告

FATAL: failed to open     /home/ubuntu/sites/app/shared/db/sphinx/production/group.tmp.spl: Permission denied,   will not index. Try --rotate option.

如何更改它,使所有sphinx都在ubuntu用户而不是root用户下运行?

我认为问题可能出现在
sudo su
的开始(在教程中),您以root用户身份登录;您应该只使用sudo在EC2中安装

一年半前,我在EC2中安装了Sphinx,但我从未使用过
sudosu
。我建议您卸载Sphinx并重新安装:

  • 去拿焦油
  • 配置源代码:
    /Configure–prefix=/usr/local
  • 运行:
    make
  • 运行:
    sudo make安装

  • 此外,你应该尝试太阳黑子与索尔(我从斯芬克斯移动到索尔,它在我看来更好的原因有很多,有很多基准)。希望有帮助。

    使用root安装Sphinx很好,但您需要确保以
    ubuntu
    用户的身份运行所有Thinking Sphinx rake任务


    我建议您停止Sphinx守护程序(如果正在运行),然后删除索引文件,然后通过
    ubuntu
    用户运行
    ts:rebuild
    rake任务,以确保新的索引文件和守护程序设置了正确的权限。

    谢谢您的回答。认为sphinx正在和我的ubuntu用户一起运行(我认为,否则它可能无法访问这些索引文件),我如何检查sphinx deamon是否正在运行?(很抱歉回答这个问题)今天晚些时候我会尝试你的解决方案。谢谢你,如果有搜索过程,那就是斯芬克斯。它还应该告诉您正在运行该进程的用户。已删除所有索引文件。已终止该进程,然后运行ts:rebuild以启动该进程。我运行了ts:reindex,然后它给出了相同的权限拒绝错误,整个文件夹再次填充了属于root用户的文件。你确定要用ubuntu用户运行ts:rebuild吗?是的,确定。我只使用ubuntu用户连接到服务器,最后我像你说的那样卸载并再次安装,它成功了