PHP7 +nginx Docker 部署

一、php docker

1、创建php Docker, Dockerfile文件如下

XML 复制代码
FROM php:7.3.7-fpm

RUN mkdir -p /php/myphp

2、启动脚本start.sh,其中会安装php mysql驱动

XML 复制代码
#!/bin/bash
rm -rf myphp
unzip myphp.zip
cp .env.pro  ./myphp
cp .env  ./myphp

docker rm -f myphp
docker build -t myphp .
docker run -d --network lt-pro-net --name myphp --privileged=true -p 19000:9000 --restart=always  -v /home/docker/myphp/:/php/myphp/ -v /home/docker/myphp/php.ini:/usr/local/etc/php/php.ini  myphp:latest

chmod -R 777  /home/docker/myphp/
#docker-php-ext-install pdo pdo_mysql
docker exec -it myphp  bash -c "docker-php-ext-install pdo pdo_mysql"

docker restart myphp

其中.env文件指定pro环境,.env.pro中为配置

php.ini需要设置mysqlnd

二、php nginx docker

1、创建php nginx 的Docker脚本 Dockerfile文件如下

XML 复制代码
FROM nginx:1.19.0

ENV TZ='Asia/Shanghai'
#one app create one log path
RUN mkdir -p /log/myphp

2、php nginx配置如下 myphp.conf

XML 复制代码
server {
  listen       9001;
  server_name  localhost;
  root   /php/myphp/public;
  access_log  /log/myphp/access-test.log  main;
  error_log   /log/myphp/error-test.log  error;
  client_max_body_size 0;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 16k;
  client_header_timeout 1m;
  client_body_timeout  120s;
  
  location / {
      add_header Access-Control-Allow-Origin * always;
      add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, PUT, DELETE';
      add_header Access-Control-Allow-Headers 'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
      index index.php index.html index.htm;
      try_files $uri $uri/ /index.php?$query_string;
  }
	
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
      root   html;
  }
  location ~ \.php$ {
      fastcgi_pass   myphp:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include        fastcgi_params;
  }
}

3、执行脚本start.sh

XML 复制代码
#!/bin/bash
docker rm -f lt-php-nginx
docker build -t lt-php-nginx .
docker run --name lt-php-nginx --privileged=true --restart=always \
--network lt-pro-net \
-v /home/docker/app/php-nginx/conf.d:/etc/nginx/conf.d \
-p 9001:9001\
-v /home/docker/myphp:/php/myphp \
-v /home/docker/myphp/log:/log/myphp \
--link myphp:myphp \
-d nginx
相关推荐
一丝晨光1 小时前
Java、PHP、ASP、JSP、Kotlin、.NET、Go
java·kotlin·go·php·.net·jsp·asp
大G哥2 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
妍妍的宝贝2 小时前
k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载
nginx·微服务·kubernetes
大道归简3 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器
zeruns8023 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
爱跑步的程序员~3 小时前
Docker
docker·容器
疯狂的大狗4 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器
长天一色4 小时前
【Docker从入门到进阶】01.介绍 & 02.基础使用
运维·docker·容器
伊玛目的门徒4 小时前
docker 搭建minimalist-web-notepad
运维·docker·notepad
叶北辰CHINA5 小时前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