この記事では主に、PHP 開発環境を作成するときに Docker で発生する権限の問題の解決策を紹介します。これには一定の参考値があり、必要に応じて詳細を学ぶことができます。
最近、会社の開発環境とテスト環境を docker 上で実行しています。開発とテストは基本的にコードをインストールしてこのアドレスにプルし、次にディレクトリをインストールしてミラー ディレクトリにマウントするためです。 : 私は 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 を使用してキャッシュ ファイルとディレクトリを生成します。ユーザーは www-data です。前の解決策は、2 つのユーザーが一致していれば問題ありませんでした。したがって、すべて www-data である www-data ユーザーをローカルに作成しました。権限。実行時にホストによって生成された権限を見てみましょう。
はすべて 33 です。33 はどのユーザーですか? ? ? ? , docker
で権限を確認すると、マウントされている権限が 1000 で、php で生成された権限が www-data
になっていることがわかり、Web ページ
実は、この問題は長い間私を悩ませてきました。私の一般的な解決策は、ランタイムに 777 のアクセス許可を直接与えることです。ただし、それが新しく生成された php ページの場合は、与えられたアクセス許可を実行する必要があります。毎回、本当に不満を感じています。最終的に http://stackoverflow.com/ で解決策を見つけました。公式の解決策は
FROM php:5.6-fpm RUN usermod -u 1000 www-data
RUN usermod -u 1000 www-data && usermod -G staff www-data
このようにして、php によって生成されたキャッシュによって生成されたアクセス許可は一貫したものになります
#問題は次のように解決されます
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
#
以上がPHP開発環境を作成するときにDockerで発生した権限の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。