/ var 및 / media에 어떤 권한을 부여해야합니까?


21

magento는 폴더 가 700 이고 파일이 600 일 때 / var/ media 가 있다고 말하지만 내 사이트의 특정 부분을 손상시킵니다. 대부분의 사람들이이 폴더에 어떤 권한을 사용하는지 궁금합니다.


어디서 읽었 어? 700으로?
FlorinelChis

답변:


18

700과 600을 사용하는 것에 대한 언급은 많지 않지만 일반적으로 좋은 조언입니다. 불행히도 모든 서버 설정은 다르며 편의성 (파일 업데이트 / 편집에 대한 사용자 액세스)과 비교하여 계량해야합니다.

기본 접근 방식은 가능한 한 적은 양만 포기하고 가능한 한 많이 잠그는 것입니다 (700/600이 좋습니다). 이와 관련하여 위키에 대한 "공식적인"조언은 가능한 한 많은 환경에 적용되기를 원하고 모든 사람에게 읽기 권한을 제안합니다 (즉, 서버에서 손상된 다른 서비스는 app / etc / local을 읽을 수 있음을 의미합니다). db 구성을 사용하는 xml).

귀하의 경우 현재 웹 서버 / PHP 프로세스가 실행되는 것과 다른 사용자가 파일을 소유하고있는 것처럼 들립니다. 파일 소유권을 웹 서버로 변경하면 원래 문제가 해결됩니다.

700/600을 사용하고 파일을 웹 서버에 할당한다는 것은 일반 사용자가 파일을 편집 할 수 없음을 의미합니다.

아래 느낌은 편의 대 잠금에 대한 좋은 타협입니다. 모든 파일은 user : webservergroup이 소유합니다.

var and media 770 / 660
서버와 사용자는 var 및 media 폴더 (세션 / 캐시 / 이미지)를 읽고 쓸 수 있습니다.

나머지 750 / 640
사용자는 코드를 편집 / 업데이트 할 수 있습니다.
웹 서버는 실행 / 표시 할 파일을 읽을 수 있습니다.


2
거의 2 년 후 나는 지금 내 자신의 대답보다 이것에 동의합니다.
philwinkle

나는 이것에 대한 응답을 결코 제공하지 않았다는 것을 깨달았고 내가 겪고있는 문제는 웹 서버가 파일을 소유하지 않았다는 것입니다. 또한 다른 것을 읽을 때 표준 연습을 더 많이 할 수 있도록 권한을 정리하도록 요청했습니다.
Egregory

18

일반적으로 모든 파일이 있어야 644하고 모든 폴더는 웹 서버가 실행되는 사용자가 소유755 하고 있어야합니다 . mage실행 파일 에는 실행 550을 허용 할 권한 이 부여되어야합니다 .

이 셸 스크립트는 마법사 루트에서 실행되는 경우 패치해야합니다.

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

출처 : http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions


5

Phil의 솔루션은 훌륭하지만 조금 다른 접근법을 사용합니다. "php / webserver user"파일 소유자를 만드는 것 외에도 추가 그룹을 만듭니다. 일반적으로 dev 라고 합니다. 그리고 나는 "php user"와 나 자신과 다른 개발자들을 그 그룹 dev에 추가 합니다. 그런 다음 Magento 프로젝트 하위 트리의 모든 파일이 dev 그룹을 갖도록 chgrp를 수행 합니다. 폴더 에 + s 비트 를 추가 하여 새로 만든 하위 폴더가 동일한 권한을 갖도록합니다.

내 fix_permissions.sh 스크립트를 사용하여 공개 요점을 만들었습니다. 자유롭게 사용하십시오 :) 전체 Magento 프로젝트 하위 트리를 좋은 권한으로 유지하는 데 도움이됩니다.

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

원래 질문-var 및 media에는 ​​"php user"가 이러한 폴더를 읽고 쓸 수있는 권한이 있어야합니다. var에서 캐시, 세션 파일 등을 쓸 수 있어야하고 미디어에서 제품 이미지 캐시와 이미지를 쓸 수 있어야합니다. Phil이 조언 한대로 "php user"에 chown 또는 chgrp를 설정하고 "php user"에 rw 권한을 부여하십시오.

FPM (CGI)의 맥락에서 "php user"를 참조하는 것이 더 정확하다고 생각합니다. 웹 서버 사용자는 PHP를 실행하는 것과 다를 수 있습니다.


3
웹 서버 사용자와 PHP 사용자에 관한 용어는 절대적으로 정확합니다. 좋은 지적입니다. 그러나, 권한을 변경하는 방법을 묻는 사람이 PHP FPM을 실행하고 있는지 아닌지를 알 수 있을지 궁금합니다.
philwinkle

1

/ var -magento는 캐시, 세션 등의 데이터를 쓰는 데 사용합니다.

/ media -magento는 제품 이미지, 카테고리 이미지 (모든 유형의 이미지)를 업로드하는 데 사용합니다.

따라서이 두 폴더는 읽기 + 쓰기 권한을 사용해야합니다. 다른 파일은 읽기 + 실행 권한을 사용해야합니다.


1

파일 권한은 644입니다. ssh를 사용하여 루트 디렉토리에서 아래 코드를 실행하십시오. 찾기

-type f -exec chmod 644 {} \;

폴더 권한은 755입니다. ssh를 사용하여 루트 디렉토리에서 아래 코드를 실행하십시오. 찾기

-type d -exec chmod 755 {} \;

Var 폴더 권한은 777입니다. ssh를 사용하여 루트 디렉토리에서 아래 코드를 실행하십시오.

chmod -R 777 var

정적 폴더 권한은 777입니다. ssh를 사용하여 루트 디렉토리에서 아래 코드를 실행하십시오.

chmod -R 777 pub/static

미디어 폴더 권한은 777입니다. ssh를 사용하여 루트 디렉토리에서 아래 코드를 실행하십시오.

chmod -R 777 pub/media

2
위는 OP가 요청한 것이 아니며, 이것은 Magento 1.7이 아닌 Magento 2.x를위한 것입니다.
Frank Groot

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.