LoginSignup
6
4

More than 1 year has passed since last update.

M1 MacでPHP開発環境をDockerで構築する

Last updated at Posted at 2021-04-26

M1チップ搭載のMacを使ってPHP開発環境をDockerで構築してみたいと思います。

やりたいこと
・ CentOS7のイメージからコンテナ作成
・ Apache + PHPのWeb環境
・ Macのローカルフォルダと、Dockerコンテナのフォルダ共有
・ SSL通信ができること(httpsでアクセスできる)

Docker インストール

まずは「Docker Desktop for Mac」をインストールします。

こちらのページの「Mac with Apple Chip」からダウンロードできます。
https://docs.docker.com/docker-for-mac/install/

Rosetta 2も必要になるので、手順を参考にしてインストールしてください。

MacとDockerの共有フォルダ作成

Macのターミナルを起動して、Dockerコンテナと共有するフォルダを作ります。ACCOUNT_NAMEはご自身のMacアカウントと置き換えてください。

# Mac
mkdir /Users/ACCOUNT_NAME/webroot

Docker コンテナ作成

CeontOS 7のイメージからコンテナを作成します。ACCOUNT_NAMEはご自身のMacアカウントと置き換えてください。

# Mac
docker run --privileged -it -p 80:80 -p 443:443 -v "/Users/ACCOUNT_NAME/webroot:/var/www/html" --name webserver centos:centos7 /sbin/init

起動の途中で下のエラーが出ますが、起動には影響ないので無視します。

[ TIME ] Timed out waiting for device dev-ttyAMA0.device.
[DEPEND] Dependency failed for Serial Getty on ttyAMA0.

CentOS 時刻設定

「Docker Desktop for Mac」からコンテナのCLIボタンを押して、CentOSのコンソールを立ち上げます。
スクリーンショット 2021-04-26 9.40.29.png

時刻を設定します。

# CentOS
timedatectl set-timezone Asia/Tokyo

Apache インストール

Apacheをインストールします。

# CentOS
yum install -y httpd

Apacheを起動します。

# CentOS
systemctl start httpd

Macのブラウザからアクセスして、Apacheの画面が表示されればOKです。
http://localhost/

スクリーンショット 2021-04-26 9.44.07.png

PHP インストール

PHPをインストールします。標準では5.4のバージョンがインストールされるので、必要であれば他のバージョンをインストールします。

# CentOS
yum install -y php

インストール後はApacheを再起動します。

# CentOS
systemctl restart httpd

Macで作った共有フォルダにPHPの動作確認用ファイルを作成します。ACCOUNT_NAMEはご自身のMacアカウントと置き換えてください。

# Mac
vi /Users/ACCOUNT_NAME/webroot/info.php

下記の内容を入力して保存します。

<?php
phpinfo();
?>

PHPの動作確認用ファイルにアクセスします。
http://localhost/info.php

PHPの設定が表示されればOKです。

スクリーンショット 2021-04-26 9.45.13.png

SSL設定

httpsでアクセスできるようにcertbotをインストールします。インストールするだけで自己署名証明書が設定されます。

# CentOS
yum install -y epel-release
yum install -y certbot
yum install -y certbot-apache

インストール後はApacheを再起動します。

# CentOS
systemctl restart httpd

MacのSafariからhttpsでアクセスします。Chromeではキーチェーンの設定をしないとページが見れないので、Safariからアクセスします。
https://localhost/

警告が表示されますので「このWebサイトを閲覧」から証明書を許可します。
ページが表示されればOKです。

スクリーンショット 2021-04-26 9.48.38.png

補足

コンテナ起動時にApacheを自動起動する

# CentOS
systemctl enable httpd

Apacheの設定ファイルの場所

# CentOS
vi /etc/httpd/conf/httpd.conf

PHPの設定ファイルの場所

# CentOS
vi /etc/php.ini

最後に

最小限ですがPHPの開発環境を構築できました。あとはDBをインストールなど色々とカスタマイズしていきたいと思います。

6
4
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4