我正在为我的应用程序使用Sphinx搜索引擎,我想在sphinx.conf文件中添加ruby代码,以根据我的应用程序服务器主机名动态更新某些值?是否可以在sphinx.conf中执行ruby代码?像下面的东西
{
type = mysql
sql_host = testHost
sql_user = test
sql_pass = <%= D.decrypt("encrypted password") %> // Ruby CODE
sql_db = {{database_name}}
sql_query_pre = SET TIME_ZONE = '+0:00'
sql_query_pre = SET SESSION group_concat_max_len = 32768
sql_query_pre = SET NAMES utf8
}
答案 0 :(得分:0)
简而言之,不可能。 Sphinx无法直接在其.conf文件中执行Ruby。
话虽这么说,您可以使用环境变量来保护密码不在您的配置文件中:
{
type = mysql
sql_host = testHost
sql_user = test
sql_pass = $SQL_PASS
sql_db = {{database_name}}
sql_query_pre = SET TIME_ZONE = '+0:00'
sql_query_pre = SET SESSION group_concat_max_len = 32768
sql_query_pre = SET NAMES utf8
}
然后,您可以在运行Sphinx时在命令行中设置环境变量:
SQL_PASS="mypassword123" indexer -c /path/to/config
或者在.bashrc中设置:
export SQL_PASS="mypassword123"
或者将其设置为ruby:
ENV["SQL_PASS"] = "mypassword123"
请记住,无论您选择何种方法,都必须在运行Sphinx之前设置环境变量。