Jak ve SmartOS zóně založené na image base64 rozchodit Sphinx search

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.