Quali autorizzazioni dovrei dare / var e / media?


21

Capisco che magento dice di avere / var e / media a 700 per le cartelle e 600 per i file, ma quando lo faccio, si rompe alcune parti del mio sito. Sono curioso di vedere quali autorizzazioni la maggior parte delle persone utilizza per queste cartelle.


dove l'hai letto? con 700?
FlorinelChis,

Risposte:


18

Non ho visto molte menzioni sull'uso di 700 e 600 ma è generalmente un buon consiglio. Sfortunatamente ogni server configurato è diverso e deve essere valutato in base alla convenienza (accesso dell'utente per aggiornare / modificare i file).

L'approccio di base dovrebbe essere quello di dare via il meno possibile e bloccarlo il più possibile (700/600 è buono per questo). A tale proposito, il consiglio "ufficiale" sul wiki vuole applicarsi al maggior numero possibile di circostanze e suggerisce autorizzazioni di lettura per tutti (il che significa che qualsiasi altro servizio compromesso sul server sarà in grado, ad esempio, di leggere app / etc / local. xml con la tua configurazione db).

Nel tuo caso al momento sembra che i file siano di proprietà di un utente diverso rispetto a quello eseguito dal tuo processo web server / php. La modifica della proprietà dei file sul server Web dovrebbe risolvere il problema originale.

Si noti che l'utilizzo di 700/600 e l'assegnazione dei file al server Web significa che l'utente normale non sarebbe in grado di modificare i file.

Quello che segue è un buon compromesso per convenienza rispetto al blocco. Tutti i file sono di proprietà dell'utente: webservergroup

var e media 770/660
Il server e l'utente possono leggere e scrivere dalle cartelle var e media (sessione / cache / immagini).

il resto 750/640
L'utente è in grado di modificare / aggiornare il codice.
Il server web è in grado di leggere i file per l'esecuzione / visualizzazione.


2
Quasi due anni dopo e ora sono d'accordo più di questo sulla mia risposta.
Filwinkle,

Mi sono reso conto di non aver mai fornito una risposta a questo e il problema che stavo riscontrando era che i file non erano di proprietà del server web. Stavo anche chiedendo di chiarire i permessi per ottenere più di una pratica standard mentre leggevo cose diverse.
Egregory,

18

In generale, tutti i file dovrebbero essere 644e tutte le cartelle dovrebbero essere 755e dovrebbero essere di proprietà dell'utente in cui è in esecuzione il server Web . L' mageeseguibile dovrebbe avere le 550autorizzazioni per consentire l'esecuzione.

Questo script di shell dovrebbe correggere le cose se eseguito dalla tua radice Mage:

#!/bin/sh
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage

Fonte: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions


5

Mentre la soluzione di Phil è buona, io uso un approccio un po 'diverso. Oltre a rendere il proprietario dei file "php / webserver user" creo un gruppo aggiuntivo. Di solito si chiama dev . E aggiungo "user php" e io e altri sviluppatori a quel gruppo dev . Poi faccio chgrp in modo che tutti i file di Magento progetto sottostruttura hanno gruppo dev . Aggiungo bit + s alle cartelle per garantire che le sottocartelle appena create ottengano le stesse autorizzazioni.

Ho creato un'essenza pubblica con il mio script fix_permissions.sh. Sentiti libero di usarlo :) Ti aiuta a mantenere l'intero sottostruttura del progetto Magento con buone autorizzazioni.

https://gist.github.com/svenvarkel/8062778#file-fix_permissions-sh

La domanda originale - var e media devono avere tali permessi che "utente php" può leggere e scrivere in queste cartelle. Deve essere in grado di scrivere cache, file di sessione ecc. In var e deve essere in grado di scrivere la cache delle immagini del prodotto e le immagini nel supporto. Quindi fai come Phil consiglia: chown o chgrp questi a "utente php" e dai i permessi rw a "utente php".

Penso che sia più corretto fare riferimento a "utente php" nel contesto di FPM (CGI). L'utente del server web può essere diverso da quello che esegue PHP.


3
Hai assolutamente ragione riguardo alla terminologia relativa all'utente del webserver e dell'utente del php. Ottimo punto Tuttavia, ci si deve chiedere se una persona che chiede come modificare i permessi saprebbe se stavano eseguendo PHP FPM o no ...
philwinkle,

1

/ var - magento usa per scrivere cache, dati di sessione ecc.

/ media - magento usa per aggiornare l'immagine del prodotto, l'immagine della categoria (qualsiasi tipo di immagine).

Quindi queste due cartelle dovresti usare l'autorizzazione read + write. Altro file è necessario utilizzare l'autorizzazione di lettura + esecuzione.


1

L'autorizzazione del file è 644. Eseguire sotto il codice nella directory principale usando ssh. trova .

-type f -exec chmod 644 {} \;

Il permesso della cartella è 755. Esegui sotto il codice nella directory principale usando ssh. trova .

-type d -exec chmod 755 {} \;

L'autorizzazione per la cartella Var è 777. Eseguire sotto il codice nella directory principale usando ssh.

chmod -R 777 var

L'autorizzazione per la cartella statica è 777. Eseguire sotto il codice nella directory principale usando ssh.

chmod -R 777 pub/static

L'autorizzazione per la cartella multimediale è 777. Eseguire sotto il codice nella directory principale usando ssh.

chmod -R 777 pub/media

2
Sopra non è quello che OP ha chiesto, questo è per Magento 2.x non per Magento 1.7
Frank Groot

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.