2013-07-03 31 views
6

Ho 777 su tutti i file sul mio server. PHP 5.4 (no safe_mode)mkdir(): Autorizzazione negata

Il sito funziona su altri server. E 'Yii quadro

mkdir(): Permission denied 

/var/www/html/project/framework/web/CAssetManager.php(225) 

213    return $this->_published[$path]; 
214   elseif(($src=realpath($path))!==false) 
215   { 
216    $dir=$this->generatePath($src,$hashByName); 
217    $dstDir=$this->getBasePath().DIRECTORY_SEPARATOR.$dir; 
218    if(is_file($src)) 
219    { 
220     $fileName=basename($src); 
221     $dstFile=$dstDir.DIRECTORY_SEPARATOR.$fileName; 
222 
223     if(!is_dir($dstDir)) 
224     { 
225      mkdir($dstDir,$this->newDirMode,true); 
226      chmod($dstDir,$this->newDirMode); 
227     } 

Qui ls -l dopo chown, non aiuta

drwsrwsrwx. 2 apache apache 4096 июля 3 16:44 assets 
drwxrwxrwx. 5 apache apache 4096 июня 10 14:52 bootstrap 
drwxrwxrwx. 19 apache apache 4096 июля 3 16:04 framework 
-rwxrwxrwx. 1 apache apache  326 июля 3 16:42 index.php 
drwxrwxrwx. 10 apache apache 4096 июля 3 16:04 protected 
drwxrwxrwx. 3 apache apache 4096 июня 20 13:28 soap 
drwxrwxrwx. 3 apache apache 4096 июля 3 16:04 themes 
+2

È necessario 777 sul dir che si sta tentando di creare una dir in, oppure cambiare il suo proprietario. –

+1

Si dovrebbe anche usare la rappresentazione ottale per le autorizzazioni di file e directory. '0777' invece di' 777'. –

+0

È il framework Yii. Non riesco a modificare questo codice .. Tutti/www/have 777 – awMinor

risposta

1

Controllare SELinux e spegnerlo .. Ora funziona!

+1

Questo non fornisce una risposta alla domanda.Per criticare o chiedere chiarimenti da un autore, lasciare un commento sotto il loro post - è sempre possibile commentare i propri messaggi, e una volta che hai sufficiente [reputazione] (http://stackoverflow.com/help/whats-reputation) sarete in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). –

+1

Si prega di utilizzare il modifica il link sulla tua domanda per aggiungere ulteriori informazioni Il pulsante Post risposta deve essere utilizzato solo per le risposte complete alla domanda: –

4

Assicurarsi che:

  • la directory web è di proprietà dell'utente apache. ("ls -al" ti dirà)
  • anche la directory principale in cui desideri creare è di proprietà dell'utente.
  • la directory genitore non è un monte in cui non si dispone di autorizzazioni di scrittura
  • il percorso che si vuole creare è corretta (var_dump ($ dstDir) vi dirà)
  • $ this-> newDirMode è contiene un valore di autorizzazione corretto. (Se si esegue su Windows Questo sarà ignorato)

Se non c'è nessun problema e che ancora non funziona vorrei fare:

  • farti l'utente apache e cercare di crearlo manualmente ("sudo -u apache" se il tuo nome utente è apache)
  • prova ad omettere il terzo parametro 'true' in "mkdir ($ dstDir, $ this-> newDirMode, true);" e creare tutte le directory uno dopo l'altro
  • ispezionare i log ("/ var/log/apache" è tuo amico)

Spero che questo aiuti.

+0

questo non aiuta il registro – awMinor

+0

non ha nulla – awMinor

+0

Quale utente è definito in /etc/apache2/apache2.conf? (Cerca 'Utente' seguito da 'Gruppo') – cb0

3

SELinux potrebbe essere il problema. Prova a spegnerlo manualmente:

setenforce 0 
1

SELinux era il colpevole per il mio set up. Grazie del promemoria!

+0

Anche le autorizzazioni e la proprietà erano un problema. n: chown -R apache basic/ – pawr

+0

chgrp -R apache basic/ – pawr

+0

chmod 755 permessi per il tuo webroot in modo ricorsivo e ho ottenuto il mio lavoro seguito dal 'setenforce 0' e il sempre utile 'servizio httpd restart' nel caso =) grazie voi tutti per il vostro aiuto su questo. Non vedo l'ora di giocare con Yii 2.0 – pawr

Problemi correlati