我正在为我的应用程序使用 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
}
最佳答案
简而言之,不,这是不可能的。 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 之前设置环境变量。
关于ruby - 如何在 .conf 文件中添加动态代码/ruby 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43739143/