docker 部署PHP+ nginx环境

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

二维码

简介

首先push 两个镜像

docker pull php:7.2.3-fpm
docker pull nginx

然后启动一个php 

docker run --name phpfpm -d -v /root/app:/app php:7.2.3-fpm


说明一下 –name 是容器的名字 phpfpm

-v 是/root/app 是本机的地址

/app 是容器内部的存储位置

然后再启动一个nginx 

docker run --name nginx_server -d -p 80:80 --link phpfpm:phpfpm -v /root/conf/nginx.conf:/etc/nginx/nginx.conf --volumes-from phpfpm  nginx

— link phpfrpm:phpfpm    是容器之间建立关系

–volumes-from  phpfpm   就是把/root/app:/app 也会导入到 容器中/app 目录 

-v  /root/conf/nginx.conf   导入到 /etc/nginx/nginx.conf    宿主机 的nginx.conf 的导入到/etc/nginx/nginx.conf  中 

连接PHP的配置如下:

        location ~ .php$ {
        root          /app;
        fastcgi_pass   phpfpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /app$fastcgi_script_name;
        include        fastcgi_params;
        }

nginx配置文件如下:

user  root root;
worker_processes auto;
error_log  /tmp/nginx_error.log  crit;
pid        /tmp/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;
        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;


server
    {
        listen 80;
        server_name www.bt.cn;
        index index.html index.htm index.php;
        root  /app;

        #error_page   404   /404.html;
        location ~ .php$ {
        root          /app;
        fastcgi_pass   phpfpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /app$fastcgi_script_name;
        include        fastcgi_params;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /tmp/access.log;
    }
}


点赞(40)

手机端

微信扫一扫体验

返回
顶部