docker化php開発環境の構築
4017 ワード
php-docker-env
初めてdockerに触れるphp開発者を助け、docker化されたphp開発環境を迅速に構築します.
含まれるコンポーネント mysql : 5.7.18 php : 7.1.7 xdebug : 2.5.5 apache : 2.4.10
ミラーソースについて
mysqlとphp-apacheはいずれも網易蜂の巣を使ってDockerHubから引き寄せた公式ミラー網易蜂の巣を閲覧するには にログインする必要がある場合があります.
クイックスタート
dockerがインストールされていることを確認してください Macインストールdocker Windowsインストールdocker 他のユーザ dockerクイックエントリー ミラーをプル
mysqlミラーを取得するには、次のコマンドを実行します.
php-apacheミラーを取得するには、次のコマンドを実行します.
独自のミラーを作成
以上,docker runコマンドを用いて2つのベースミラーを取得した.しかし、開発環境では、PHPにxdebugプラグインをインストールしてデバッグを容易にし、phpとapacheを構成する必要があります.php-apacheというミラーに基づいてミラーをカスタマイズします../docker/Dockerfileでは、dockerがこのミラーをどのように構築するかが定義されています.必要なのは
Webserverというミラーを構築できます.(ミラーの構築に時間がかかる場合があります)
コンテナの作成(ミラーの実行)
mysqlの起動
mysqlを最初に起動するには、次のコマンドを実行します.
コマンドの詳細:この命令はhubに基づいている.c.163.com/library/mysql:5.7.18ミラーはmydbというコンテナを作成して実行します. このディレクトリの下のmysqlディレクトリを./mydbコンテナの/var/lib/mysqlディレクトリは、mydb実行時に生成されたデータが保存されます. ホストの3306ポートをmydbコンテナの3306ポートにマッピングします. mysqlのrootユーザーパスワードをrootに設定します.後で./mysql/ディレクトリmysqlミラーを実行すると-e MYSQL_を持たないROOT_PASWORD=rootパラメータです.直接実行可能:
php-apacheの起動
つまり、Webserverミラーを構築します.
コマンドの詳細:このコマンドは、カスタマイズしたwebserverミラーに基づいてmyserverというコンテナを作成し、実行します. このディレクトリの下にある./srcディレクトリはmyserverコンテナの/var/www/htmlディレクトリにマウントされ、phpプロジェクトコードは./srcディレクトリでいいです. ホストの8080ポートをmyserverコンテナの80ポートにマッピングします. -e XDEBUG_CONFIG="remote_host=192.168.1.1102"このパラメータのipアドレスをあなたのホストのipアドレスに変更してください.xdebugプラグインのremote_が設定されていますhost.
これでphp開発環境の起動に成功しました
プロジェクト開発を行う
phpプロジェクトコードを./src/ディレクトリ、コードを編集するとmyserverコンテナのリアルタイム応答が得られます.ここではThinkPHP 5フレームワークを例に、ブラウザ入力http://localhost:8080/pulbic/ThinkPHP 5フレームのウェルカムページにアクセスできます.
プロファイル
ファイルの場所 apacheプライマリプロファイルはホストにあります./docker/conf/apache2.confは容器の/etc/apache 2/apache 2に対応する.conf xdebugプロファイルはホストにあります./docker/conf/docker-php-ext-xdebug.iniは容器の/usr/local/etc/php/conf.d/docker-php-ext-xdebugに対応する.ini phpプライマリプロファイルは./docker/conf/php.iniは容器の/usr/local/etc/php/phpに対応する.ini 仮想ドメイン名プロファイルを./docker/vhost/コンテナに対応する/etc/apache 2/sites-enabled/ 有効な構成
コンフィギュレーションファイルはdockerコンテナの作成時にコンテナにパッケージされるため、動的に変更できません.構成を変更した後、現在実行中のコンテナを停止して削除し、コンテナを再作成する必要があります.
コンテナとのインタラクション以上のコマンドは、ホスト内でコンテナに特定のコマンドを実行させることができる. -iフラグを追加すると、ホスト対コンテナの入力を維持できます. −tフラグを追加すると、コンテナに偽端末を開くことができる. より多くの使用方法コマンドdocker exec--help を実行してください.
mysqlと対話することができます
このコマンドは端末を開き、mysql rootユーザーパスワードを入力するとmysqlに接続できます.
端末を終了できます.
コンテナに入ってより多くのコマンドを実行
以上のコマンドはmyserverコンテナに入り、ls、cd、psなどのコンテナ内でより多くのコマンドを実行できます.
詳細はdockerクイックスタートを参照してください
お互いに勉強して交流してQQをプラスすることができます:568499182
勉強が楽しい!
初めてdockerに触れるphp開発者を助け、docker化されたphp開発環境を迅速に構築します.
含まれるコンポーネント
ミラーソースについて
mysqlとphp-apacheはいずれも網易蜂の巣を使ってDockerHubから引き寄せた公式ミラー
クイックスタート
dockerがインストールされていることを確認してください
mysqlミラーを取得するには、次のコマンドを実行します.
docker pull hub.c.163.com/library/mysql:5.7.18
php-apacheミラーを取得するには、次のコマンドを実行します.
docker pull hub.c.163.com/library/php:7.1.7-apache
独自のミラーを作成
以上,docker runコマンドを用いて2つのベースミラーを取得した.しかし、開発環境では、PHPにxdebugプラグインをインストールしてデバッグを容易にし、phpとapacheを構成する必要があります.php-apacheというミラーに基づいてミラーをカスタマイズします../docker/Dockerfileでは、dockerがこのミラーをどのように構築するかが定義されています.必要なのは
docker build -t webserver ./docker/
Webserverというミラーを構築できます.(ミラーの構築に時間がかかる場合があります)
コンテナの作成(ミラーの実行)
mysqlの起動
mysqlを最初に起動するには、次のコマンドを実行します.
docker run --name mydb -v "$PWD"/mysql:/var/lib/mysql -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=root hub.c.163.com/library/mysql:5.7.18
コマンドの詳細:
docker run --name mydb -v "$PWD"/mysql:/var/lib/mysql -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=root hub.c.163.com/library/mysql:5.7.18
php-apacheの起動
つまり、Webserverミラーを構築します.
docker run --name myserver -v "$PWD"/src:/var/www/html -p 8080:80 -e XDEBUG_CONFIG="remote_host=192.168.1.102" -d webserver
コマンドの詳細:
これでphp開発環境の起動に成功しました
プロジェクト開発を行う
phpプロジェクトコードを./src/ディレクトリ、コードを編集するとmyserverコンテナのリアルタイム応答が得られます.ここではThinkPHP 5フレームワークを例に、ブラウザ入力http://localhost:8080/pulbic/ThinkPHP 5フレームのウェルカムページにアクセスできます.
プロファイル
ファイルの場所
コンフィギュレーションファイルはdockerコンテナの作成時にコンテナにパッケージされるため、動的に変更できません.構成を変更した後、現在実行中のコンテナを停止して削除し、コンテナを再作成する必要があります.
docker stop myserver
docker rm myserver
docker build -t webserver ./docker/
docker run --name myserver -v "$PWD"/src:/var/www/html -p 8080:80 -e XDEBUG_CONFIG="remote_host=192.168.1.102" -d webserver
コンテナとのインタラクション
docker exec [ ] [ ]
mysqlと対話することができます
docker exec -it mydb mysql -h 127.0.0.1 -u root -p
このコマンドは端末を開き、mysql rootユーザーパスワードを入力するとmysqlに接続できます.
exit
端末を終了できます.
コンテナに入ってより多くのコマンドを実行
docker exec -it myserver /bin/bash
以上のコマンドはmyserverコンテナに入り、ls、cd、psなどのコンテナ内でより多くのコマンドを実行できます.
詳細はdockerクイックスタートを参照してください
お互いに勉強して交流してQQをプラスすることができます:568499182
勉強が楽しい!