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
相关推荐
两个人的幸福18 小时前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
武子康2 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
ping某3 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
BingoGo3 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack3 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982074 天前
PHP 扩展——从入门到理解
php
鹏仔先生4 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
Alsn865 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
云水一下5 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip5 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua