Mmm, dejlig dag.
For godt en uge siden købte jeg en Synology DS106e der er en lille NAS server, med download manager (Bittorrent, ftp, http), PHP, MySQL, UPnP og en bunke andre features.
En lille uge efter spiller den max med Ubuntu og XP
Som standard tilbyder boxen en download manager man kan tilgå hvis man er på boxens lokale net. Et lille stykke software hvor du kan tilføje URL'er og så tager den sig af det, hvilket jo er pænt fikst hvis man ikke vil have sin computer tændt :-)
Problemet er at download manageren (der iøvrigt virker i Ubuntu med Wine) ikke kan tilgås udefra. Hvis jeg sider hjemme, er min computer alligevel tændt, og med den smule filer jeg henter behøver den ikke stå natten over. Nej det der er interessant er at få den åbnet op udefra, ligesom de har gjort med Apache serveren, så man ude fra kan tilføje downloads. Så her er hvordan man gør det
Ud over at følgende ødelægger garantien på boxen, så er her overhovedet ikke taget højde for sikkerhed. Det hele er på eget ansvar.
1. Boxen skal åbnes op. Bemærk... Hvis du gør det her, så RYGER GARANTIEN PÅ BOXEN. Du kan stadig gøre det meste af det her uden, men hvis du vil have cronjobs og kunne chmod'e dine foldere... Så er det telnet du skal ha'
Følg denne guide for at installere patchen
2. Opret en mappe, eksempelvis i /volume1/public og chmod den til 755 eller højere. Du kan evt. benytte public mappen selv. Husk stien
3. I din webfolder skal vi have et lille script der tager sig af at snakke med shellen:
<?php
define("DOWN2", "/volume1/public/");
define("WGETPARAMS", " -b -nc -P");//starter med mellemrum....
$link = "http://someplace.dk/somefile.zip";
$command="wget".WGETPARAMS." ".DOWN2." ";
$e = new execC();
$e->background($command.$link);
class execC {
public $PID;
//priority -20 very nice, 19 greedy
function background($Command, $Priority = 0){
if($Priority){
$this->PID = exec("$Priority $Command > /dev/null & echo $!");
} else {
$this->PID = exec($Command);
}
return($this->PID);
}
function is_running(){
exec("ps $this->PID", $ProcessState);
return(count($ProcessState) >= 2);
}
function kill(){
if(exec::is_running($this->PID)){
exec("kill -KILL $this->PID");
return true;
} else {
return false;
}
}
};
?>
Herfra burde det være en smal sag at lave en form der tager sig af at sende $link variablen.
4. Som udgangspunkt tillader php.ini ikke særligt meget, så vi skal have åbnet lidt op.. log ind som root
NB: hvis du ikke har rodet med "vi" før, så tag et kig på http://www.lagmonster.org/docs/vi.html
$ vi /usr/syno/etc/php.ini
Find de to linier safe_mode = On og safe_mode_include_dir = /bin/et_eller_andet og sæt dem til
safe_mode = Off
safe_mode_include_dir =
Hvis du ikke har brug for cron jobs, så genstart boxen og så kører bussen
evt (installerede lige kplaylist så jeg kan tilgå podcasts der hvor j nu sider:
tilføj til open_dir /volume1/podcast/
/usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
good
hmm ... dit indlæg er godt. Jeg kan virkelig lide det. . . nice job at holde deling;)
Dissertation writing
Re
The custom writing service would furnish guys with the article referring to essay writer and it is so good that you display students your release about this post.
Indsend kommentar