Yanki
Posts: 15
Joined: Mon Feb 11, 2019 4:17 pm

Probleem om bestanden te copieëren naar andere map.

Tue Feb 12, 2019 2:02 pm

Ik heb op mijn rpi een webserver draaien.
De webpagina op de server maakt , na invullen van gegevens, een png file in de map /var/www/html/Briefjes gebonden met een datum.
Nu wil ik na het aanmaken van dat bestand deze over kopieeren naar de google drive map op de rpi die als map dit heeft.: /home/pi/Google Drive/Online logboek 2019/

Echter via php lukt mij dit niet en in de command scherm lukt het wel.
Dit is de code die ik heb nu wat niets doet.:

Code: Select all

$savedatum = date('m-d-Y_Hi');
exec("sudo pkill Xvfb");
exec("xvfb-run cutycapt --url=http://192.168.10.188/totalbriefjesv4.php --out=Briefjes/Meetrapport_".$savedatum.".png") ;
exec("cp /var/www/html/Briefjes/Meetrapport_".$savedatum.".png '/home/pi/Google Drive/Online logboek2019/'");

Wie kan mij zeggen waar het fout gaat?

incognitum
Posts: 239
Joined: Tue Oct 30, 2018 3:34 pm

Re: Probleem om bestanden te copieëren naar andere map.

Tue Feb 12, 2019 2:46 pm

Twee opmerkingen:

- Voor functionaliteit als het kopieeren van bestanden heeft PHP eigen functies, en die hebben dan de voorkeur boven het uitvoeren van cp als shell commando.
http://uk3.php.net/manual/en/function.copy.php

- Onder welke gebruikersnaam draait het PHP script? www-data? En heeft deze wel schrijfrechten in de map waarin je probeert een bestand aan te maken, en toegangsrechten tot de bovenliggende mappen?
Controlleer dat met:

Code: Select all

ls -ld /home/pi
ls -ld /home/pi/Google\ Drive
ls -ld /home/pi/Google\ Drive/Online\ logboek2019

Yanki
Posts: 15
Joined: Mon Feb 11, 2019 4:17 pm

Re: Probleem om bestanden te copieëren naar andere map.

Wed Feb 13, 2019 11:28 am

Ik heb even gekeken wat u vroeg naar de mappen.
Dit komt eruit met uw gevraagde commando's.:

Code: Select all

[email protected]:~ $ ls -ld /home/pi
drwxr-xr-x 31 pi pi 4096 feb 11 14:39 /home/pi
[email protected]:~ $ ls -ld /home/pi/Google\ Drive
drwxr-xr-x 3 pi pi 4096 feb 12 14:36 /home/pi/Google Drive
[email protected]:~ $ ls -ld /home/pi/Google\ Drive/Online\ logboek2019
drwxr-xr-x 2 pi pi 20480 feb 13 06:51 /home/pi/Google Drive/Online logboek2019
[email protected]:~ $ 
Waar de server op draait, ga ook ervan uit dat dit pi zal zijn, maar durf dat even niet te zeggen.
Dit heb ik hopelijk met de volgende commado ook geprobeerd te testen:

Code: Select all

ls -ld /var/www
ls -ld /var/www/html
ls -ld /var/www/html/Briefjes
En daar krijg ik dit bij te zien.:

Code: Select all

[email protected]:~ $ ls -ld /var/www
drwxrwxrwx 5 www-data www-data 4096 dec  6 10:51 /var/www
[email protected]:~ $ ls -ld /var/www/html/Briefjes
drwxrwxrwx 2 pi pi 20480 feb 13 07:09 /var/www/html/Briefjes
[email protected]:~ $ ls -ld /var/www/html
drwxrwxrwx 31 www-data www-data 4096 feb 13 12:40 /var/www/html
[email protected]:~ $ 
Om exact te weten waar de fout zit heb ik uw link doorgelezen en heb met de volgende php code getest>:

Code: Select all

$srcfile='/var/www/html/Briefjes/Meetrapporttestpascal.png';
$dstfile='/home/pi/Google Drive/Online logboek2019/Meetrapporttestpascal.png';
if([email protected]($srcfile,$dstfile))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} else {
    echo "File copied from remote!";
}
Daar krijg ik de melding te zien dat ik geen rechten heb.:

Code: Select all

COPY ERROR: 2
copy(/home/pi/Google Drive/Online logboek2019/Meetrapporttestpascal.png): failed to open stream: Permission denied
Dus ga ik ervan uit dat ik die rechten niet heb , ook via php niet.
Hoe moet ik dit nu oplossen?

incognitum
Posts: 239
Joined: Tue Oct 30, 2018 3:34 pm

Re: Probleem om bestanden te copieëren naar andere map.

Wed Feb 13, 2019 3:58 pm

Yanki wrote:
Wed Feb 13, 2019 11:28 am
[email protected]:~ $ ls -ld /home/pi/Google\ Drive/Online\ logboek2019
drwxr-xr-x 2 pi pi 20480 feb 13 06:51 /home/pi/Google Drive/Online logboek2019
Op dit moment mag alleen gebruiker pi naar het mapje schrijven.

Je zou de others schrijfrechten tot de map kunnen geven.

Code: Select all

chmod o+w /home/pi/Google\ Drive/Online\ logboek2019
Of het mapje met de groep www-data kunnen associeren, en dan de groep schijfrechten geven.

Code: Select all

sudo chgrp www-data /home/pi/Google\ Drive/Online\ logboek2019
chmod g+w /home/pi/Google\ Drive/Online\ logboek2019
Er even vanuitgaand dat je de rechten uberhaupt kan aanpassen (niet vanzelfsprekend als de map met FUSE aan Google drive is geknoopt)

Yanki
Posts: 15
Joined: Mon Feb 11, 2019 4:17 pm

Re: Probleem om bestanden te copieëren naar andere map.

Wed Feb 13, 2019 5:49 pm

Oke, dan kom ik morgen hierop terug, wil voor de zekerheid dan even een backup van de sd kaart maken, voor als ik iets fout zou doen.
Zal morgen erop terug komen dan wat er gebeurd.

Ik heb het toch even gedaan wat u vermeld.
Als ik dus een nu een bestaande file kopieer gat het goed met de volgende code.:

Code: Select all

$srcfile='/var/www/html/Briefjes/Meetrapporttestpascal.png';
$dstfile='/home/pi/Google Drive/Online logboek2019/Meetrapporttestpascal.png';
if([email protected]($srcfile,$dstfile))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} else {
    echo "File copied from remote!";
}
echter als ik dan mijn voorbestemde code wil gaan gebruiken zegt hij ook dat het gekopieerd is maar zie hem niet in die map erbij staan.:

Code: Select all

$savedatum = date('m-d-Y_Hi');

$srcfile='/var/www/html/Briefjes/Meetrapport_'.$savedatum.'.png';
$dstfile='/home/pi/Google Drive/Online logboek2019/Meetrapport_'.$savedatum.'.png';
if([email protected]($srcfile,$dstfile))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} else {
    echo "File copied from remote!";
}
Heb ik soms iets fouts gedaan?

[update]
erg vreemd maar doet hij het.
Super bedankt dat u mij heeft geholpen ermee, ben super gelukkig nu, scheelt weer extra tijd met handmatig overzetten nu.

Return to “Nederlands”