/ Var ve / medya için hangi izinleri vermeliyim?


Yanıtlar:


18

700 ve 600 kullanmanın pek fazla sözünü görmedim, ancak bu genellikle iyi bir tavsiyedir. Maalesef, ayarlanan her sunucu farklıdır ve rahatlığa karşı tartılması gerekir (dosyaları güncellemek / düzenlemek için kullanıcı erişimi).

Temel yaklaşım, olabildiğince az vermek ve mümkün olduğu kadar kilitlemektir (700/600 bunun için iyidir). Bu bakımdan, wiki hakkındaki "resmi" tavsiye mümkün olduğu kadar çok koşullara başvurmak istemektedir ve herkes için okuma izinleri önermektedir (bu, sunucudaki herhangi bir tehlikeye atılmış diğer hizmetin daha sonra örneğin app / etc / local komutunu okuyabileceği anlamına gelir. db yapılandırmanızla birlikte xml).

Sizin durumunuzda şu anda dosyalar, web sunucusu / php işleminizin altında çalıştığından farklı bir kullanıcıya aittir. Dosyaların sahipliğini web sunucusuna değiştirmek, orijinal sorununuzu çözmelidir.

Lütfen, 700/600 kullanmanın ve dosyaları web sunucusuna atamanın normal kullanıcınızın dosyaları düzenleyemeyeceği anlamına geldiğini unutmayın.

Aşağıda hissediyorum rahatlık vs kilitlemek için iyi bir uzlaşmadır. Tüm dosyalar kullanıcıya aittir: web sunucusu grubu

var ve medya 770/660
Sunucu ve kullanıcı, var ve medya klasörlerinden (oturum / önbellek / görüntüler) okuyabilir ve yazabilir.

geri kalan 750/640
Kullanıcınız kodu düzenleyebilir / güncelleyebilir.
Web sunucusu yürütme / görüntüleme için dosyaları okuyabilir.


2
Neredeyse iki yıl sonra ve şimdi buna cevabımdan daha fazla katılıyorum.
philwinkle

Buna hiçbir zaman bir cevap vermediğimi farkettim ve yaşadığım sorun da dosyaların web sunucusuna ait olmamasıydı. Ayrıca farklı şeyler okurken standart bir uygulama yapma izinlerini silmeyi istiyordum.
Egregory

18

Genel olarak tüm dosyalar olmalı 644ve tüm klasörleri olmalı 755ve web sunucu altında çalışan kullanıcının sahip olmalıdır . mageYürütülebilir verilmelidir 550yürütülmesine izin vermek için izinleri.

Bu kabuk betiği, Mage kökünüzden çalıştırıldığında bazı şeyleri düzeltmelidir:

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

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


5

Phil'in çözümü iyi olsa da, biraz farklı bir yaklaşım kullanıyorum. Dosyaların "php / webserver user" sahibi olmasının yanı sıra ek grup oluşturdum. Genellikle buna dev denir . Ve ben bu gruba dev "php user" ve kendim ve diğer geliştiriciler ekliyorum . Sonra chgrp yapıyorum böylece Magento proje alt ağacındaki tüm dosyalar dev dev'ine sahip olacak . Yeni oluşturulan alt klasörlerin aynı izinleri almasını sağlayan klasörlere + s bitini ekliyorum .

Fix_permissions.sh betiğim ile ortak bir fikir oluşturdum. Kullanmaktan çekinmeyin :) Tüm Magento projenizi inceleyen iyi izinlerle saklamanıza yardımcı olur.

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

Asıl soru var ve medya, "php user" in bu klasörleri okuyabilmesi ve yazabilmesi için gerekli izinlere sahip olmalıdır. Önbellek, oturum dosyaları var altında vb yazabilmeli ve ürün görüntü önbelleğini ve görüntüleri ortam altında yazabilmelidir. Phil'in önerdiği gibi yapın: Bunları "php kullanıcısı" ndan doğrayın veya chgrp yapın ve "php kullanıcısına" rw izin verin.

FPM (CGI) bağlamında "php kullanıcısına" başvurmanın daha doğru olduğunu düşünüyorum. Web sunucusu kullanıcısı PHP çalıştırandan farklı olabilir.


3
Web sunucusu kullanıcısı ve php kullanıcısı ile ilgili terminoloji konusunda kesinlikle haklısınız. Harika nokta. Buna rağmen, izinlerin nasıl değiştirileceğini soran bir kişinin PHP FPM kullanıp kullanmadıklarını bilip bilmediğini merak etmesi gerekir ...
philwinkle

1

/ var - magento önbellek, oturum vb. verileri yazmak için kullanılır.

/ media - magento ürün görüntüsünü, kategori görüntüsünü (herhangi bir tür görüntü) yükseltmek için kullanın.

Bu yüzden bu iki klasörün okuma + yazma iznini kullanmanız gerekir. Okumak + yürütme izni kullanmak için diğer dosya.


1

Dosya izni 644'tür. Ssh kullanarak kök dizinde aşağıdaki kodu çalıştırın. Bul

-type f -exec chmod 644 {} \;

Klasör izni 755'tir. Ssh kullanarak kök dizindeki kodu çalıştırın. Bul

-type d -exec chmod 755 {} \;

Var klasör izni 777'dir. Ssh kullanarak kök dizinde aşağıdaki kodu çalıştırın.

chmod -R 777 var

Statik klasör izni 777'dir. Ssh kullanarak kök dizinde aşağıdaki kodu çalıştırın.

chmod -R 777 pub/static

Medya klasörü izni 777'dir. Ssh kullanarak kök dizindeki kodu çalıştırın.

chmod -R 777 pub/media

2
OP'nin sorduğu şey yukarıda değil, bu Magento 2.x için Magento 1.7 için değil
Frank Groot

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.