Dag allemaal,

Ik heb de meest simpele vraag die jullie misschien ooit al zagen..

Ik heb twee directory's op een gedeelde server.
Wat ik zie is dat de eerste directory deze is:

/home/mijnsite/domains/mijnsite.be/public_html/upload/

Hierin heb ik een PHP script dat bestanden in een directory (1 niveau hoger) kijkt of er bestanden in staan.
/home/mijnsite/domains/mijnsite.be/public_html/upload/oorsprong

Nu wil ik als eerste dat, als het php script loopt, dat die de bestanden in de map "oorsprong" gaat kopieren naar een andere map op de server. Namelijk:

/home/mijnsite/domains/mijnsite.be/public_html/bserie/

Ten tweede zou dan die oorsprong directory leeggemaakt moeten worden...

Ik heb met de copy(), move(), move_uploaded_file aan het proberen geweest, maar krijg altijd foutmeldingen dat een bepaalde directory niet bestaat (afhankelijk welke functie ik gebruik).
Om gek van te worden.

Wat ik lees is dat ik de functies niet "recursive" mag gebruiken.
Ik begrijp het niet.

Normaal zouden de veiligheidsparameters op de server juist moeten staan om dit kopieren toe te staan.
Wat doe ik fout?

In het tweede geval zou ik graag in die map "oorsprong" willen kijken of een bestand met een vaste naam (laat ons zeggen: doelbestand.pdf") staat, en enkel dat kopieren. Al de rest in die map zou gewist moeten worden..

Iemand een idee hoe ik hier aan begin?
Ok, en hoe kan ik mij daar van verzekeren (zowel in de oorsprong als de doel dir?)
Je kan dat toch wijzigen.
Of je kan alle dirs door Apache laten maken.
Ik heb als test het bestand in de doel dir hernoemd.

Nu wil ik het bestand in de oorsprong dir daar kopieren.. Dat bestand is van Apache.
Maar hoe kan ik die nu laten kopieren (ik zie even door het bos de bomen niet meer)...

Het bestand in de oorsprong dir heeft dus de juiste UID GID...

Even terloops al circa 10000 keer je bedanken voor je hulp!!
Als het bestand niet in de nieuwe dir bestaat en je doet de copy krijg je dan ook een error?
- SanThe - op 20/10/2016 01:38:38

Als het bestand niet in de nieuwe dir bestaat en je doet de copy krijg je dan ook een error?


Ja
Verander die dir eens naar het UID van Apache.
- SanThe - op 20/10/2016 01:42:14

Verander die dir eens naar het UID van Apache.


Lijkt in DirectAdmin niet zo simpel, ik zoek hoe dat kan..
In DirectAdmin kan je alleen de boel wijzigen naar de username als UID, niet terug naar Apache voor zover ik weet. Dit vergt een ingreep die je via SSH uit moet voeren met chown
- Ariën - op 21/10/2016 00:06:00

In DirectAdmin kan je alleen de boel wijzigen naar de username als UID, niet terug naar Apache voor zover ik weet. Dit vergt een ingreep die je via SSH uit moet voeren met chown



Is blijkbaar na het bovenstaande wel noodzakelijk?

//$source = "/usr/local/bin/php /home/domains/mijnsite.be/public_html/upload/oorsprong/.";
//$dest = "/usr/local/bin/php /home/mijnsite/domains/mijnsite.be/public_html/bploeg/.";

$source = "/home/mijnsite/domains/mijnsite.be/public_html/upload/oorsprong/";
$dest = "/home/mijnsite/domains/mijnsite.be/public_html/bploeg";

copy($source, $dest);


Het lijkt alsof je het opgegeven pad in een willekeurige subdirectory (..../home/... )laat beginnen. Gebruik het hele pad, met zonder spaties erin :-) Of een relatief pad: vanuit bploeg: ../upload/oorsprong/

if (is_file('index.php')) print '<br/>Computer says YES! Geen pad.';
if (!is_file('/htdocs/pulib/index.php')) print '<br/>Computer says: gebruik het hele pad of een relatief pad';
if (is_file('/xampp/htdocs/pulib/index.php')) print '<br/>Computer says YES! Met het volledige pad moet het werken.';


Reageren