Tweaks / Addons A.K.A. The Underground > 3rd party apps integratie in DSM
3rd party apps handleiding
wizjos:
@ allen,
Onderstaand een uit het Duits vertaalde handleiding; leek me wel handig :mrgreen:
Nu er een aantal voorbeelden gegeven zijn is het wellicht ook goed om eens even een moment stil te staan bij het toepassen van 3rd party 'gadgets'.
Onder andere een aantal zaken die gewoon standaard zijn bij 3rd party toepassingen en dus niet iede post herhaald hoeven te worden
1) De user dient zich altijd over https aan te melden; via poort 5001 dus.
2) Het is mogelijk om zonder authenticatie via https://jouwip:5001/phpsrc/applicatie/a ... ienaam.php een php (of cgi) script aan te roepen. Beveilig via .htaccess en .htpasswd!
3) Als je poorten 5000 en 5001 openzet via de router betekent dit altijd een zeker risico. Bedenk je dat goed!
4) De configuratiebestanden voor 3rd party apps worden altijd geplaatst in de directory /usr/syno/synoman/webman/3rdparty/applicatienaam. Voor iedere applicatie is er zodoende een eigen directory. In deze directory staat tenminste het bestand application.cfg: het configuratiebestand. Daarnaast kunnen hier nog andere bestanden staan zoals plaatjes, cgi bestanden etc. Een precieze handleiding staat hier.
Een minimale inhoud van application.cfg zou er zo uit kunnen zien:
test = Mijn applicatie
description = Dit is mijn applicatie
type = embedded
path = /phpsrc/my_app/index.php
Opmerking: Met de aanmaak van het eerste application.cfg bestand verschijnt automatisch het 3rd party menu in de Disk Station Manager (wel vernieuwen).
Er zijn geen bijzondere dingen voor nodig, behalve Firmware 637.
5) De 3rd party app draait in een HTML-iframe; (/usr/syno/synoman/webman/modules/appebd.html)
6) Via script programma's kan je interactief met de web-(-Apache-)applicaties omgaan. Wat Apache allemaal begrijpt leer je hem in zijn configuratiebestand: /usr/syno/apache/conf/httpd.conf-sys. Wat je daar verandert dient hij wel te leren, door te herstarten via /usr/syno/etc/rc.d/S97apache-sys.sh restart.
7) Om te zorgen dat sys-Apache ook PHP-Scripts kan begrijpen moeten er in /usr/syno/apache/conf/httpd.conf-sys twee regels worden toegevoegd:
AddType application/x-httpd-php .php
LoadModule php5_module /lib/libphp5.so
8. Om te zorgen dat sys-Apache ook alle Linux-systeemcommando's en alle paden kan begrijpen en zien, zijn verdere veranderingen in /usr/syno/apache/conf/httpd.conf-sys nodig (VERGELIJK DE REGELS GOED):
<Directory />
Options ExecCGI FollowSymLinks MultiViews Indexes
AllowOverride All
</Directory>
<Directory "/usr/syno/synoman">
Options ExecCGI FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.htm index.cgi index.php
</IfModule>
<IfModule mime_module>
...
AddHandler cgi-script .cgi
...
</IfModule>
Omdat een fout zo gemaakt is, kan het gebeuren dat Apache niet meer herstart. Daarom het advies altijd eerst een kopie van httpd.conf-sys te maken, voordat je ook maar iets doet.
(9) .cgi-bestanden (common gateway interface) worden door Apache in een zgn. Sub-Shell gestart, wat inhoudt dat binair-gecompileerde programma's (C-programma's), of scripts (shell, Perl enz.) kunnen worden uitgevoerd. Alle CGI-programma's eindigen op .cgi. In scripts is in de eerste regels als commentaar de geldende Interpreter op te geven, die door de Sub-Shell voor de verdere verwerking geladen wordt:
#!/bin/ash
10) .cgi-scipts/programma's kunnen zo ongeveer alles bevatten wat anders via de shell of Perl loopt. Je dient alleen, om te zorgen dat het door Apache uitgevoerd wordt, als eerste een geldige header moeten geven. Dat ziet er in een .cgi-shell-script zo uit:
echo "Content-type: text/html"
echo ""
of zo:
cat <<EOT
Content-type: text/html
EOT
Apache heeft de lege regels na de text header nodig, anders doet 'ie niks. Het script dient dan op zijn beurt weer geldige HTML code terug te geven.
************* EDIT *************
.cgi bestanden moeten met een chmod 755 bestandsnaam.cgi uitvoerbaar worden geflagged.
*********************************
11) Voor PHP-scripts moet een bestand worden aangepast: /usr/syno/etc/php.ini. Omdat je hiermee ingrijpt op de algemene werking van PHP dien je hiermee heel voorzichtig om te gaan. Maak een reservekopie! Ook hier geldt dat bij een wijziging Apache weer herstart moet worden (zie punt 6). De volgende veranderingen in php.ini zijn nodig om goed met Linux te kunnen werken/Linux commando's te kunnen uitvoeren:
safe_mode = Off
safe_mode_exec_dir =
open_basedir =
doc_root =
allow_url_fopen = On
register_globals = On
Er zullen een aantal instellingen waarschijnlijk al wel goed staan
Tot zover eerst maar even.... Genoeg om even op te broeden.... :mrgreen:
Groet,
Wizjos
wowo:
Het is zelfs mij gelukt om SABnzbd en SSODS als "3rd party apps" te integreren in DSM2.0.
Nu nog moed verzamelen om hetgeen jij hier beschrijft te gaan uitvoeren, want het smaakt naar meer. :P
wizjos:
wowo,
Dat het naar meer smaakt kan ik niet ontkennen :mrgreen: Succes! Als je maar zorgt voor backups kun je nog een heel eind experimenteren hiermee en wellicht zelfs met aanvullingen / verbeteringen /nieuw spul komen! Wordt tijd, want het lijkt er bijna op dat ik deze sectie in m'n eentje zit te vullen :mrgreen:
Groet,
Wizjos
Valith:
Ik kreeg dit helaas niet voor elkaar... SABnzbd ging me makkelijker af.
Is het niet te doen om er een spk-file/package van te maken, zoals bijvoorbeeld: ServiceSwitch
Dit maakt (de)installeren een stuk makkelijker.
wizjos:
Eeeh, Valith,
Wát kreeg je niet voor elkaar? Als je dat even kunt laten weten, misschien dat ik/men dan iets specifiekere hulp kan bieden...
Overigens kun je via de 3rd Party Manager heel makkelijk dit soort zaken installeren, backuppen(!) en de-installeren :mrgreen:
Ik kan ergens wel een .spk package van maken, maar je zal voor php instellingen, apache instellingen e.d. tóch de in dit topic beschreven zaken grotendeels handmatig in orde moeten maken...
Overigens, ik bouw (nog) geen .spk's vanwege twee redenen:
1) .spk packages zijn best handig, maar naar mijn idee zou je als gebruiker eerst heel goed moeten weten wat een .spk package in zich draagt aan programmatuur... Je zal maar een lolbroek hebben die een .spk package maakt dat blijkt je Syno om zeep te helpen.... Alleen van bedrijven zou ik me kunnen voorstellen dat ik 'ongezien accoord' ga met een package. Al wat ik publiceer is 'kale' code, voor iedereen te lezen. Ik ga er dan ook een klein beetje van uit dat iemand die met 3rd party apps aan de slag gaat wél het een en ander zou moeten weten ten aanzien van Linux en de interne werking van de Syno... :D
2) Ik kán ze nog niet maken omdat ik nog op een lagere versie van de DSM draai... (voorzichtig mens, kijk even de kat uit de boom voordat ik m'n firmware update....) :mrgreen:
Groet,
Wizjos
Navigatie
[0] Berichtenindex
[#] Volgende pagina
Naar de volledige versie