美文网首页
CentOS 7.8 64位 Docker + PHP + N

CentOS 7.8 64位 Docker + PHP + N

作者: zhd______ | 来源:发表于2021-05-17 17:38 被阅读0次

1. Docker安装

参考官方推荐的方法安装Docker
https://docs.docker.com/engine/install/centos/#install-using-the-repository

1.1 设置存储库
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

抛出异常

Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/doc ker-ce.repo
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 12] Timeout on https://download.docker.com/linux/centos/docker-ce.repo: (28, 'Operation timed out after 30000 milliseconds with 0 out of 0 bytes received')

换源

 sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.2 安装Docker最新版本
 sudo yum install docker-ce docker-ce-cli containerd.io
1.3 启动Docker
 sudo systemctl start docker
1.4 通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
sudo docker run hello-world
image.png

运行以上信息说明安装成功

如果进行pull失败, 可以换国内源
Docker 官方中国区
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云
https://pee6w651.mirror.aliyuncs.com

修改源

vim /etc/docker/daemon.json

添加以下内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

sudo systemctl daemon-reload
sudo systemctl restart docker

2. PHP安装

php镜像
https://hub.docker.com/_/php?tab=tags&page=1&ordering=last_updated
发行版本说明
https://www.debian.org/releases/
找到稳定版本的php-fpm版进行安装,我这边安装的是php7.4

docker pull php:7.4.19-fpm-buster

3. 安装nginx

nginx镜像
https://hub.docker.com/_/nginx?tab=tags&page=1&ordering=last_updated
同样找到稳定版本进行安装

docker pull nginx:stable-perl

查看已经安装好的镜像

docker image ls
image.png

4. 新建Docker挂载文件夹(根据自己需求存放)

cd /
mkdir docker 
cd docker
mkdir php # php配置等信息
mkdir nginx # nginx配置等信息
mkdir www # 存放网页代码

5. 运行一个PHP测试容器,目的拷贝出默认配置文件

 docker run --name  myphp-fpm  -d bfdbfe3debeb

查看运行中的容器

docker ps
image.png

将php容器内的配置文件拷贝到主机中,这里粗暴的直接将整个文件夹拷贝出来

docker cp d47ae217641f:/usr/local/etc /docker/php

cp命令会将容器etc目录拷贝到/docker/php/etc下,强迫症手动将etc目录里的内容全部移动到php下,然后删除了etc文件夹

image.png

6. 运行一个Nginx测试容器,目的同样拷贝出默认配置文件

docker run --name  mynginx  -d 56e67f61e79c

查看运行中的容器

docker ps
image.png
docker cp a2167091f8a7:/etc/nginx /docker
image.png

7. 删除测试容器

# 停止容器
docker stop d47ae217641f
docker stop a2167091f8a7

# 删除容器
docker rm d47ae217641f
docker rm  a2167091f8a7

8. 创建正式容器

创建php容器
docker run -idt --name myphp-7.4.19-fpm-buster -v /docker/php:/usr/local/etc:ro  -v /docker/www/:/var/www/html/  bfdbfe3debeb 

--name 容器名称
-v 挂载目录
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行容器,并返回容器ID;

创建nginx容器
docker run -idt --name mynginx-stable-perl -p 80:80 -p 443:443 -v /docker/nginx:/etc/nginx:ro -v /docker/log/nginx:/var/log/nginx -v /docker/www/:/usr/share/nginx/html  --link myphp-7.4.19-fpm-buster:php  56e67f61e79c

/docker/www
新建一个html文件


image.png
image.png

浏览器访问,查看是否运行成功


image.png
修改Nginx配置

/docker/nginx/conf.d/default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
  
    location / {
        # nginx访问目录,这里需要注意,目录设置的是nginx容器的目录
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        autoindex  off;
    }
    
    location ~ \.php$ {
        # php:9000 对应之前运行容器时的命令 --link myphp-7.4.19-fpm-buster:php,端口号是php容器的端口
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        # php访问目录,这里需要注意,目录设置的是php容器的目录
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name; 
        include        fastcgi_params;
    }
}
安装php常用扩展

redis扩展
进入php容器

 docker exec -it 9a078e7f3e99 bash

安装常用工具包

apt-get update && apt-get install make cmake gcc g++ bison libncurses5-dev build-essential vim autoconf

如果 apt-get update命令卡可以换成阿里云镜像

sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
apt-get clean
apt-get update

安装redis扩展

pecl install igbinary
pecl install lzf
pecl install zstd
pecl install redis

安装pdo_mysql扩展(自带)

docker-php-ext-install pdo_mysql

添加扩展配置文件
/docker/php/php/conf.d/redis.ini

extension=igbinary.so
extension=lzf.so
extension=zstd.so
extension=redis.so

/docker/php/php/conf.d/pdo_mysql.ini

extension=pdo_mysql

重启php容器

docker restart 9a078e7f3e99

查看phpinfo()

image.png

安装完成!

相关文章

网友评论

      本文标题:CentOS 7.8 64位 Docker + PHP + N

      本文链接:https://www.haomeiwen.com/subject/oltyjltx.html