docker 搭建nginx和php过程中的曲折

一、首先先搭建docker

  1、把yum更新到最新:yum update

  2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的:yum install -y yum-utils device-mapper-persistent-data lvm2

  3、设置yum源,我这里用的是阿里的仓库:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  4、安装docker :yum install docker-ce

  5、启动docker :systemctl start docke

  6、把docker设置为开机自启动:systemctl enable docker   (到了这里docker已经安装完成)

二、docker 安装php容器

  1、国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。我这里用的是阿里云的镜像加速:阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了

进去后可以根据不同系统选择不同方案,具体里面有教程。

  2、安装php(我这里安装的php7.3 ):docker pull php:7.3.0-fpm

三、docker安装nginx

  1、docker pull nginx

四、nginx+php部署

  1、新增目录:mkdir ~/nginx/www  ~/nginx/conf  ~/nginx/log

  2、启动php:docker run --name php7 -v ~/nginx/www:/www --privileged=true -d php:7.3.0-fpm

  备注:--name php7 将启动的容器命名为php7     -v ~/nginx/www:/www   把本机~/nginx/www的目录映射为php容器内/www目录 访问文件时就可以会去~/nginx/www目录中找  

  3、在~/nginx/conf文件夹下新增文件default.conf编辑新增内容

server {
    listen      80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.php index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

  4、启动nginx:docker run --name php-nginx -p 81:80 -v ~/nginx/conf:/etc/nginx/conf.d -v ~/nginx/www:/usr/share/nginx/html --privileged=true --link php7:php -d nginx

   备注:--name php-nginx 将启动的容器命名为php-nginx     ~/nginx/conf:/etc/nginx/conf.d   把本机~/nginx/conf的目录映射为nginx容器内/etc/nginx/conf.d目录 启动nignx事就会把  ~/nginx/conf下面的配置文件替换成/etc/nginx/conf.d目录下的配置文件启动

--link php7:php 这里是把nginx和php容器连接起来使得两个容器可以相互通信

     巨坑:你会发现不管是启动nginx还是php我都带了--privileged=true这个,让它有权限访问,开始这是nginx添加了然后访问php的时候一直报错文件不存在,反复查找是不是配置文件的问题,后来试着去www目录下然后就报没有权限才发现是权限问题

开始以为是其它的问题然后弄了贼久,巨坑.......

posted @ 2020-12-17 16:50  yunhenX  阅读(443)  评论(0编辑  收藏  举报