Izin apa yang harus saya berikan / var dan / media?

21

Saya mengerti bahwa Magento mengatakan memiliki / var dan / media di 700 untuk folder dan 600 untuk file tetapi ketika saya melakukan ini, itu merusak bagian-bagian tertentu dari situs saya. Saya ingin tahu izin apa yang digunakan kebanyakan orang untuk folder ini.

Egregory
sumber
Dimana Anda membaca itu? dengan 700?
FlorinelChis

Jawaban:

18

Saya belum melihat banyak yang menyebutkan menggunakan 700 dan 600 tetapi umumnya saran yang bagus. Sayangnya setiap pengaturan server berbeda dan perlu ditimbang terhadap kenyamanan (akses pengguna untuk memperbarui / mengedit file).

Pendekatan yang mendasarinya seharusnya hanya memberikan sesedikit mungkin dan menguncinya sebanyak yang Anda bisa (700/600 baik untuk ini). Dalam hal itu, saran "resmi" pada wiki ingin berlaku pada sebanyak mungkin keadaan dan menyarankan izin baca untuk semua orang (yang berarti setiap layanan lain yang dikompromikan pada server kemudian akan dapat membaca aplikasi / etc / local. xml dengan konfigurasi db Anda).

Dalam kasus Anda, saat ini sepertinya file tersebut dimiliki oleh pengguna yang berbeda dari apa yang dijalankan oleh proses server web / php Anda. Mengubah kepemilikan file ke server web harus menyelesaikan masalah awal Anda.

Harap dicatat bahwa menggunakan 700/600 dan menetapkan file ke server web berarti pengguna normal Anda tidak akan dapat mengedit file.

Di bawah ini saya merasa adalah kompromi yang baik untuk kenyamanan vs mengunci. Semua file dimiliki oleh pengguna: webservergroup

var dan media 770/660
Server dan pengguna Anda diizinkan untuk membaca dan menulis dari folder var dan media (sesi / cache / gambar).

sisanya 750/640
Pengguna Anda dapat mengedit / memperbarui kode.
Server web dapat membaca file untuk dieksekusi / ditampilkan.

Kristof di Fooman
sumber
2
Hampir dua tahun kemudian dan saya sekarang setuju dengan ini lebih dari jawaban saya sendiri.
philwinkle
Saya menyadari bahwa saya tidak pernah memberikan respons terhadap hal ini dan masalah yang saya alami adalah bahwa file tidak dimiliki oleh server web. Saya juga meminta untuk menjernihkan izin untuk mendapatkan lebih dari praktik standar karena saya membaca hal-hal yang berbeda.
Egregory
18

Secara umum semua file harus 644dan semua folder harus 755dan harus dimiliki oleh pengguna yang dijalankan oleh server web Anda . Yang magedapat dieksekusi harus diberikan 550izin untuk memungkinkan eksekusi.

Script shell ini akan memperbaiki keadaan jika dijalankan dari root Mage Anda:

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

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

Philwinkle
sumber
5

Sementara solusi Phil baik saya menggunakan pendekatan yang sedikit berbeda. Selain membuat "php / webserver user" pemilik file saya membuat grup tambahan. Biasanya disebut dev . Dan saya menambahkan "pengguna php" dan saya dan pengembang lain ke grup dev itu . Kemudian saya melakukan chgrp sehingga semua file di subtree proyek Magento memiliki grup dev . Saya menambahkan bit ke folder yang memastikan subfolder yang baru dibuat mendapatkan izin yang sama.

Saya telah membuat intisari publik dengan skrip fix_permissions.sh saya. Jangan ragu untuk menggunakannya :) Ini membantu Anda untuk menjaga seluruh subtree proyek Magento Anda dengan izin yang baik.

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

Pertanyaan awal - var dan media harus memiliki izin sehingga "pengguna php" dapat membaca dan menulis ke folder ini. Itu harus dapat menulis cache, file sesi dll di bawah var dan itu harus mampu menulis cache gambar produk dan gambar di bawah media. Jadi lakukan seperti saran Phil: chown atau chgrp ini ke "pengguna php" dan beri izin rw ke "pengguna php".

Saya pikir lebih tepat untuk merujuk ke "pengguna php" dalam konteks FPM (CGI). Pengguna server web bisa berbeda dengan yang menjalankan PHP.

Sven
sumber
3
Anda benar benar sehubungan dengan terminologi mengenai pengguna webserver vs pengguna php. Poin yang bagus. Namun, kita harus bertanya-tanya apakah seseorang yang bertanya bagaimana mengubah izin akan tahu apakah mereka menjalankan PHP FPM atau tidak ...
philwinkle
1

/ var - magento digunakan untuk menulis cache, data sesi dll.

/ media - magento digunakan untuk memperbarui gambar produk, kategori gambar (semua jenis gambar).

Jadi dua folder ini Anda harus menggunakan izin baca + tulis. File lain Anda harus menggunakan izin baca + eksekusi.

Sohel Rana
sumber
1

Izin file adalah 644. Jalankan kode di bawah ini di direktori root menggunakan ssh. temukan.

-type f -exec chmod 644 {} \;

Izin folder adalah 755. Jalankan kode di bawah ini di direktori root menggunakan ssh. temukan.

-type d -exec chmod 755 {} \;

Izin folder Var adalah 777. Jalankan kode di bawah ini di direktori root menggunakan ssh.

chmod -R 777 var

Izin folder statis adalah 777. Jalankan kode di bawah ini di direktori root menggunakan ssh.

chmod -R 777 pub/static

Izin folder media adalah 777. Jalankan kode di bawah ini di direktori root menggunakan ssh.

chmod -R 777 pub/media
Abhinav Singh
sumber
2
Di atas bukan itu yang diminta OP, ini untuk Magento 2.x bukan untuk Magento 1.7
Frank Groot
0

Dari sini: http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html

find . -type f -exec chmod 400 {} \;
find . -type d -exec chmod 500 {} \; 
find var/ -type f -exec chmod 600 {} \; 
find media/ -type f -exec chmod 600 {} \;
find var/ -type d -exec chmod 700 {} \; 
find media/ -type d -exec chmod 700 {} \;
chmod 700 includes
chmod 600 includes/config.php
Ledian Hymetllari
sumber