DockerでPHP+Apache環境を作る
はじめに
環境
Windows 10 21H2 (19044.1348)
Docker Desktop
Docker Desktop
手順
1. 準備
2. Dockerイメージ取得
3. とりあえず実行
4. コンテナに接続しPHP.iniをホストへコピー
5. コンテナを停止・削除し、パラメータを付加してコンテナを起動
パラメータ:
6. 動作確認
7. PHP.iniの編集
ホストにApacheとPHP.iniのフォルダを作成しておく
・D:\userdata\apache
・D:\userdata\php
・D:\userdata\apache
・D:\userdata\php
2. Dockerイメージ取得
PHPバージョンは8.1とした
1 | docker pull php:8.1-apache |
3. とりあえず実行
1 | docker run --name php -d php:8.1-apache |
4. コンテナに接続しPHP.iniをホストへコピー
PHP.iniは /usr/local/etc/php/ に入っている。これをD:\userdata\php\ へコピー
1 | docker cp php: /usr/local/etc/php/ d:\userdata\ |
5. コンテナを停止・削除し、パラメータを付加してコンテナを起動
1 2 3 | docker stop php docker rm php docker run --name php -d -p 8080:80 - v d: /userdata/php : /usr/local/etc/php - v d: /userdata/apache : /var/www/html --network docker_nw php:8.1-apache |
--name … コンテナ名をphpとする
-d … バックグラウンドで実行
-p … Apacheのポート80をホストの8080へマッピング
-v …
-d … バックグラウンドで実行
-p … Apacheのポート80をホストの8080へマッピング
-v …
コンテナのPHP設定フォルダ/usr/local/etc/php/をホストのd:\userdata\php\ へマッピング
コンテナのHTMLフォルダ/var/www/html/をホストのd:\userdata\apache\ へマッピング
-network …コンテナのHTMLフォルダ/var/www/html/をホストのd:\userdata\apache\ へマッピング
過去記事:Docker:MySQLを動かす で作ったMySQLコンテナと通信したいので、この時作成したDockerネットワーク "docker_nw" を指定
6. 動作確認
D:\userdata\apache\phpinfo.phpを新規作成
中身に ">?php phpinfo()" を記述
ブラウザで localhost:8080/phpinfo.php を開いてみる
phpinfoの画面が表示されれば成功
中身に ">?php phpinfo()" を記述
ブラウザで localhost:8080/phpinfo.php を開いてみる
phpinfoの画面が表示されれば成功
7. PHP.iniの編集
PHP.iniを作成し、とりあえずTimezoneがUTCとなっているので"Asia/Tokyo"に変更し、反映されることを確認
D:\userdata\php\php.ini-developmentをPHP.iniとしてコピーし編集
date.timezone の設定を検索、設定はコメントアウトされているのでコメントを除去し設定に"Asia/Tokyo"と指定する。
コンテナを再起動
ブラウザでphpinfo.phpを表示しtimezoneが"Asia/Tokyo"となったことを確認する。
D:\userdata\php\php.ini-developmentをPHP.iniとしてコピーし編集
date.timezone の設定を検索、設定はコメントアウトされているのでコメントを除去し設定に"Asia/Tokyo"と指定する。
1 2 3 4 | [Date] ; Defines the default timezone used by the date functions ; https: //php .net /date .timezone date .timezone = "Asia/Tokyo" |
1 | docker restart php |
Docker, PHP
0 件のコメント:
コメントを投稿