首页 > 编程语言 >用Podman从零开始构建并运行一个Apache+PHP的容器镜像 (三)

用Podman从零开始构建并运行一个Apache+PHP的容器镜像 (三)

时间:2024-08-21 23:23:12浏览次数:12  
标签:容器 php 项目 test Podman 文件夹 Apache PHP

昨天我在之前从零开始创建的容器中实现了Apache服务的自动启动(详情记录在上一篇博文中:https://blog.csdn.net/arthurchan2021/article/details/141371026)。但是离实用性还有一段距离,所以今天继续折腾。

到目前为止访问http://localhost:8080返回的页面还是Ubuntu给Apache做的默认页面,我当然是想要它返回我自己的页面的。其实这也不难,只要在Containerfile里通过COPY指令把自己的页面复制到容器中默认存放网站页面的目录下,再重新构建镜像就可以了。像下面这样:

COPY ./index.php /var/www/html/

不过这样做适合构建可以发布项目的容器镜像,不适合用于做开发环境。因为站点的这些源码是要不断增加和修改的,按上面的方法就只能每次做了增加或修改想要看看实际运行效果就需要构建一次,再重新运行容器。这样真的太麻烦了。当然也可以再容器里安装想vim这样的编辑器,然后就直接在容器里面做开发。但这样以来需要把容器配置的更加复杂,还不如直接用像vmware这样的传统虚拟机就还了。

所以相信需要把存放在宿主机上的项目代码挂载到容器上去,这样我就可以在宿主机上编辑项目的代码,而实际运行这项代码就交给了Podman容器。有人说这样直接在宿主机配置一个开发环境不就行了吗,何必绕这么大一个圈子呢?如果从头到尾只是做一个项目开发,这样做当然没问题。但是如果我同时在开发多个项目,而且每个项目依赖的环境可能不同(比如说PHP的版本),通过容器跑项目的运行环境就很有优势了。

废话少说,开始动手吧!

首先我需要创建一个存放项目源代码的文件夹,因为这是一个实验,为了简单就将项目的代码粗暴的放在项目文件夹的根目录吧。这个文件夹我就随便明明为test吧。

C:\Users\arthur>e:

E:\>md test

E:\>

然后启动php_apache容器,并把E:\test文件夹挂载到容器上:

E:\>podman run --rm -it -p8080:80 -vE:\test:/var/www/html localhost/php_apache:7.4
 * Starting Apache httpd web server apache2                                                                                                         
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.88.0.30. Set the 'ServerName' directive globally to suppress this message
 *
root@d19ecb9bd1c2:/#

然后我在test文件夹下新建了一个index.php文件,其内容如下:

<?php
# 文件名: index.php

phpinfo();

迫不及待的在浏览器中访问http://localhost:8080,想看看效果:
在这里插入图片描述

酷,真的跑起来了!

好了,今天折腾就到这了。但是这还是太粗糙了,改天再往下折腾。

标签:容器,php,项目,test,Podman,文件夹,Apache,PHP
From: https://blog.csdn.net/arthurchan2021/article/details/141404985

相关文章

  • Docker受限?试试Podman,手动搭建Ubuntu容器镜像
    Docker受限?试试Podman,手动搭建Ubuntu容器镜像最近,我打算用Docker来搭建一个开发环境,但遗憾的是,我发现DockerHub无法使用,甚至国内的镜像源也无法访问。这让我有些头疼,但好在我在寻找解决方案的过程中,发现了一个Docker的替代方案:Podman。Podman的使用方法与Docker几乎一模......
  • 一道PHP源码的问题
    <?phpdefine("MYSQL_HOST",$_ENV['MYSQL_HOST']);define("MYSQL_PORT",$_ENV['MYSQL_PORT']);define("MYSQL_DATABASE",$_ENV['MYSQL_DATABASE']);define("MYSQL_USER",$_ENV['MYSQL_USE......
  • Apache SeaTunnel数据处理引擎适配的演进和规划
    作者|ChaoTian(tyrantlucifer),ApacheSeaTunnelPMCMember摘要ApacheSeaTunnel作为一个高性能数据同步工具,以其高效的数据处理能力,为数据集成领域带来了创新。在引擎上,ApacheSeaTunnel除了支持自身的Zeta引擎外,还支持Spark和Flink。在2024年的CommunityOverCodeAsia,Apa......
  • 从零到一,全面掌握Apache DolphinScheduler发版流程,实战派经验分享!
    引言ApacheDolphinScheduler的发版流程对于确保软件质量和社区协作至关重要,社区Committer王兴杰为我们详细介绍了ApacheDolphinScheduler的发版流程,包括环境准备、流程文档、基础工具准备、依赖包确认等关键步骤,并指出了发版流程中可能会遇到的麻烦以及相应的解决方案,欢迎学习......
  • 「漏洞复现」微商城系统 goods.php SQL注入漏洞
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......
  • PHP基础知识(精推版)
     1. 基本的PHP语法​<?phpecho"Hello,World!";?>​2. 变量和数据类型<?php$name="Alice";$age=25;$isStudent=true;echo"Name:$name,Age:$age,Student:".($isStudent?"Yes":"No");?>......
  • PHP8.1新增的异步HTTP客户端
    php8.1新增的异步http客户端随着互联网的快速发展,各种Web应用程序的性能也变得越来越重要。为了提供更好的用户体验,开发人员需要使用高效的工具和技术来处理各种网络请求。幸运的是,PHP8.1引入了一个全新的功能,即异步HTTP客户端,它允许我们以非阻塞的方式执行HTTP请求,从而提高应用......
  • php多维数组排序 array_multisort
    参考文章:https://www.cnblogs.com/ivy-zheng/p/12557645.htmlarray_multisort — 对多个数组或多维数组进行排序array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变,但数字键名会被重新索引返回值成功时返......
  • [PHP GD Study]我的世界皮肤转迷你世界
    涉及图片旋转、放大、复制目前仅实现了头部的复制准备工作:迷你世界皮肤底图(命名为miniw.png):我的世界皮肤:源代码:⚠AI生成<?php//设置上传文件的目标目录$target_dir="uploads/";//创建目标目录如果不存在if(!file_exists($target_dir)){mkdir($target_di......
  • 用友crm客户关系管理help.php存在任意文件读取漏洞
    产品介绍:用友U8CRM模块是一个综合性的客户关系管理系统,旨在帮助企业从客户出发,以客户关系为管理对象,通过动态管理客户信息、获得客户知识和评判客户价值状况,来全面提升并保持企业的竞争优势及盈利能力。 Fofa语句: body="用友U8CRM"  poc GET/pub/help.php?key=Y......