2014-10-24 9 views
6

avevo usato la sovversione per tornare il mio progetto PHP OpenCart, ma ho avuto un problema di autorizzazione (esempio riportato di seguito:come risolvere un problema di autorizzazione Linux per OpenCart

Attenzione: imagejpeg(): Impossibile aprire ' /var/www/html/opencart/image/cache/data/pavblog/img-blog-620x300w.jpg 'per scrivere: Autorizzazione negata in /var/www/html/opencart/system/library/image.php sulla riga 45

Avviso: imagejpeg(): impossibile aprire '/var/www/html/opencart/image/cache/data/pavblog/img-blog-250x250w.jpg' per la scrittura: Autorizzazione negata in/var/www/html/opencart/system/library/image.php on line 45

Attenzione: imagejpeg(): impossibile aprire ...

ho eseguito il seguito i comandi per aggiungere autorizzazioni per queste cartelle, ma sto ancora ricevendo i messaggi di avviso sul mio sito.

sudo chmod 777 /var/www/html/opencart 
cd /var/www/html/opencart 
sudo chmod 777 image/ 
sudo chmod 777 image/cache/ 
sudo chmod 777 image/data/ 
sudo chmod 777 system/cache/ 
sudo chmod 777 system/logs/ 
sudo chmod 777 download/ 
sudo chmod 777 config.php 
sudo chmod 777 admin/config.php 

Come posso risolvere questo?

+0

Se fai 'ls -al' in una delle cartelle , chi viene mostrato come proprietario del file: root, www-data, apache o qualcun altro? –

+0

il proprietario è root per tutte le cartelle e i file. –

+0

OK ... questo è quasi certamente il vero problema. Ho intenzione di fare riferimento a http://unix.stackexchange.com/a/30888/47521, dal momento che sarà meglio descrivere i permessi file appropriati –

risposta

2

È necessario applicare le autorizzazioni in modo ricorsivo. Prova

sudo chmod -R 777 image/cache/

+0

Hai un buon punto sull'uso della ricorsione, ma sono _really_ leery sulla concessione dell'autorizzazione eseguibile a chiunque. –

+2

D'accordo, 777 non dovrebbe mai essere usato secondo me, solo seguendo il tuo esempio. Prova prima 644, poi 755 se non funziona. (difficile dire quello che ti serve senza conoscere la tua configurazione completa) – rjdown

6

Per fissare le autorizzazioni, è necessario fare due passi diversi:

  1. Concedere l'autorizzazione per l'entità adeguata. Dato che sei in/var/www/html, suppongo che l'utente corretto sia "apache".

    # Grants permissions to apache 
    sudo chown apache:apache -R /var/www/html/opencart 
    
    # If that doesn't work, perhaps try www-data 
    sudo chown www-data:www-data -R /var/www/html/opencart 
    
  2. impostare i permessi di file e cartelle in modo appropriato (può essere pericoloso per i file di avere i permessi di esecuzione)

    # Sets directory permissions to 755 (rwxr-xr-x) 
    sudo find /var/www/html/opencart -type d -exec chmod 755 {} \; 
    
    # Sets file permissions to 644 (rw-r--r--) 
    sudo find /var/www/html/opencart -type f -exec chmod 644 {} \; 
    
+0

grazie, ho perso l'uso di -R! –

+1

Trova l'utente apache: '$ user = getenv ('APACHE_RUN_USER');' http://stackoverflow.com/a/17415081/560287 –

Problemi correlati