Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Berechtigungsproblem, auf das Docker beim Erstellen einer PHP-Entwicklungsumgebung stößt

So lösen Sie das Berechtigungsproblem, auf das Docker beim Erstellen einer PHP-Entwicklungsumgebung stößt

不言
不言Original
2018-06-09 14:30:403033Durchsuche

In diesem Artikel werden hauptsächlich Lösungen für Berechtigungsprobleme vorgestellt, auf die Docker beim Erstellen einer PHP-Entwicklungsumgebung stößt. Er hat einen bestimmten Referenzwert und Sie können bei Bedarf mehr darüber erfahren.

Vor kurzem habe ich die Entwicklungs- und Testumgebung des Unternehmens auf Docker ausgeführt, da beim Entwickeln und Testen grundsätzlich der Code installiert und an diese Adresse gezogen und dann das Verzeichnis installiert und im Spiegelverzeichnis bereitgestellt wird, z : Ich verwende 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

das Obige

jackluo/php-fpm:5.6.3 Das ist mein eigenes Some Das aktuelle PHP-Framework des Unternehmens verwendet thinkphp, um Cache-Dateien und -Verzeichnisse zu generieren Der Benutzer ist www-data. Solange die beiden Benutzer konsistent sind, habe ich lokal einen www-data-Benutzer erstellt, der alle www-data ist . Berechtigungen, werfen wir einen Blick auf die vom Host-Computer oben generierten Berechtigungen.

Alle sind 33, was für ein Benutzer ist 33? ? ? ? Ich habe mir die Berechtigungen in Docker

angesehen und festgestellt, dass die bereitgestellten Berechtigungen 1000 waren und die von PHP generierten Berechtigungen zu WWW-Daten wurden
Dann besuchte ich die Webseite
Auf der Webseite wird angezeigt, dass keine Schreibberechtigung vorliegt. Was bedeutet das?

Eigentlich beschäftigt mich dieses Problem schon seit langem. Meine allgemeine Lösung besteht darin, 777-Berechtigungen direkt auf der Runtime zu erteilen. Wenn es sich jedoch um eine neu generierte PHP-Seite handelt, muss ich die erteilten Berechtigungen ausführen 777 , ich bin wirklich unglücklich, ich habe endlich die Lösung unter http://stackoverflow.com/ gefunden. Die offizielle Lösung ist


FROM php:5.6-fpm
RUN usermod -u 1000 www-data

Wenn Sie sind ein Mac

RUN usermod -u 1000 www-data && usermod -G staff www-data

Auf diese Weise sind die vom PHP generierten Cache konsistent

Das Problem wird dadurch gelöst Weg

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.


Das obige ist der detaillierte Inhalt vonSo lösen Sie das Berechtigungsproblem, auf das Docker beim Erstellen einer PHP-Entwicklungsumgebung stößt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn