热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用docker在CentOs上设置PHP-FPM,Nginx,Mariadb

如何解决《使用docker在CentOs上设置PHP-FPM,Nginx,Mariadb》经验,为你挑选了2个好方法。

我正试图从使用VirtualBox作为我的开发环境转向docker.

使用VirtualBox,我主要安装PHP-FPM,Nginx和Mariadb但是在Docker中,尽管尝试了几天,但我无法复制相同的堆栈.

在所有LEMP/LAMP堆栈码头指南中,只有这一个chentex/docker-nginx-centos适用于我:

这是来自的代码 Dockerfile

FROM centos:centos7
LABEL maintainer="Vicente Zepeda "

ENV nginxversion="1.12.2-1" \
    os="centos" \
    osversion="7" \
    elversion="7_4"

RUN yum install -y wget openssl sed &&\
    yum -y autoremove &&\
    yum clean all &&\
    wget http://nginx.org/packages/$os/$osversion/x86_64/RPMS/nginx-$nginxversion.el$elversion.ngx.x86_64.rpm &&\
    rpm -iv nginx-$nginxversion.el$elversion.ngx.x86_64.rpm &&\
    sed -i '1i\
    daemon off;\
    ' /etc/nginx/nginx.conf

CMD ["nginx"]

这开箱即用,我可以看到一个默认页面 http://localhost

唯一的问题是,它不包含PHP-FPM和Mariadb.

我试图改变文件并添加PHP-FPM和Mariadb,但我发现在reddit上每个容器都应该有服务,就像在一个容器中用于nginx,另一个用于php ...而且我迷失了如何做那个



1> Danoweb..:

Docker容器设计为在其中运行单个服务,而不是整个虚拟系统(您可能会看到虚拟机和虚拟机).

理想情况下,您希望每个容器都有一个容器:

Nginx的

PHP

MariaDB的

此外,Centos docker镜像被设计为其他人继承或执行特定于操作系统的任务(例如cURL调用或shell)的基础,这不是您真正需要的.

我建议您使用docker-compose,它可以让您轻松设置中间容器,并将它们作为一个项目进行管理.

我建议如下docker-compose.yml文件设置:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./src:/(nginx config root folder)
      - ./config/site.conf:/etc/nginx/conf.d/site.conf
    links:
      - php
      - mariadb

  php:
      image: php:7-fpm
  mariadb:
      image: mariadb
      restart: always
      environment:
        MYSQL_ROOT_PASSWORD: example

然后,您将/config/在项目文件夹中有一个文件夹,您需要一个site.confnginx设置文件.

您还需要一个/src/项目文件夹中的文件夹,其中包含项目的所有php/web代码.

docker-compose.yml文件中的卷安装将为您加载到容器中.卷挂载通过映射工作host folder path:container folder path当一个内容发生变化时,它会在另一个中更新,几乎就像复制/粘贴一样.请记住,您可能需要更新文件权限.

对于Mariadb,您可以添加另一个volume来将容器中的数据文件映射到主机文件夹.此外,您可以打开mysql端口,这样您就可以使用mysql workbench等工具通过添加ports端口部分来查询数据库,如3306web节所示.该值mysql_root_password将设置root用户密码.

您可以使用docker-compose up项目目录中的命令启动它.

当您需要手动重新启动nginx(或其他服务)时,您将停止并启动容器.你可以用命令做到这一点:

docker-compose up - 启动容器

docker-compose down - 停止容器

如果您希望将正在运行的容器发送到后台(因此它不会占用终端窗口),您将使用: docker-compose up -d

如果您有任何疑问或者有些事情不清楚,请告诉我,我很乐意更新我的答案!



2> matchish..:

你可以使用我的docker-compose文件(mariadb,php-fpm,nginx)

https://github.com/matchish/skeleton

赶紧跑

docker-compose up -d

您将在http:// localhost上看到"Hello world" 您可以在.env文件中编辑环境变量

另外,我推荐https://laradock.io/

您可以在任何服务中运行终端

docker-compose exec db bash
docker-compose exec php-fpm bash
docker-compose exec nginx bash 

此外,您还可以添加数据库初始化文件.阅读此文件中的手册https://github.com/matchish/skeleton/blob/master/mariadb/docker-entrypoint-initdb.d/createdb.sql.example

要重新启动服务,请停止容器然后再次启动它

docker-compose stop nginx 
docker-compose up -d nginx

如果你需要编辑nginx conf,你应该重建图像

docker-compose build nginx 
docker-compose up -d

如果您需要phpmyadmin,可以将其添加到撰写文件中

phpmyadmin:
  image: phpmyadmin/phpmyadmin
  environment:
    PMA_HOST: db
    PMA_PORT: 3306
  ports:
    - '8181:80'

现在,您可以在http:// localhost:8181上访问它

在生产中使用compose的最简单方法是将项目目录复制到生产服务器并运行docker-compose up -d.您可以排除logs目录.最好有多个撰写文件(https://docs.docker.com/compose/production/)

在部署到生产环境时,不要忘记保留文件权限


推荐阅读
  • Centos7安装MySql5.6
    如何在CentO ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • centos 编译安装 php 5.5,CentOS 5.5上编译安装 PHP 5.3.6
    编译并安装#make&&makeinstall安装结果摘要,里面有几个主要的安装路径变量libtool:install:warning:remembertorunli ... [详细]
  • 【BUUCTF】[极客大挑战 2019]LoveSQL 详细题解总结笔记 Writeup
    【BUUCTF】[极客大挑战2019]LoveSQL一.SQL注入考点二.解题过程0.存在SQL注入1.万能密码adminor112.爆字段3.看回显4.爆数据库5.爆数据库的表6 ... [详细]
  • 四行代码换国内源快速安装配置Rust
    四行代码快速安装Rust很多朋友苦恼官方给出的终端安装命令,太慢,有时候直接连接不上。接下来介绍四行代码快速换源安装配置RUST。#先配置国内源打开终端 ... [详细]
author-avatar
捕鱼达人2602881157
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有