如何在docker上安装php环境

Table of Contents

1 安装步骤

创建并启动容器

docker run -it -d --name lnmp --restart always -p 8080:80 -v ~/workspace:/usr/local/src/ debian

参数解释

docker run:开始运行一个容器
-it 参数:-i:交互式执行容器。-t:分配虚拟终端。一般搭配使用。
-d 参数:容器以后台运行并输出容器ID。
-–name 参数:给容器分配一个识别符,方便将来的启动,停止,删除等操作。
--restart always: 配置容器启动类型,always 即为 docker 服务重新启动时自动启动本容器
-p 参数:容器的80端口映射到本机的8080 端口。
-v 参数:挂载卷(volume),冒号后面是容器的路径,冒号前面是宿主机的路径。

一些常用命令

docker ps -as
docker images
docker stop $name
docker start $name
docker restart $name
docker rm $name
docker stats --no-stream

2 进入系统之后的安装

执行进入容器

docker exec -it lnmp /bin/bash

常用工具安装

apt-get update && apt-get install -y wget vim curl procps lsb-release apt-transport-https ca-certificates

添加sury php ppa 仓库

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list

安装php

apt-get update & apt-get install -y php7.4

安装php扩展。如果没有指定版本,可以试着将版本去掉,比如redis扩展。

apt-get install php7.4-xxx
apt-get install php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip,curl}

安装php-fpm扩展及nginx

apt-get install nginx php7.4-fpm

启动

/etc/init.d/nginx start
/etc/init.d/php7.4-fpm start

3 nginx 配置的一些注意点

美化URI

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

nginx配置fastcgi_pass可能和php版本不一致,需要去php pool里去查看对应设置。

reference: https://computingforgeeks.com/how-to-install-latest-php-on-debian/