@ allen,
Onderstaand een uit het Duits vertaalde handleiding; leek me wel handig
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....
Groet,
Wizjos