PHP7 +nginx Docker 部署

devtools/2024/9/23 11:18:20/

一、php docker

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

FROM php:7.3.7-fpmRUN mkdir -p /php/myphp

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

#!/bin/bash
rm -rf myphp
unzip myphp.zip
cp .env.pro  ./myphp
cp .env  ./myphpdocker 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:latestchmod -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文件如下

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

2、php nginx配置如下 myphp.conf

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

#!/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

 


http://www.ppmy.cn/devtools/15818.html

相关文章

(51单片机)第十一章-串行口应用提高

11.1 方式0应用 在第6章中,已经对51单片机的串行口结构做过详细介绍,并且通过实例讲解了串行口的4种工作方式中方式1的具体用法,本节详细讲述串行口方式0的用法。 串行口方式0被称为同步移位寄存器的输入/输出方式,主要用于扩展并…

IOS恢复

1、实验目的 通过本实验可以掌握: copy方式恢复IOS的步骤。TFTPDNLD方式恢复IOS的步骤。Xmodem方式恢复IOS的步骤。 2、实验拓扑 路由器IOS恢复的实验拓扑如下图所示。 3、实验步骤 如果工作中不慎误删除路由器IOS,或者升级了错误版本的IOS&#xff…

深入探讨虚拟现实中的新型安全威胁:“盗梦攻击”及其防御策略

随着虚拟现实(VR)技术的飞速发展,用户体验达到了前所未有的沉浸水平,但也暴露在一系列新的安全威胁之下。本文着重介绍了近期出现的一种高度隐秘且影响深远的攻击手段——“盗梦攻击”。这一概念由芝加哥大学的研究人员提出&#…

Java23种设计模式-结构型模式之桥接模式

桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。 通常以下角色: 角色1.抽象类(Abstraction):定义抽象接口。 角色2.扩展抽象类(Refin…

Kubernetes 的未来:通过生成式 AI 实现的潜在改进

Kubernetes 是一个用于自动化部署、扩展和管理容器化应用程序的开源平台,它彻底改变了 IT 行业。然而,与所有创新技术一样,它不断寻求改进以提高效率、可用性和功能。生成式人工智能(Generative AI)是一个有望取得改进…

开发与产品的战争之自动播放视频

开发与产品的战争之自动播放视频 起因 产品提了个需求,对于网站上的宣传视频,进入页面就自动播放。但是基于我对chromium内核的一些浅薄了解,我当时就给拒绝了: “浏览器不允许”。(后续我们浏览器默认都是chromium内核的&#…

PyQt介绍——单行文本输入框QLineEdit

PyQt介绍——单行文本输入框QLineEdit QLineEdit是单行文本输入框,允许用户输入和编辑单行纯文本 常用方法: 文本设置,获取和删除 方法描述setText(str)设置内容文本insert(newText)在光标处插入文本text()获取真实内容文本(用户输入的内容…

【Springboot系列】Spring Boot中Reactor模型的应用详解

程序员如何搞副业? 文章目录 程序员如何搞副业?强烈推荐引言基本概念原理优势常见的调度器核心接口 Spring WebFlux核心部分特点: 案例引入依赖代码请求响应 总结强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站…