Avatar billede besoft Nybegynder
28. august 2004 - 00:55 Der er 13 kommentarer og
1 løsning

Include fil fra en anden server

Hejsa

Kan det lade sig gøre at inkludere en fil fra en anden server end den man arbejder på?

Jeg har 2 servere. På server 1 ligger selve sitet. På server 2 ligger nogle php filer jeg gerne vil kunne inkludere på en side på server 1.

Det kan ikke lade sig gøre at flytte tingene så det hele ligger på een maskine.

En include som:
include("http://mit.domain.dk/GetData.php?Account=1234");
.... virker ikke.

Er det et spørgsmål om opsætning på server 2 eller kan det bare ikke lade sig gøre.
Avatar billede leif Seniormester
28. august 2004 - 01:11 #1
Du siger det ikke virker den fortæller dig vel hvorfor det ikke virker !

Det skulle lade sig gøre, dog kan det være et spm. om restricted parameteren i httpd.conf, det er lige et skyd i tågen, da jeg sidder på min bærbar uden adgang til mine 2 servere.
Avatar billede kourinsu Nybegynder
28. august 2004 - 01:24 #2
Har selv prøvet at arbejde med det, men opgav det igen. Hvis du tænker over det, så ville det jo også være verdens største sikkerhedshul, hvis man bare kunne inkludere php filer fra andre servere.

Jeg siger ikke at det er komplet umuligt, men tror det ville en utrolig kompliceret løsning.
Avatar billede besoft Nybegynder
28. august 2004 - 01:24 #3
Fejlen er:

Warning: Failed opening 'http://mit.domain.dk/GetData.php?Account=1234' for inclusion (include_path='.:/usr/share/pear') in /var/www/html/domain.dk/includetest.php on line 18

Det siger jo ikke meget.

Det handler om at jeg skal lave nogle opslag i MySQL på server 2, men selve sitet ligger på server 1. Jeg havde egentlig håbet på, blot at kunne lave en include af de nødvendige filer med tilhørende query string.

Men hvis der findes en anden måde er jeg bestemt åben for ideer.
Avatar billede leif Seniormester
28. august 2004 - 01:39 #4
Kan du ikke logge på MySQL serveren fra server1 ?
Avatar billede besoft Nybegynder
28. august 2004 - 01:41 #5
Det ville jeg hellere end gerne.... ved bare ikke hvordan. Er det på samme måde som en local, bare med host=mit.domain.dk ?
Avatar billede kourinsu Nybegynder
28. august 2004 - 01:52 #6
Ikke alle steder har en MySQL database med remote access, men nogle har. Ved fx at starthotel.dk har, men 1go.dk ikke har. Prøv at kigge i faqen fra din host, der plejer det at stå...
Avatar billede besoft Nybegynder
28. august 2004 - 01:56 #7
Jeg ejer selv begge maskiner, så der er desværre ikke en faq :-/
Avatar billede kourinsu Nybegynder
28. august 2004 - 02:01 #8
Okay, så burde det vel være et opsætningsopgave, hvilket jeg ikke har så meget erfaring med. Dog ved jeg det er mulig at lave udtræk fra en MySQL database på en anden server, hvis den er sat op til det (har selv gjort det), men tvivler stærkt på at man kan inkludere filer derfra.
Avatar billede jakoba Nybegynder
28. august 2004 - 02:14 #9
Der er kun opsætning ivejen for at lave include fra en anden server.
Dog skal du være opmærksom på at den inkluderede fil bliver php-fortolket på den anden server så den skal have php installeret (og derfor er det heller ikke et sikkerhedshul, det du includerer er output og ikke kode)

på den server hvor et script siger include("http://...") skal allow-url-fopen være sat sand i php.ini filen.
se: http://dk.php.net/manual/en/ref.filesystem.php#ini.allow-url-fopen
bemærk at gamle php-versioner måske ikke understøtter det på window-baserede servere.

mvh JakobA
Avatar billede besoft Nybegynder
28. august 2004 - 02:23 #10
Begge servere er Linux, har PHP 4.1.2 og MySQL installeret og virker egentlig som de skal.

I php.ini på server 1 er:
allow_url_fopen = On
Jeg læser alle steder at den skal være "1". Er det her hunden ligger begravet?
Når jeg kigger med phpinfo(), sider den:
allow_url_fopen -- no value
Det er da ikke helt korrekt så vidt jeg kan se.

I php.ini på server 2 er:
allow_url_fopen = 1
Så her er det i hvert fald rigtigt nok.
Avatar billede besoft Nybegynder
28. august 2004 - 02:28 #11
Har lige lavet en lille test...

Fra server 1 includer jeg en fil fra server 2 -- virker ikke

Fra server 2 includer jeg en fil fra server 1 -- virker fint

Vil det sige, at allow_url_fopen skal sættes til "1" på den server der kalder en fil, eller den der kaldes? Logisk set bør det være den der kaldes, men det tyder da på det skal være den der kalder.
Avatar billede jakoba Nybegynder
28. august 2004 - 02:41 #12
det skal være på den server der kalder.
på den der kaldes er det jo det der sker hver eneste gang en browser beder om en fil.

men værdien skal nok ændres fra On til 1, da php åbenbart ikke genkender On som en værdi.
Avatar billede besoft Nybegynder
28. august 2004 - 02:45 #13
Det var faktisk 'Off' på server 1 og '1' på server 2. En lille skrivefejl fra mig.

Nu har jeg for god ordens skyld sat begge til '1' og det virker bare perfekt. Det er nu også en bedre løsning (sikkerhedsmæssigt) end at lave en remote connection til MySQL'en.

Tusind tak for hjælpen allesammen.

Læg et svar jakoba, så skal du få lidt point.
Avatar billede jakoba Nybegynder
28. august 2004 - 02:51 #14
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester