docker 安装 nginx + httpd + php-fpm

原文地址:http://www.taoluyuan.com/index.php/archives/30/#2

展示

1.安装

  • 1.1安装docker

    移除旧的版本:
    sudo yum remove docker
    安装一些必要的系统工具:
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    添加软件源信息:
    sudo yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker- ce.repo
    更新 yum 缓存 : sudo yum makecache fast
    安装 Docker-ce:sudo yum -y install docker-ce
    sudo yum install docker-ce -y
    sudo systemctl start docker
    sudo usermod -aG docker ws
    docker安装时默认创建了docker用户组,将普通用户加入docker用户组就可以不使用sudo来操作dockersudo
    usermod -aG docker ( 这里替换成你自己的用户名)
    注意:光加入还不行,要么重新登录
    要么执行newgrp - docker 改变当前用户的有效群组

    我这里采用的是阿里云加速 进入登录按照提示操作即可
    https://cr.console.aliyun.com/cn-shanghai/mirrors

  • 1.2安装nginx

  1. 安装镜像
    dcker pull nginx:1.15.3-alpine
    
  2. 查看镜像是否存在
    docker images
    
  3. 运行容器

    3.1. 命令

    docker run --name mynginx --privileged -p 9090:80 -d nginx:1.15.3-alpine
    

    3.2 参数说明

    -d 启动容器后台运行,并返回ID;
    -P:将容器内部使用的网络端口映射到我们使用的主机上。
    —privileged 赋予容器扩展权限,有些东西启动不了

  4. 容器与宿主机的文件拷贝
    4.1. 命令

    为了以后修改文件 我们要拷贝一份配置文件到主机里。 这时就要用到docker cp 命令

    docker cp tmp:/etc/nginx/nginx.conf /home/ws/nginx/conf/
    

    4.1 说明
    两个参数位置对调,就是 反过来,大家可以自己试一下

  5. 删除容器
    5.1 停止容器

    docker stop mynginx
    

    5.2 删除容器

    docker rm mynginx
    
  6. 再启动容器
    6.1 命令

    docker run --name mynginx --privileged -p 9090:80 -v /home/ws/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -d nginx:1.15.3-alpine
    

    6.2 参数说明

    -d 启动容器后台运行,并返回ID;
    -P:将容器内部使用的网络端口映射到我们使用的主机上。
    -v 将容器的目录挂载到宿主机[第一个目录是宿主机目录,你们要用自己的目录] 比如nginx的配置文件nginx.conf 挂载到宿主机上
    —privileged 赋予容器扩展权限,如果不开,可能有些东西启动不了

  7. 在浏览器打开

    ip:9090 就能看到nginx的欢迎页
    如果看不到,进入容器,查看nginx是否启动

    docker run -t -i mynginx /bin/sh
    ps -ef | grep nginx
    

    上述命令 docker run -t -i mynginx /bin/sh 进入到容器 因为nginx是alpine 版本的,启动shell是/bin/sh
    如果是其他的比如centos是 /bin/bash
    ps -ef | grep nginx 查看进程
    如果看不到,说明容器的nginx并没有启动,容器环境启动不了因素很多,或许我们可以一起讨论下

  8. 说明

    1.第三步的的容器创建,只是为了拷贝一份nginx.conf,然后拷贝到宿主机,挂载,为了方便直接在宿主机更改nginx.conf
    2.关于类似nginx的web服务器还有一个需要挂载的,就是它的web目录,也就是放程序的文件夹
    3.一旦docker容器的删除,就代表容器里的所有将被删除,建议将重要的,可再利用的文件挂载到宿主机,比如 nginx.conf和程序目录

  • 1.3安装apache-httpd

  1. 介绍

    我使用apache基本是是为了与php结合,apache与php结合有多种,我一般是apache与 php-fpm的方式,当然nginx也能与php-fpm结合
    如果想看关于更多apache 与 php-fpm的相关的文章,可以百多一下,网上有很多,也可以去我的博客套路猿 了解一下,也有关于这些的文章。这里由于篇幅这里只介绍docker

  2. 安装

    安装基本跟nginx一样的

  3. 不一样的地方

    2.1 镜像源不一样

    2.2 每个web服务器配置文件不一样,

    每个web服务器配置文件的目录不一样,项目目录也不一样,至于怎么查看配置文件在哪,有很多种方法
    1 在下载镜像源的地址上也有说明,比如httpd https://hub.docker.com/_/httpd/
    2 还可以进入到容器,,通过linux命令 查看httpd 或者 nginx 的配置文件,比如

    ps -ef | grep nginx
    docker pull httpd:2.4.34-alpine
    

  • 1.4安装php-fpm

  1. 介绍

    1.和nginx/httpd 是两个独立的个体。
    2.php-fpm在php出错时启动新的php_fpm 进程(打开ps -ef | grep php-fpm 查看:master process 是一个pho-fpm的主进程负责控制和回收副进程)
    3 php-fpm可以与webserver分离,能同事运行多份,甚至多个版本
    4效率比mod_php高

  2. 安装

    安装的方式也类似前两个

  3. 配置
    配置将在我另外一篇文章中展示,关于 docker 安装nginx 方向代理 apache-fpm

2.配置nginx反向代理 httpd+php+fmp

由于篇幅原因:配置nginx反向代理 httpd+php+fmp,将在我另外一篇博客展示
完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/544542.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

redis-plus-plus的安装与使用

本文参考自 redis-plus-plus 官方文档 一、安装 因为redis-plus-plus是基于hiredis封装的,所以需要先安装hiredis; 第一步:安装hiredis # 使用git下载源代码 git clone https://github.com/redis/hiredis.git # 进入源代码主目录 cd hired…

ChatGPT在线网页版

ChatGPT镜像 今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像…

LangChain LangServe 学习笔记

LangChain LangServe 学习笔记 0. 引言1. LangServe 概述2. 特性3. 限制4. 安装5. 示例应用程序6. OpenAPI文档7. Python SDK 客户端8. Playground9. 聊天可运行页面 0. 引言 使用 LangServe 可以立即将您的LLM应用程序变成 API 服务器。 LangServe 使用 FastAPI 构建&#x…

5. Mysql的binlog介绍

参考:InnoDB学习(三)之BinLog 1. BinLog介绍 BinLog又称为二进制日志,是MySQL服务层的数据日志,MySQL所有的存储引擎都支持BinLog。 BinLog记录了MySQL中的数据更新和可能导致数据更新的事件,可以用于主从…

大数据深度学习:基于Tensorflow深度学习卷积神经网络CNN算法垃圾分类识别系统

文章目录 大数据深度学习:基于Tensorflow深度学习卷积神经网络CNN算法垃圾分类识别系统一、项目概述二、深度学习卷积神经网络(Convolutional Neural Networks,简称CNN)三、部分数据库架构四、系统实现系统模型部分核心代码模型训…

【C++】模板初阶——泛型编程、函数模板、类模板

