docker 安装php,nginx搭建php环境

docker pull nginx:1.17.2

docker run -it -d --name mynginx -p 8080:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf(这个镜像内的路径的nginx.conf不能写错了) -v /home/nginx/www:/home/nginx/www(只需要映射存在的路径即可,起码在本地操作方便) --privileged --net=host(网络映射模式) nginx:1.17.2

把nginx的配置文件和web路径与本地映射一下,方便修改配置和存放项目。

本地nginx.conf

 

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;

        # Vue路由模式为history需添加的配置
        location / {
        
            root   /home/nginx/www;
            index  index.html;
        }

        # 获取真实IP以及Websocket需添加的配置
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # 客户端Body大小限制(文件上传大小限制配置)
        client_max_body_size 5m;

        error_page   500 502 503 504 404  /50x.html;
        location = /50x.html {
            root   html;
        }
		#php环境安装完毕之后开启这段配置
		#location ~ \.php$ {
		#	fastcgi_pass   172.18.0.2:9000;
		#	fastcgi_index  index.php;
		#	fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
		#	include        fastcgi_params;
		#}

    }
	
}

 

进入nginx容器命令:

docker exec -it mynginx /bin/bash

PHP安装:

docker pull php:7.1.30-fpm

docker run --name  myphp7 -v /home/nginx/www:/www  -d php:7.1.30-fpm

-v /home/nginx/www:/www 这个映射是为了配置nginx的时候方便,后面用得到

docker inspect --format='{{.NetworkSettings.IPAddress}}' dockerphp-fpm

查找php镜像的ip地址
nginx 配置:

location ~ \.php$ {
            fastcgi_pass   172.18.0.2(这个ip要使用 docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp7 查一下):9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
            include        fastcgi_params;
        }
配置完毕:

docker restart mynginx

在/home/nginx/www下面放个Index.php

<?php

 

phpinfo();

 

?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章