Goodday!
我们正在尝试设置Solr与TYPO3 6.2一起使用,但我们没有取得任何成功。 我们的第一次尝试是使用TYPO3提供的“install-solr.sh”脚本来运行带有Tomcat 6的Solr 4.8。
不幸的是,脚本没有在我们的(Debian)服务器上安装Solr,我无法让它运行。
我们尝试的第二件事是在没有Tomcat的情况下安装Solr(5.x),但我们无法为TYPO3配置它。
为TYPO3 6.2设置Solr的最佳方法是什么,以及如何为TYPO3配置?
亲切的问候!
答案 0 :(得分:1)
我尝试了同样的方法,但都失败了。我得出的结论是Solr 5.x与版本3.0.0和3.0.1中的扩展solr
不兼容,即使您手动安装它也是如此。 EXT:solr
中的配置不再适用于Solr 5.x.我试图解决这个问题,但它有太多变化。
我可以在手动安装后确认最新版本的4.x分支(4.10.4)与EXT:solr
一起工作正常。使用旧版本甚至4.8版应该不是问题,因为Solr服务器没有暴露给Web。
要使用Solr 4.x,只需下载Solr存档并将其解压缩到磁盘上的某个位置。这是一个用于启动和停止Solr 4.x-Server的简单脚本,您只需输入路径即可。我不太清楚我从哪里得到它,也许它甚至包含在EXT:solr
:
##################################################
# Environment
##################################################
# Adapt those paths
JAVA="/usr/bin/java"
SOLR_DATA_DIR="/path/to/your/project/.../typo3conf/ext/solr/Resources/Solr"
SOLR_CODE_DIR="/path/where/you/extracted/solr/to/..."
SOLR_PID="$SOLR_DATA_DIR/solr.pid"
SOLR_PORT="8983"
SOLR_HOST="127.0.0.1"
SOLR_RUNDIR="$SOLR_CODE_DIR/example"
SOLR_JAR="$SOLR_RUNDIR/start.jar"
SOLR_HOME="$SOLR_DATA_DIR"
RUN_ARGS=("-Dsolr.solr.home=$SOLR_HOME" "-Djetty.port=$SOLR_PORT" "-Djetty.host=$SOLR_HOST" -jar "$SOLR_JAR")
##################################################
# Helper functions
##################################################
usage()
{
echo "Usage: ${0##*/} {start|stop|status}"
exit 1
}
running()
{
local PID=$(cat "$1" 2>/dev/null) || return 1
kill -0 "$PID" 2>/dev/null
}
##################################################
# Do the action
##################################################
case "$1" in
start)
echo "Starting Solr: "
if start-stop-daemon --verbose --start --pidfile "$SOLR_PID" --make-pidfile --chdir "$SOLR_RUNDIR" --background --exec "$JAVA" -- "${RUN_ARGS[@]}" --daemon
then
sleep 2
if running "$SOLR_PID"
then
echo "OK"
else
echo "FAILED"
fi
fi
;;
stop)
echo "Stopping Solr: "
start-stop-daemon --stop --pidfile "$SOLR_PID" --chdir "$SOLR_RUNDIR" --exec "$JAVA" --signal HUP
TIMEOUT=30
while running "$SOLR_PID"; do
sleep 1
if (( TIMEOUT-- == 0 )); then
echo "Process is still running after 30 seconds. Wait a bit longer, or stop it manually."
exit 1
fi
done
rm -f "$SOLR_PID"
echo OK
;;
status)
if [ -f "$SOLR_PID" ]
then
echo "Solr is running, pid=$(< "$SOLR_PID")"
exit 0
fi
echo "Solr is not running"
exit 1
;;
*)
usage
;;
esac
如果Solr在使用脚本时无法正确启动,请尝试手动执行以下命令行,以便您可以看到堆栈跟踪(手动将变量替换为实际值):
/usr/bin/java -Dsolr.solr.home=$SOLR_HOME -Djetty.port=$SOLR_PORT -Djetty.host=$SOLR_HOST -jar $SOLR_JAR
答案 1 :(得分:0)
Jost完美地回答了,但我想补充以下内容。
如果你想通过Typo3提供的“install-solr.ssh”脚本安装Solr,请注意文件中的链接,以获取solr,不再存在。所以当你运行它时,它只会安装tomcat。
如果您想更改它,请执行以下操作。
搜索
cecho "Downloading Apache Solr $SOLR_VERSION" $green
wget --progress=bar:force http://mirror.dkd.de/apache/lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.zip 2>&1 | progressfilt
并将其替换为:
cecho "Downloading Apache Solr $SOLR_VERSION" $green
wget --progress=bar:force http://archive.apache.org/dist/lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.zip 2>&1 | progressfilt
然后它会正常安装。