Rozchodit Sphinx daemon ve SmartOS zóně chce trochu snahy navíc. Hned po instalaci nefunguje.
Sphinx by měl být v zóně vytvořené z image base64 (alespoň od verze 13.1.0) již předinstalovaný. Ověřit si to můžeme pomocí pkgin:
# pkgin se sphinxsearch sphinxsearch-2.0.8 = Sphinx Full-Text Search Engine
Následně jej aktivujeme pomocí svcadm:
svcadm enable sphinx
V tuto chvíli Vám ale fungovat nebude:
# svcs -a|grep sphinx maintenance 15:25:22 svc:/pkgsrc/sphinx:default
Zobrazíme si tedy log SVC:
# tail /var/svc/log/pkgsrc-sphinx\:default.log [ Aug 28 15:18:00 Enabled. ] [ Aug 28 15:18:00 Could not interpret "user" property value "pbulk", error 2. ]
Vypadá to, že v systému nemáme uživatele pbulk. Ale zakládat jej nebudeme, pro sphinx už totiž uživatel připraven je:
# cat /etc/passwd|grep sphinx sphinx:x:1001:1001:sphinxsearch sphinx user:/nonexistent:/usr/bin/false
Nastavíme tedy SVC, aby daného uživatele použilo:
# svccfg -s pkgsrc/sphinx setprop method_context/user=astring: sphinx # svccfg -s pkgsrc/sphinx setprop method_context/group=astring: sphinx # svcadm refresh sphinx # svcadm clear sphinx
Sphinx ale stále neběží, máme tu ještě jeden problém:
# tail /var/svc/log/pkgsrc-sphinx\:default.log [ Aug 28 15:24:08 Leaving maintenance because clear requested. ] [ Aug 28 15:24:08 Enabled. ] [ Aug 28 15:24:08 Executing start method ("/opt/local/bin/searchd -c /opt/local/etc/sphinx.conf"). ] [ Aug 28 15:24:08 svc.startd could not set context for method: ] [ Aug 28 15:24:08 chdir: No such file or directory ("/nonexistent") ] [ Aug 28 15:24:08 Method "start" exited with status 96. ]
Vypadá to, že složka, ve které má uživatel sphinx svůj home, neexistuje. Změníme ji na existující:
# usermod -d /var/spool/sphinx sphinx
Nyní už by nám měl Sphinx vpořádku naběhnout. Pokud tedy máme správně nastaven conf a vygenerované indexy.
# svcadm clear sphinx # svcs -a|grep sphinx online 15:25:22 svc:/pkgsrc/sphinx:default