原标题: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;
}
}
责任编辑: