Visualizzazione dei risultati da 1 a 7 su 7

Discussione: PHP ftp() function

  1. #1

    PHP ftp() function

    Salve ragazzi, ho un problema: non riesco a chmoddare delle cartelle che creo con php man mano che i file aumentano (in maniera automatica), all'interno di un'altra cartella con chmod 777, nello specifico da ftp mi vien fuori: 550 permission denied (per altro il proprietario di queste sottocartelle risulta apache). Ho un dominio con hosting linux (non so se posso indicare il fornitore). Ho aperto un ticket e mi hanno risposto che devo utilizzare le funzioni ftp() di php, altrimenti incorrerò sempre nello stesso problema, ma mi chiedo, se già non riesco a chmoddare direttamente via ftp, come può funzionare con tale funzione?
    Specifico che creando una cartella con mkdir, pur assegnando chmod 777, gli viene poi data 755.
    Secondo voi devo fare veramente così?
    Tra l'altro, provando ad utilizzare tale funzione, mi vien fuori:
    php_network_getaddresses: getaddrinfo failed: Name or service not known

    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    a occhio e croce il problema è che gli oggetti (file/cartelle) vengono creati "via web" (probabilmente da qualche script php) e poi tu cerchi di modificarli via ftp... tieni conto che normalmente le azioni via web come indicato sono eseguite con un determinato utente (nel tuo caso "apache") DIVERSO da quello FTP. Se quindi a monte quando crei questi oggetti via web non imposti i permessi corretti altri utenti (compreso quello ftp) non potranno fare modifiche, quindi devi:

    - a monte impostare permessi più ampi
    - operare sempre allo stesso modo (o via ftp o via web)

    ...probabilmente il suggerimento intendeva di operare via web ma usando le funzioni "ftp" in modo che l'utente proprietario sia sempre quello

  3. #3
    Dunque operando via web, seppur con ftp(), l'utente è apache?
    In questo caso ok, sai darmi una bozza di script che vada a chmoddare una cartella?
    Comunque grazie mille, sempre preparato

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sì... l'utente è quello ftp... prova un po' con:

    Codice PHP:
    $file '...file/cartella da "chmodare"...';
    $conn_id ftp_connect('...server...');
    $login_result ftp_login($conn_id'...username...''...password...');
    $res ftp_chmod($conn_id0644$file);
    ftp_close($conn_id); 
    $res vale TRUE in caso di successo e FALSE altrimenti...

    note:
    - il server potrebbe essere semplicemente "localhost" se è configurato così, altrimenti usa l'IP o il nome
    - il percorso del file dipende dalla home dell'utente... fai delle prove

  5. #5
    Grazie mille, ma ricevo questo messaggio:
    Operation not permitted in /var/www/[...]/httpdocs/ftp.php on line 5
    Si evince quindi che l'utente non è apache purtroppo, giusto?
    Facendo lo stesso test su una cartella situata direttamente in httpdocs, l'operazione riesce senza problemi, il problema nasce con le subdir!
    L'unico rimedio è riaprire un ticket?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    magari non hai i permessi corretti impostati nella cartella dentro cui accedi... io verificherei meglio questo, perchè mi pare di capire che sulla "root" non hai problemi, invece...

  7. #7
    Ok, ho risolto. Ora mi si pone un altro problema: come chmoddo anche i file creati all'interno delle cartelle? ftp_chmod($conn_id, 0777, $dirftp); mi setta la cartella come 777, ma come setto a tale chmod anche i file contenuti dal momento che me li setta a 644?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.