Aki nem annyira szereti mások által üzemeltetett nyilvános RSS olvasókat használni, annak biztos tökéletes megoldást kínál a Tiny Tiny RSS (TTR) webmotor. Anno még cikkeztem róla, amikor a kezdeti fázisban elkészítettem egy kezdetleges magyarosítást. Most viszont azt szeretném bemutatni, hogy Mac OS X Server alatt milyen extra feltételeket kell teljesítenünk, hogy a TTR-t működésre bírjuk.
Abba nem mennék bele, hogy mit és honnan kell letölteni, illetve a konfigurációs file-t, hogy kell finomra hangolni. Ezekről nagyszerű leírások találhatóak minden fele.
Maga a TTR egy AJAX-os web felületet biztosít nekünk, ahhoz, hogy a letöltött híreket megjelenítse a felhasználó számára. Azt viszont, hogy a megfelelő weboldalakat (RSS tartalmakat) elérhetővé tegye, ahhoz egy funkciót kell biztosítanunk, ami ezeket az adatokat összegyűjti.
Alapvetően ez lehet egy háttérben futó daemon process, ami ezt a feladatot végzi, vagy egy ütemezett cron job. Sajnos Mac OS X alatt csak az utóbbi, ütemezett cron job fog működni. Ehhez a TTR webes konfigurációban egy dolgot mindenképp ellenőriznünk kell:
# vi config.php
define(‘ENABLE_UPDATE_DAEMON’, false);
// This enables different mechanism for user-triggered updates designed
// for update daemon running in background on the server.
// This option suggests FEEDS_FRAME_REFRESH set to a small value
// (like 60 seconds, depending on number of users and server/bandwidth load).
Mint látszik az UPDATE_DAEMON ki kell, hogy kapcsolva legyen.
A következő lépés, hogy el kell készítenünk a lanuchd TTR ütemezett job xml-jét. Íme egy példa, amit én használok (Mac OS X Server Snow Leopard 10.6.5):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Debug</key> <true/> <key>GroupName</key> <string>admin</string> <key>Label</key> <string>org.ttrss.update_feeds</string> <key>ProgramArguments</key> <array> <string>/usr/bin/php</string> <string>/Library/WebServer/xorp/rss/update_feeds.php </string> </array> <key>RunAtLoad< /key> <true/> <key>StandardErrorPath</key> <string>/var/log/ttrss_update_feed_err.log</string> <key>StandardOutPath</key> <string>/var/log/ttrss_update_feed.log</string> <key>StartInterval</key> <integer>900</integer> <key>UserName</key> <string>root</string> <key>WorkingDirectory</key> <string>/Library/WebServer/xorp/rss/</string> </dict> </plist>
Ahogy látszik, a következő dolgokat definiáltuk. A /usr/bin/php /Library/WebServer/xorp/rss/update_feeds.php paranccsot hívogatjuk meg 1,5 perces időintervallumokkal. A normál futási logot a /var/log/ttrss_update_feed.log file-ba írja, a hiba üzeneteket pedig a /var/log/ttrss_update_feed_err.log-ba fogja gyűjteni.
Ezek után töltsük be a rendszerünkbe, had fusson:
# sudo launchctl load /Library/LaunchDaemons/org.ttrss.update_feeds.plist
Ezek után a következő listában már fel kell tűnnie a launch listában.
# sudo launchctl list |grep ttrs
12062 – org.ttrss.update_feeds
Ha a fenti képet látjuk, akkor minden rendbe van. A működést tekintve még ellenőrizhetjük a két log file-t:
# cat /var/log/ttrss_update_feed.log
# cat /var/log/ttrss_update_feed_err.log
(Kiegészítés: Érdemes a file elejébe beszúrni a következő sort: date_default_timezone_set(‘Europe/Budapest’);
ez lesz felelős azért, hogy az error logok között újabb PHP esetén ne kapjunk millió error üzenetet a időzónával kapcsolatban.)