이 문서에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!