Avatar billede michael_c Nybegynder
26. februar 2007 - 18:48 Der er 9 kommentarer

addressering af serverdrev i php

Hej Jeg har et problem, som jeg stort set snart har forsøgt mig med i hele IT-afdelingen på min arbejdsplads, men ingen har indtil videre kunnet finde løsningen på det.

Det drejer sig om det "program" som hedder phpemailer. I dette program er der blandt andet mulighed for at attache en fil til mailen. Når jeg adresserer det lokalt på webserveren har jeg ingen problemer, men når jeg henviser til et drev på serveren, enten ved hjælp af // eller et mappet drev alla h:/, attacher den simpelt hen ikke filen.

Det er den lokale system konto som kører webserveren som en service, men vi har ikke kunnet ændre denne til en bruger vi kontrollerer, og som vi så kan tildele rettigheder. Det skal sige at everyone har læse og execute rettigheder på den pågældende server, men vi er lidt i tvivl om hvorvidt dette betyder at systembrugeren har disse rettigheder.

Er der nogle der har et bud på, hvordan jeg løser dette problem, altså enten at ændre kontoen, eller få php til at kunne adressere drevene
Avatar billede jakobdo Ekspert
26. februar 2007 - 22:03 #1
Der må jo næsten være tale om rettigheder.

I et af phpmailer's eksempler, bruger de:

$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name

Så hvis serveren har adgang til h: burde det jo også kunne adresseres den vej.

Kan du se noget log i noget access_log eller error_log når filen forsøges afviklet?
Avatar billede michael_c Nybegynder
27. februar 2007 - 12:37 #2
den skriver følgende fejlmeddelse
Language string failed to load: file_access\\Grafik10\pdf-kopi\H864381.pdf, hvilket efter min mening peger på et rettighedsproblem, problemet er bare at vi ikke kan ændre brugeren på servicen der kører websereren fra system kontoen, som jo formentlig ikke kan tilgå andre drev. Men jeg kan vel ikke være den første i verdenshistorien der har behov for at adressere et drev uden for webserveren
Avatar billede jakobdo Ekspert
27. februar 2007 - 13:10 #3
I stedet for at arbejde med phpmailer.
Så prøv evt. at start helt simpelt med: fopen();

Når den kan åbne filen, så har du de rigtige rettigheder.

<?php
$handle = fopen("h:\\dir\\fil.ext", "r");
if($handle === FALSE)
{
echo "Failed to open";
}
else
{
echo "Opened the file";
}
?>
Avatar billede michael_c Nybegynder
27. februar 2007 - 21:43 #4
Den gav ikke overraskende "failed to open". Det som imidlertid er problemet er at få givet den lokale systembruger som kører webseren rettigheder til drevet, eller at ændre system-kontoen til en given bruger. Men det virker som om man ikke kan skifte kontoen der afvikler webservice, idet den hele tiden giver acces denied. Det viker derfor som en catch 22
Avatar billede jakobdo Ekspert
27. februar 2007 - 21:53 #5
Jeg antager du kører med en IIS 6 på en windows, er det korrekt?
Eller er her tale om en apache server?
Avatar billede michael_c Nybegynder
01. marts 2007 - 20:21 #6
Hej Jakobdo
Du har fuldstændigt ret. Det er IIs på en 2003 server.
Avatar billede jakobdo Ekspert
01. marts 2007 - 20:31 #7
Kan du ikke i IIS sætte rettigheder til hvilke dreve den skal have adgang til?
Altså ikke som brugeren, men mere i selve IIS'en.
Avatar billede jakobdo Ekspert
01. marts 2007 - 20:56 #8
Lige en ting, er H: et mapped netværksdrev?
Eller en lokal disk?
Avatar billede michael_c Nybegynder
04. marts 2007 - 15:40 #9
Det er et mappet netværksdrev - jeg er ret sikker på, at der ikke ville være nogle problemer hvis det var et ekstra drev
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