Spotweb op een Synology NAS
Ik had eerst ook problemen met spotweb, met de standaard Apache van Synology iig.Ondanks dat ik PEAR wel op mijn Synology had via IPKG, en ook in de Apache config als include had, en phpinfo() zei ook iets over PEAR, dus volgens mij klopte alles, maar het lukte mij niet om het werkend te krijgen.
Nu dus wel werkend gekregen.
Misschein dat er meer interesse voor is, dus hier wat ik heb uitgevoerd:
IPKG packages
Je moet sowieso de mogelijkheid hebben om Optware te installeren op je Synology, anders gaat het onderstaande al niet lukken. (Kijk even in het Synology topic, staat daar vast wel uitgelegd.)Installeer php-apache "ipkg install php-apache".
Deze zal ook een paar extra packages installeren, waaronder ook Apache. Dit is dus een nieuwe extra webserver, op een andere poort (8000) naast je normale "Synology Apache".
Als je het nog niet hebt, ook nog php-pear installeren: "ipkg install php-apache". Daarna het commando "pear install Net_NNTP" uitvoeren om NNTP support aan PEAR toe te voegen. Ofzoiets.
MySQL
Volgend stukje alleen nodig als je Spotweb met MySQL support wilt gebruiken: "ipkg install php-mysql". Nu krijg je naast de php-mysql module ook nog eens gratis een extra MySQL server.Deze wil ik eigenlijk helemaal niet gebruiken, volgens mij is het nog een behoorlijk oude versie ook. Stoppen dat ding! "/opt/etc/init.d/S70mysqld stop". Nu kan je gewoon de "Synology MySQL" server gebruiken.
GIT clone
Ga naar de hoofdmap waar je spotweb wilt hebben: "cd /volume1/web"Voer nu een git clone uit: "git clone https://github.com/spotweb/spotweb.git".
Nu heb je een submap genaamd "spotweb" met de laatste versie.
Spotweb via GIT updaten
Allereerst heb je een klein hulpmiddel genaamd "tr" nodig. Deze is onderdeel van "textutels". Installeer deze via: "ipkg install textutils".Ga nu naar de directory waar je spotweb staat, en voer het update commando uit: "git pull".
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| DiskStation> git pull Updating af303bf..2d53a36 Fast-forward SpotNntp.php | 4 ++- SpotParser.php | 23 +++++++++++++-------- db.php | 10 +++++++++ index.php | 30 +++++++++++++++++++++++++--- retrieve.php | 45 ++++++++++++++++++++++++++++++++++--------- settings.php | 23 +++++++++++++++++++-- templates/filters.inc.php | 14 ++++++++++++- templates/spotinfo.inc.php | 18 ++++++++++++++-- templates/spots.inc.php | 34 ++++++++++++++++++++++++++++++-- testinstall.php | 1 + 10 files changed, 168 insertions(+), 34 deletions(-) |
Configuratie
Edit nu "/opt/etc/apache2/httpd.conf" met vi of nano. Gooi ergens in deze configuratie (Voorkeur helemaal op het eind) de volgende regel: "Include /opt/etc/apache2/conf.d/php.conf"Als je de orginele directory van je Synology wilt gebruiken als webroot, pas dan ook even de DocuemntRoot aan (Regel 169): DocumentRoot "/volume1/web" en verderop (Regel 196) aanpassen naar: <Directory "/volume1/web">.
Edit ook nog het bestand "/opt/etc/php.ini". Standaard is de waarde "memory_limit" 8M, daarmee kon ik Spotweb niet werkend krijgen, 32M moet genoeg zijn denk ik, ik hem hem nu op 64M staan.
Herstarten na het aanpassen van Apache en/of php.ini: "/opt/etc/init.d/S80apache restart" of "/opt/sbin/httpd -k restart").
Bijna klaar!
Nu kan je als je settings.php van Spotweb goed hebt ingevuld, het beste de eerste keer/keren via de commandline starten, totdat je database geheel gevuld is."php retrieve.php"
Je zou nu iets moeten zien zoals:
Bash:
1
2
3
4
5
6
7
8
9
10
| DiskStation> php retrieve.php Appr. Message count: 204493 Last message number: 208601 Current message: 4108 Retrieving: 4108 till 14108 Retrieving: 14109 till 24109 Retrieving: 24110 till 34110 Retrieving: 34111 till 44111 Retrieving: 44112 till 54112 Retrieving: 54113 till 64113 |
Ziet er goed uit! Of toch niet... :
code:
1
| PHP Fatal error: Maximum execution time of 30 seconds exceeded in /volume1/web/spotweb/SpotParser.php on line 116 |
Als je een timeout krijgt, zoals ik ook had, dan kan je als tijdelijke oplossing retrieve.php bewerken, zoek naar set_time_limit. Standaard is dit 30, heb ik verhoogd naar 60 seconden.
Nu kan je retrieve.php weer uitvoeren, en zal hij verdergaan waar hij gebleven was.
Zodra je initiele spots in de database staan kan je retrieve.php via de browser laten updaten.
[url=http://diskstation:8000/spotweb/]http://diskstation:8000/spotweb[/url] of in welke map hij ook staat
En die kan je optioneel weer via je orignele Synology apache met mod_proxy laten werken, zodat je alleen poort 80 nodig hebt extern
[ Voor 13% gewijzigd door Nakebod op 25-02-2011 23:04 ]
Blog | PVOutput Zonnig Beuningen