docker 部署PHP+ nginx环境
首先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; } }
访问80端口如下: