在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时间设定
设置时间。
# CentOS
timedatectl set-timezone Asia/Tokyo
安装Apache
我将安装Apache。
# CentOS
yum install -y httpd
我要启动Apache。
# CentOS
systemctl start httpd
只要能从Mac的浏览器中访问,并显示Apache页面即可,不需要其他操作。
http://localhost/
安装 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的设置显示出来,那就没问题了。
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/
请点击“浏览此网站”以允许证书,并且页面显示出来即可。
填補
完成
補充
在容器启动时自动启动Apache
# CentOS
systemctl enable httpd
Apache的配置文件的位置是什么?
# CentOS
vi /etc/httpd/conf/httpd.conf
PHP的配置文件放在哪里?
# CentOS
vi /etc/php.ini
最终
虽然规模较小,但我们成功搭建了PHP的开发环境。接下来,我们希望能够安装数据库并进行各种自定义设置。