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();

 

?>

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