2010-09-03 6 views
6

PHP crea file con apache: proprietà di apache che sembra causare problemi con altri script php che accedono al file.Come posso consentire a php di creare file con la stessa proprietà dei file che li hanno creati?

Come posso consentire a php di creare file con la stessa proprietà dei file che li hanno creati?

Ho letto altrove che l'attivazione di safe_mode può influire su questo problema, ma l'ho spento e ho ricaricato nuovamente i file e ho ancora lo stesso problema.

Sono sicuro che questa sarà una semplice domanda per qualcuno che abbia più familiarità con Apache ma non ho trovato la soluzione cercando in giro.

Grazie

+0

che ambiente stai usando? Windows o Linux? –

+0

Suppongo che stia parlando di Linux. – fabrik

risposta

2

Se le questioni di proprietà e più utenti/progetti sono sullo stesso server, si potrebbe voler esaminare suEXEC in Apache: i file PHP saranno poi eseguite dall'utente indicato nelle impostazioni , quindi la proprietà predefinita dei file viene automaticamente presa in considerazione. Risparmia un sacco di chown/chmoding e i processi eseguiti dall'utente sono più facilmente limitati.

In caso contrario, io di solito creare un gruppo con sia il proprietario & apache, e impostare l'umask di default 007.

0

Se si utilizza un sistema operativo di Windows è possibile avviare Apache come servizio e consentire ad Apache di utilizzare le autorizzazioni del tuo account proprio quando si inizia.

+0

Non lo sto eseguendo localmente, lo sto eseguendo su un server rackspace quindi linux – DonutReply

+0

in quel caso non so come – Thariama

0

Perché passare attraverso tutti i problemi programmatici per cambiare il proprietario? apache.apache è comunque un proprietario molto insicuro. Perché non solo chmod 0777 il file che fornisce leggere, scrivere ed eseguire a tutti i proprietari. Questo eliminerà il problema.

Se si verificano ancora problemi, potrebbe essere necessario controllare se open_basedir è attivo. Se questo è il caso, non è la proprietà o le autorizzazioni dei file, ma la posizione. Questo in pratica significa che devi inserire il file in una posizione che Apache/PHP abbia già incluso nel loro percorso.

+2

Erm, lamentandosi di un insicuro 'apache' e quindi sostenendo 0777 è una combinazione piuttosto bizzarra. – Wrikken

+0

Quello che sto dicendo è che se Apache ha bisogno di accedere ai file, impostandoli su 0777 non farà molta differenza. È tutto. –

0

A.M. menzionato chown() sopra, per favore sappiate che generalmente chown() può essere usato solo da root e il vostro account in esecuzione sul server web è altamente improbabile che sia root, è una pessima idea.

È possibile impostare sudo per consentire chown da altri utenti in aree specifiche e solo a utenti specifici. Basta creare una voce adatta in/etc/sudoers, solitamente usando il programma visudo. Se non hai accesso root da te, allora il tuo provider di hosting dovrà farlo per te, se lo faranno.

Per maggiori informazioni: http://www.sudo.ws/sudo/sudo.html

Problemi correlati