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.