在Debian wheezy上使用solr-jetty
不好意思突然這樣問,先不說solr是什麼,我們先來安裝一個在jetty上運行solr的套件吧。(關於如何使用solr的方法,我以後再寫)
我們將使用Debian wheezy版本。在squeeze版本中並不存在,但在這個版本中如何呢?能夠正常使用嗎?
稍微補充一下,jetty是一個Servlet容器,solr則是一個Java的web應用程式,你可以暫時這樣理解。
安装Solr
可以直接安装solr-jetty,但首先先尝试安装独立的jetty。
# apt-get install jetty
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
apache2-utils ca-certificates ca-certificates-java dbus default-jre-headless
icedtea-6-jre-cacao icedtea-6-jre-jamvm java-common jsvc libapr1 libaprutil1
libavahi-client3 libavahi-common-data libavahi-common3 libcap2
libcommons-daemon-java libcups2 libdbus-1-3 libjetty-java libjpeg8
liblcms2-2 libnspr4 libnss3 libnss3-1d libpcsclite1 libservlet2.5-java
libslf4j-java libsystemd-login0 openjdk-6-jre-headless openjdk-6-jre-lib
openssl tzdata-java
提案パッケージ:
dbus-x11 default-jre equivs libjetty-extra-java libjetty-extra
libjetty-java-doc java-virtual-machine cups-common liblcms2-utils pcscd
libcommons-logging-java liblog4j1.2-java libnss-mdns sun-java6-fonts
ttf-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho ttf-wqy-microhei
ttf-wqy-zenhei ttf-indic-fonts
以下のパッケージが新たにインストールされます:
apache2-utils ca-certificates ca-certificates-java dbus default-jre-headless
icedtea-6-jre-cacao icedtea-6-jre-jamvm java-common jetty jsvc libapr1
libaprutil1 libavahi-client3 libavahi-common-data libavahi-common3 libcap2
libcommons-daemon-java libcups2 libdbus-1-3 libjetty-java libjpeg8
liblcms2-2 libnspr4 libnss3 libnss3-1d libpcsclite1 libservlet2.5-java
libslf4j-java libsystemd-login0 openjdk-6-jre-headless openjdk-6-jre-lib
openssl tzdata-java
アップグレード: 0 個、新規インストール: 33 個、削除: 0 個、保留: 0 個。
46.7 MB のアーカイブを取得する必要があります。
この操作後に追加で 71.5 MB のディスク容量が消費されます。
続行しますか [Y/n]?
由于Debian wheezy包含了各种组件,所以在系统中会自动安装Jetty 6.1.26版本。根据官方文档,这个版本适用于使用Solr 3.5.0。
首先,让我们来看一下Jetty的配置。
$ dpkg -L jetty
/.
/etc
/etc/jetty
/etc/jetty/contexts
/etc/jetty/contexts/javadoc.xml
/etc/jetty/contexts/README.TXT
/etc/jetty/jdbcRealm.properties
/etc/jetty/jetty-ajp.xml
/etc/jetty/jetty-bio.xml
/etc/jetty/jetty-debug.xml
/etc/jetty/jetty-extra.conf
/etc/jetty/jetty-jmx.xml
/etc/jetty/jetty-jsp.xml
/etc/jetty/jetty-logging.xml
/etc/jetty/jetty-plus.xml
/etc/jetty/jetty-rewrite.xml
/etc/jetty/jetty-setuid.xml
/etc/jetty/jetty-ssl.xml
/etc/jetty/jetty-sslengine.xml
/etc/jetty/jetty-stats.xml
/etc/jetty/jetty-xinetd.xml
/etc/jetty/jetty.conf
/etc/jetty/jetty.xml
/etc/jetty/keystore
/etc/jetty/realm.properties
/etc/jetty/start.config
/etc/jetty/webdefault.xml
/etc/jetty/jetty-shared-webapps.xml
/etc/cron.daily
/etc/cron.daily/jetty
/etc/default
/etc/default/jetty
/etc/init.d
/etc/init.d/jetty
/usr
/usr/share
/usr/share/jetty
/usr/share/jetty/resources
/usr/share/jetty/resources/log4j.properties
/usr/share/doc
/usr/share/doc/jetty
/usr/share/doc/jetty/copyright
/usr/share/doc/jetty/LICENSES
/usr/share/doc/jetty/LICENSES/NOTICE.txt
/usr/share/doc/jetty/LICENSES/cla-dexter.txt.gz
/usr/share/doc/jetty/LICENSES/cla-dyu.txt.gz
/usr/share/doc/jetty/LICENSES/cla-gnodet.txt.gz
/usr/share/doc/jetty/LICENSES/cla-gregw.txt.gz
/usr/share/doc/jetty/LICENSES/cla-janb.txt.gz
/usr/share/doc/jetty/LICENSES/cla-jesse.txt.gz
/usr/share/doc/jetty/LICENSES/cla-jfarcand.txt.gz
/usr/share/doc/jetty/LICENSES/cla-jocsch.txt.gz
/usr/share/doc/jetty/LICENSES/cla-jstrachan.txt.gz
/usr/share/doc/jetty/LICENSES/cla-jules.txt.gz
/usr/share/doc/jetty/LICENSES/cla-jvz.txt.gz
/usr/share/doc/jetty/LICENSES/cla-lorban.txt.gz
/usr/share/doc/jetty/LICENSES/cla-mgorovoy.txt.gz
/usr/share/doc/jetty/LICENSES/cla-mpurland.txt.gz
/usr/share/doc/jetty/LICENSES/cla-ngonzalez.txt.gz
/usr/share/doc/jetty/LICENSES/cla-potterru.txt.gz
/usr/share/doc/jetty/LICENSES/cla-sbordet.txt.gz
/usr/share/doc/jetty/LICENSES/cla-tbecker.txt.gz
/usr/share/doc/jetty/LICENSES/cla-template.txt.gz
/usr/share/doc/jetty/LICENSES/cla-tvernum.txt.gz
/usr/share/doc/jetty/LICENSES/ccla-exist.pdf.gz
/usr/share/doc/jetty/LICENSES/ccla-sabre.pdf.gz
/usr/share/doc/jetty/LICENSES/ccla-simulalabs.txt.gz
/usr/share/doc/jetty/LICENSES/ccla-template.txt.gz
/usr/share/doc/jetty/README.Debian
/usr/share/doc/jetty/changelog.Debian.gz
/usr/share/doc/jetty/NEWS.Debian.gz
/usr/share/doc/jetty/changelog.gz
/usr/share/doc/jetty/README.txt.gz
/var
/var/lib
/var/lib/jetty
/var/lib/jetty/webapps
/var/lib/jetty/webapps/README.TXT
/var/lib/jetty/webapps/root
/var/lib/jetty/webapps/root/index.html
/var/lib/jetty/webapps/root/jetty_banner.gif
/var/log
/var/log/jetty
/var/cache
/var/cache/jetty
/usr/share/jetty/javadoc
/usr/share/jetty/contexts
/usr/share/jetty/etc
/usr/share/jetty/logs
/usr/share/jetty/webapps
嗯,暂时看起来还没有启动。
# netstat -tlpn
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1896/sshd
tcp6 0 0 :::22 :::* LISTEN
我会尝试启动。
# /etc/init.d/jetty start
[....] Not starting jetty - edit /etc/default/jetty and change NO_START to be 0 [FAILomment it out). ... failed!
因此需要编辑/etc/default/jetty。
# change to 0 to allow Jetty to start
# ↓ 1を0にする
NO_START=0
這是日文的句子,沒有提供有效的中文解釋。可以提供更多上下文或者其他問題嗎?
# /etc/init.d/jetty start
[....] Starting Jetty servlet engine.: jetty[....] Jetty servlet engine started,[ ok hable on http://{$your-host}:8080/.: jetty.
如果已经使用了8080端口的话,它就会失败,所以请尝试使用之前的文件来更改端口。
、然而
# netstat -tlpn
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1896/sshd
tcp6 0 0 127.0.0.1:8080 :::* LISTEN 6922/jsvc.exec
tcp6 0 0 :::22 :::* LISTEN 1896/sshd
因此,为了进行测试,我将使其成为本地绑定,以便可以从任何主机连接。我将在之前的/etc/default/jetty文件中定义如下。
# Listen to connections from this network host
# Use 0.0.0.0 as host to accept all connections.
# Uncomment to restrict access to localhost
#JETTY_HOST=$(uname -n)
JETTY_HOST=0.0.0.0
以中文进行本地化重述,只需要一个选项:
在这里
# /etc/init.d/jetty restart
<略>
# netstat -tlpn
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1896/sshd
tcp6 0 0 :::8080 :::* LISTEN 7061/jsvc.exec
tcp6 0 0 :::22 :::* LISTEN 1896/sshd
大概就是这样吧。通过浏览器或其他方式访问该主机的8080端口上的http。
Welcome to Jetty 6 on Debian
如果能够看到这样的事情,也还可以。
安装solr-jetty
这个也应该能用apt来解决
# apt-get install solr-jetty
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
ant ant-optional curl fontconfig hicolor-icon-theme icedtea-netx
icedtea-netx-common javascript-common libapache-mime4j-java
libapache-pom-java libasound2 libasyncns0 libatk-wrapper-java
libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libavalon-framework-java
libbcel-java libcairo2 libclass-isa-perl libcommons-beanutils-java
libcommons-codec-java libcommons-collections3-java libcommons-compress-java
libcommons-dbcp-java libcommons-digester-java libcommons-fileupload-java
libcommons-httpclient-java libcommons-io-java libcommons-lang-java
libcommons-logging-java libcommons-parent-java libcommons-pool-java libcurl3
libdatrie1 libecj-java libexcalibur-logkit-java libffi5 libflac8
libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgeronimo-jta-1.1-spec-java
libgeronimo-stax-1.2-spec-java libgif4 libglib2.0-0 libglib2.0-data
libgnuinet-java libgnujaf-java libgnumail-java libgtk2.0-0 libgtk2.0-bin
libgtk2.0-common libguava-java libhttpclient-java libhttpcore-java
libhttpmime-java libice6 libicu4j-4.4-java libjasper1 libjaxp1.3-java
libjbig0 libjetty-extra libjetty-extra-java libjs-jquery libjson0
libjsr305-java libknopflerfish-osgi-framework-java libldap-2.4-2
liblog4j1.2-java liblucene3-contrib-java liblucene3-java libmsv-java
libmx4j-java libogg0 libpango1.0-0 libpcre3 libpixman-1-0 libpng12-0
libportlet-api-2.0-spec-java libpulse0 libregexp-java
librelaxng-datatype-java librtmp0 libsasl2-2 libsasl2-modules libsm6
libsndfile1 libsolr-java libssh2-1 libstax-java libstax2-api-java
libswitch-perl libthai-data libthai0 libtiff4 libtomcat6-java libvorbis0a
libvorbisenc2 libwoodstox-java libx11-xcb1 libxcb-render0 libxcb-shm0
libxcomposite1 libxcursor1 libxdamage1 libxerces2-java libxfixes3 libxft2
libxi6 libxinerama1 libxml-commons-external-java
libxml-commons-resolver1.1-java libxml2 libxrandr2 libxrender1 libxtst6
libxz-java openjdk-6-jre perl perl-modules sgml-base shared-mime-info
solr-common ttf-dejavu-extra wwwconfig-common xml-core
提案パッケージ:
default-jdk java-compiler java-sdk ant-gcj ant-doc libbsf-java liboro-java
libxalan2-java junit jython antlr libjdepend-java libcommons-net-java
libjsch-java javacc ant-optional-gcj apache2 httpd libasound2-plugins
libavalon-framework-java-doc libbcel-java-doc libcommons-beanutils-java-doc
libcommons-collections3-java-doc libcommons-dbcp-java-doc
libcommons-digester-java-doc libcommons-httpclient-java-doc
libcommons-io-java-doc libcommons-lang-java-doc libcommons-logging-java-doc
ecj libecj-java-gcj libgeronimo-jta-java-doc libgnumail-java-doc
librsvg2-common gvfs libjasper-runtime libjaxp1.3-java-gcj
libjsr305-java-doc libknopflerfish-osgi-java-doc liblog4j1.2-java-doc
libjboss-jmx-java liblucene3-java-doc junit4 libhessian-java ttf-baekmuk
ttf-arphic-gbsn00lp ttf-arphic-bsmi00lp ttf-arphic-gkai00mp
ttf-arphic-bkai00mp pulseaudio libsasl2-modules-otp libsasl2-modules-ldap
libsasl2-modules-sql libsasl2-modules-gssapi-mit
libsasl2-modules-gssapi-heimdal libeasymock-java libjetty-extras-java
libsolr-java-doc libstax-java-doc tomcat6 libxerces2-java-doc
libxerces2-java-gcj libxml-commons-resolver1.1-java-doc icedtea-plugin
perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make
libpod-plainer-perl sgml-base-doc libmysql-java mysql-client
postgresql-client debhelper
以下のパッケージが新たにインストールされます:
ant ant-optional curl fontconfig hicolor-icon-theme icedtea-netx
icedtea-netx-common javascript-common libapache-mime4j-java
libapache-pom-java libasound2 libasyncns0 libatk-wrapper-java
libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libavalon-framework-java
libbcel-java libcairo2 libclass-isa-perl libcommons-beanutils-java
libcommons-codec-java libcommons-collections3-java libcommons-compress-java
libcommons-dbcp-java libcommons-digester-java libcommons-fileupload-java
libcommons-httpclient-java libcommons-io-java libcommons-lang-java
libcommons-logging-java libcommons-parent-java libcommons-pool-java libcurl3
libdatrie1 libecj-java libexcalibur-logkit-java libffi5 libflac8
libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgeronimo-jta-1.1-spec-java
libgeronimo-stax-1.2-spec-java libgif4 libglib2.0-0 libglib2.0-data
libgnuinet-java libgnujaf-java libgnumail-java libgtk2.0-0 libgtk2.0-bin
libgtk2.0-common libguava-java libhttpclient-java libhttpcore-java
libhttpmime-java libice6 libicu4j-4.4-java libjasper1 libjaxp1.3-java
libjbig0 libjetty-extra libjetty-extra-java libjs-jquery libjson0
libjsr305-java libknopflerfish-osgi-framework-java libldap-2.4-2
liblog4j1.2-java liblucene3-contrib-java liblucene3-java libmsv-java
libmx4j-java libogg0 libpango1.0-0 libpcre3 libpixman-1-0 libpng12-0
libportlet-api-2.0-spec-java libpulse0 libregexp-java
librelaxng-datatype-java librtmp0 libsasl2-2 libsasl2-modules libsm6
libsndfile1 libsolr-java libssh2-1 libstax-java libstax2-api-java
libswitch-perl libthai-data libthai0 libtiff4 libtomcat6-java libvorbis0a
libvorbisenc2 libwoodstox-java libx11-xcb1 libxcb-render0 libxcb-shm0
libxcomposite1 libxcursor1 libxdamage1 libxerces2-java libxfixes3 libxft2
libxi6 libxinerama1 libxml-commons-external-java
libxml-commons-resolver1.1-java libxml2 libxrandr2 libxrender1 libxtst6
libxz-java openjdk-6-jre perl perl-modules sgml-base shared-mime-info
solr-common solr-jetty ttf-dejavu-extra wwwconfig-common xml-core
アップグレード: 0 個、新規インストール: 127 個、削除: 0 個、保留: 0 個。
69.7 MB のアーカイブを取得する必要があります。
この操作後に追加で 163 MB のディスク容量が消費されます。
続行しますか [Y/n]?
这就像是依赖症一样的状态,但也只能这样了。好吧,我会安装它。
solr-jetty (3.6.0+dfsg-1+deb7u1) を設定しています ...
[....] Stopping Jetty servlet engine (was reachable on http://{$your-host}:8080[ ok jetty . .[....] Jetty servlet engine stopped.: jetty.
[....] Starting Jetty servlet engine.: jetty Rotate logs[....] Jetty servlet eng[ ok tarted, reachable on http://{$your-host}:8080/.: jetty.
嗯,大概就是这种情况,需要重新启动,但不知道该怎么办,所以会先检查安装的东西。
先试着对solr-jetty进行dpkg -L操作看看
# dpkg -L solr-jetty
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/solr-jetty
/usr/share/doc/solr-jetty/changelog.Debian.gz
/usr/share/doc/solr-jetty/copyright
/usr/share/solr
/usr/share/solr/web
/usr/share/solr/web/WEB-INF
/usr/share/solr/web/WEB-INF/jetty-web.xml
/var
/var/lib
/var/lib/jetty
/var/lib/jetty/webapps
/var/lib/jetty/webapps/solr
我明白了,在webapps的下面放置了solr。
、
、在中国本土上以中文重述以下句子,只需要一个选项:
、
、为
# ls -l /var/lib/jetty/webapps/
合計 8
-rw-r--r-- 1 jetty adm 697 10月 30 2006 README.TXT
drwxr-xr-x 2 jetty adm 4096 11月 8 01:38 root
lrwxrwxrwx 1 root root 22 6月 17 02:51 solr -> /usr/share/solr/webapp
/var/lib/jetty/webapps/目录下存在一个符号链接指向/usr/share/solr,需要去查看一下符号链接所指向的/usr/share/solr目录。
# ls -l /usr/share/solr/
合計 8
drwxr-xr-x 2 root root 4096 11月 8 02:11 bin
lrwxrwxrwx 1 root root 14 6月 17 02:51 conf -> /etc/solr/conf
lrwxrwxrwx 1 root root 18 6月 17 02:51 data -> /var/lib/solr/data
lrwxrwxrwx 1 root root 13 6月 17 02:51 logs -> /var/log/solr
lrwxrwxrwx 1 root root 3 6月 17 02:51 scripts -> bin
lrwxrwxrwx 1 root root 18 6月 17 02:51 solr.xml -> /etc/solr/solr.xml
drwxr-xr-x 4 root root 4096 11月 8 02:11 web
找不到/usr/share/solr/webapp的问题发生了…这真的很糟糕,我会立即修复的。
# rm /var/lib/jetty/webapps/solr
# ln -s /usr/share/solr/web /var/lib/jetty/webapps/solr
# /etc/init.d/jetty restart
嗯,现在只需访问http://your-host:8080/solr,看看…
HTTP ERROR 500
Problem accessing /solr/. Reason:
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk-amd64/jre"
Caused by:
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk-amd64/jre"
噢,原来是没有Java编译器啊。
# tyep javac
-su: tyep: コマンドが見つかりません
我可能会安装OpenJDK-6-JDK。也许使用default-jdk也可以… 我对Java相关的东西并不太了解。总之,我需要确保能够使用javac。这可能也是依赖关系吧?
无论如何,在确认之后,您要重新启动一次吗?
# type javac
javac は /usr/bin/javac です
# /etc/init.d/jetty restart
通过这个链接可以看到非常平淡无奇的管理界面。由于可以无密码进入管理界面,因此最终我们需要想办法解决这个问题。
不管怎样,辛苦了。