centos7.3下docker安装nginx + php

备注:接上一篇 centos 下搭建docker    https://www.cnblogs.com/victorcode/p/15206199.html , 本次介绍docker安装nginx+php  

1.首先安装nginx   

  # docker pull nginx (默认安装nginx最版)也可以使用 docker pull nginx版本号  

2.创建一个名为nginx的容器并运行  (宿主机端口8081映射到dokcer的80端口)

  # docker run --name nginx -d -p 8081:80  

  备注:  

    -d 后台运行
    -p 设置端口映射 宿主机端口:容器端口
    --name 设置容器别名
    --restart=always 设置容器开机启动
    -v 数据卷映射 宿主机目录:容器目录。这样方便我们管理容器配置文件及日志文件

此时去访问 你的主机ip:端口号 会出现 nginx 欢迎页 则表示nginx安装成功  .

    docker start nginx      启动nginx  

    docker restart nginx   重启nginx

    docker stop nginx    停止nginx  

 

    docker中nginx的默认安装目录 :

    1. nginx.conf    /etc/nginx/nginx.conf

    2.    log              /var/log/nginx

    3.    html            /usr/share/nginx/html

    4.    conf.d        /etc/nginx/conf.d   (default.conf)

      也可执行命令:

        # docker exec -it nginx /bin/bash     进入nginx容器去查看相关默认目录信息 

3.开始安装php 

  # docker pull php:7.2-fpm  此处安装的是php的7.2版本 

  首先需要在宿主机创建docker目录以及docker下的www目录 (这个可以随意建(记住目录地址),存放宿主机映射目录,下面提到)

  # cd / 

  # ls 

  # mkdir docker  

  # cd docker  

  # ls

  # mkdir www

  创建一个名为php 的容器并且运行  

  # docker run --name php -v /docker/www:/www --privileged=true -d php:7.2-fpm

    -d 后台运行
    -p 设置端口映射 宿主机端口:容器端口
    --name 设置容器别名

    -v 数据卷映射 宿主机目录:容器目录。这样方便我们管理容器配置文件及日志文件

    上面命令中/docker/www 为宿主机目录    /www 则为dokcer下对应目录   

  此时执行命令 dokker ps  

  # docker ps  

  会出现正在运行的容器   nginx  php  

  

centos7.3下docker安装nginx + php

 

 

现在配置 nginx加载php , 切换到 宿主机 /docker目录 下  创建nginx相关配置目录进行和docker下的nginx进行映射 

# cd /docker 

# mkdir nginx 

# cd nginx 

# ls 

# mkdir {conf,conf.d,html,log} 

# ls  

# conf  conf.d html log  

现在将docker下nginx的配置文件复制宿主机对应目录下 

# docker cp nginx:/etc/nginx/nginx.conf              /docker/nginx/conf/         

# docker cp nginx:/var/log/nginx/*                       /docker/nginx/log/

# docker cp nginx:/usr/share/nginx/html/*            /docker/nginx/html 

# docker cp nginx:/etc/nginx/conf.d/default.conf   /docker/nginx/conf.d/

修改nginx默认配置文件以支持php解析  

# cd /docker/nginx/conf/conf.d

# vim  default.conf

配置如下 

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

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /www;       此处修改  /www 为docker下目录  和上面的映射对应 
index main.html;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {
root /www;
fastcgi_pass php:9000;     此处修改为 php的容器名  
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;   // 此处修改
include fastcgi_params;
}

# deny access to .htaccess files, if Apache‘s document root
# concurs with nginx‘s one
#
#location ~ /\.ht {
# deny all;
#}

# :wq  保存退出

#首先需要停止刚刚运行的nginx  并且删除  

# docker ps          查看正在运行的容器并且在这记住nginx的容器id  

# docker stop nginx  

# docker rm ngixn的容器id

以上删除nginx容器是了重新启动并且加载php运行  

docker run -p 8081:80 --name nginx -v /docker/www:/www -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d -v /docker/nginx/log:/var/log/nginx --link php:php --privileged=true -d nginx

注意:以上运行的 /docker/www 和上面php映射目录需一致,不然配置好访问php文件会会出现 file not found 提示  .

然后在/docker/www 下创建test.php 文件会同步到 docker /www下  , 访问 http://ip:端口号/test.php 文件 出现信息 则表示 nginx已解析php .

 

至此docker下安装nginx 并且nginx加载php 完成 .

 

个人实操记录  仅供参考,如有不同见解,欢迎留言 . 

 

 

     

      

 

centos7.3下docker安装nginx + php

上一篇:Json如何新增/删除键值对


下一篇:html分页,无限下拉