1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, double& right) {double temp left;left right;right temp; } void Swap(char& left…

双向链表的实现(详解)

目录 前言初始化双向链表的结构为双向链表的节点开辟空间头插尾插打印链表尾删头删查找指定位置之后的插入删除pos节点销毁双向链表 前言 链表的分类: 带头 不带头 单向 双向 循环 不循环 一共有 (2 * 2 * 2) 种链表 带头指的是:带有哨兵位节点 哨兵位&a…

关于部署ELK和EFLK的相关知识

文章目录 一、ELK日志分析系统1、ELK简介1.2 ElasticSearch1.3 Logstash1.4 Kibana(展示数据可视化界面)1.5 Filebeat 2、使用ELK的原因3、完整日志系统的基本特征4、ELK的工作原理 二、部署ELK日志分析系统1、服务器配置2、关闭防火墙3、ELK ElasticSea…

个人笔记目录

目录 一、lora 微调 alpaca 笔记 二、全量微调 Llama2-7b笔记 三、Huggingface trainer 与 from_pretrained简单介绍(笔记) 四、vscode调试launch.json常用格式 五、huggingface generate函数简介 六、Trl: llama2-7b-hf使用QLora 4bit量化后ds zer…

自动化收集Unity版本更新日志

自动化收集Unity版本更新日志 🍥功能介绍🥪食用手册填写配置开始搜集 🍨数据展示 🍥功能介绍 💡获取指定年份中所有的Unity版本更新日志。 💡根据指定字符串过滤。 💡.收集后自动保存成markdow…

Redis队列与Stream

Redis队列与Stream、Redis 6多线程详解 Redis队列与StreamStream总述常用操作命令生产端消费端单消费者消费组消息消费 Redis队列几种实现的总结基于List的 LPUSHBRPOP 的实现基于Sorted-Set的实现PUB/SUB,订阅/发布模式基于Stream类型的实现与Java的集成消息队列问…

OpenHarmony实战开发-FaultLoggerd组件。

简介 Faultloggerd部件是OpenHarmony中C/C运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件,Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志,定位相关问题。 架构 Native InnerKits 接口Sig…

向量 | vector;标量 | scalar;矩阵;张量

目录 什么是标量 什么是向量? 向量的3种表达方式 向量的矩阵表示 什么是矩阵 什么是张量 什么是标量 标量只有大小概念,没有方向的概念。通过一个具体的数值就能表达完整。 比如:重量、温度、长度、提及、时间、热量等都数据标量。

绝地求生:杜卡迪“PANIGALE V4 S”摩托车 最全六色测评 游戏内效果展示

PUBG最新联名的杜卡迪摩托车大家都抽到或者换到心仪的颜色了吗 或许有人还在纠结换什么颜色 那么今天给大家带来全网最全颜色测评供大家参考 看看你喜欢哪个吧~ 极速金 2500代币 叛逆玫瑰 2500代币 暮光粉 2500代币 翡翠绿 2500代币 杜卡迪红 1500代币 纯净黑 1500代币 那本期测…

Java开发从入门到精通(二十):Java的面向对象编程OOP:Stream流

Java大数据开发和安全开发 (一)Java的新特性:Stream流1.1 什么是Stream?1.2 Stream流的使用步骤1.3 获取Stream流1.4 Stream流常见的中间方法1.5 Stream流常见的终结方法 (一)Java的新特性:Stream流 1.1 …

GNU Radio创建Zadoff-Chu序列C++ OOT块

文章目录 前言一、ZC序列是什么?二、创建自定义的 C OOT 块1、创建 OOT 模块2、创建 OOT 块3、修改 C 文件4、编译及安装 OOT 块 三、测试1、grc 图2、运行结果①、时域图②、时域幅值模图③、IQ 曲线 四、其他五、资源自取 前言 本文实现在 GNU Radio 中创建 Zado…

银河麒麟之PaddleOCR模型部署

一、PaddleOCR简介 PaddleOCR是一个基于飞桨框架开发的开源OCR工具,提供了一系列强大的文本识别功能。PaddleOCR支持多种文本识别任务,包括文字检测、文字识别、文本方向检测等。它具有高效、准确的特点,适用于多种场景下的文本识别需求&…

信息系统项目管理师——管理类计算

风险管理——风险曝光度 风险曝光度概率*影响,概率指风险发生的概率,影响指风险一旦发生,受到影响的项。 题号【GX20061101](61) 知识点[风险曝光度] 风险的成本估算完成后,可以针对风险表中每个风险计算其风险曝光度。某软件小…

Servlet测试1

通过按钮提交get,post请求,并且后端响应数据,显示到前端 当点击get按钮时 是发起Get请求 后端接收到Get请求后,把数据写入到body内 当点击pst按钮时 是发起Post请求 后端接收到Post请求后,把数据写入到body内 之后前端就从bod…

【机器学习300问】67、均方误差与交叉熵误差,两种损失函数的区别?

一、均方误差(Mean Squared Error, MSE) 假设你是一个教练,在指导学生射箭。每次射箭后,你可以测量子弹的落点距离靶心的差距(误差)。MSE就像是计算所以射击误差的平方后的平均值。它强调了每一次偏离靶心的…