在M1 Mac上使用Docker构建PHP开发环境

我想使用搭载了M1芯片的Mac来使用Docker构建PHP开发环境。

想要做的事情
– 从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

在启动过程中会出现以下错误,但对启动没有影响,所以请忽略它。

【时间】等待设备dev-ttyAMA0.device超时。
【依赖】依赖关系失败:ttyAMA0上的串行Getty。

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页面即可,不需要其他操作。
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的设置显示出来,那就没问题了。

スクリーンショット 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/

请点击“浏览此网站”以允许证书,并且页面显示出来即可。

スクリーンショット 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的开发环境。接下来,我们希望能够安装数据库并进行各种自定义设置。

广告
将在 10 秒后关闭
bannerAds