>  기사  >  백엔드 개발  >  PHP 개발 환경을 만들 때 Docker에서 발생하는 권한 문제를 해결하는 방법

PHP 개발 환경을 만들 때 Docker에서 발생하는 권한 문제를 해결하는 방법

不言
不言원래의
2018-06-09 14:30:403035검색

이 문서에서는 Docker가 PHP 개발 환경을 만들 때 발생하는 권한 문제에 대한 솔루션을 주로 소개합니다. 필요한 경우 자세한 내용을 알아볼 수 있습니다.

최근에는 개발 및 테스트가 기본적으로 코드를 설치하고 이 주소로 가져온 다음 디렉터리를 설치하고 미러 디렉터리에 마운트하기 때문에 회사의 개발 및 테스트 환경을 docker에서 실행했습니다. compose

# development.yml
version: '2'
services:
 php-fpm:
  image: jackluo/php-fpm:5.6.3
  restart: always
  volumes:
   - ./www:/var/www/html
   - ./data:/usr/local/var/log
  extra_hosts:
   - "cache.redis.com:192.168.9.111"
   - "192.168.9.111:192.168.9.111"  
 web:
  image: index.alauda.cn/library/nginx
  restart: always
  links:
   - php-fpm
  volumes:
   - ./config:/etc/nginx/conf.d
   - ./data:/var/log/nginx
  volumes_from:
   - php-fpm
  ports:
   - 80:80
  expose:
   - 80

jackluo/php-fpm:5.6.3 제가 직접 뽑아서 몇 가지 추가한 공식 이미지입니다. 구체적으로 github에 docker-library가 있습니다

현재 회사의 PHP 프레임워크는 thinkphp를 사용합니다. Thinkphp는 캐시 파일과 디렉토리를 생성합니다. PHP 이미지의 공식 실행 사용자는 www-data입니다. 이전 솔루션은 두 사용자가 일치하는 한 충분하므로 로컬에서 만들었습니다.
와 같은 www-data 사용자가 있다면 모두 www-data 권한이 부여됩니다. Runtime
에서 호스트가 생성한 권한을 살펴보겠습니다. 권한은 모두 33입니다. 33은 어떤 종류의 사용자인가요? ? ? ? , docker
에 어떤 권한이 있는지 살펴보니 마운트된 권한이 1000이고, php에서 생성한 권한이 www-data가 되었습니다

그런 다음 웹페이지를 방문했습니다
웹페이지에 쓰기 권한이 없다고 나오네요. 그것은 무엇을 의미합니까?

사실 이 문제로 인해 오랫동안 고민을 했습니다. 제가 일반적으로 해결한 방법은 런타임에 직접 777 권한을 부여하는 것이었습니다. 그런데 새로 생성된 PHP 페이지라면 매번 777에 부여된 권한을 실행해야 하므로, 정말 불편하네요, Wandering, http://stackoverflow.com/ 드디어 해결책을 찾았습니다. php에서 생성된 캐시에 의해 생성되는 문제는 일관됩니다

, 이렇게 문제를 해결하세요

위는 이 글의 전체 내용입니다. 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트를 방문하세요!

위 내용은 PHP 개발 환경을 만들 때 Docker에서 발생하는 권한 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.