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.)