nginx+php-fpm docker镜像合二为一

2023-12-13 23:32

本文主要是介绍nginx+php-fpm docker镜像合二为一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概述

在上一篇文章介绍了nginx+php-fpm,链接如下:

https://www.cnblogs.com/xiao987334176/p/12918413.html

 

nginx和php-fpm是2个独立的镜像,在实际环境部署过程中,发现配置比较麻烦,排错比较耗费实际。

因此,需要将nginx和php-fpm 这2个镜像合并为一个。

 

二、正式操作

目录结构

新建目录/opt/nginx_php,目录结构如下:

./
├── default
├── dockerfile
├── README.md
└── run.sh

 

default

server {listen 80;server_name localhost;root /var/www/html;index index.html index.htm index.nginx-debian.html;location / {try_files $uri $uri/ =404;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
View Code

 

dockerfile

FROM crunchgeek/php-fpm:7.3-r7
ADD default /
ADD run.sh /
RUN apt-get update && \apt-get install -y nginx net-tools && \apt-get clean all && \mv /default /etc/nginx/sites-available/ && \chmod 755 /run.shEXPOSE 80
EXPOSE 9000
ENTRYPOINT ["/run.sh"]
View Code

 

README.md

# 说明
nginx+php-fpm# 版本说明
```bash
nginx 1.14.2
PHP 7.3.17
```# php-fpm模块说明
默认已经安装如下模块
```bash
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ds
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imagick
imap
interbase
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
newrelic
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
pdo_pgsql
pdo_sqlite
pdo_sqlsrv
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
ssh2
standard
sysvmsg
sysvsem
sysvshm
test
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
```# 构建镜像
```bash
docker build -t nginx_php:1 .
```# 运行
```bash
docker run -d -it --restart=always --name nginx_php -p 80:80 nginx_php:1
```# 说明
```bash
default 是示例nginx配置文件,可根据实际情况修改
```# phpinfo
将`test.php`
```php
<?phpphpinfo();
?>
```
拷贝到容器目录`/var/www/html`通过以下url即可访问
```bash
http://ip地址/test.php
```# 注意
phpinfo不要暴露在公网中访问,黑客知道php版本后,会通过漏洞攻击。<br/>
<br/>
Copyright (c) 2020-present, xiao You
View Code

 

run.sh

#!/bin/bash# 后台启动
/usr/local/sbin/php-fpm -D# 关闭后台启动,hold住进程
nginx -g 'daemon off;'
View Code

 

构建镜像

cd /opt/nginx_php
docker build -t nginx_php:1 .

 

运行

docker run -d -it --restart=always --name nginx_php -p 80:80 nginx_php:1

 

访问页面

http://ip地址

效果如下:

 

 

phpinfo页面

新建test.php

cd /opt/nginx_php
vi test.php

内容如下:

<?phpphpinfo();
?>

 

拷贝到容器中

docker cp test.php nginx_php:/var/www/html/

 

访问test.php

http://ip地址/test.php

效果如下:

 

这篇关于nginx+php-fpm docker镜像合二为一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/490342

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-