Docker php:apache HTML / PHP代码运行不正确在多个区域中抛出的main堆栈

如何解决Docker php:apache HTML / PHP代码运行不正确在多个区域中抛出的main堆栈

感谢您抽出时间阅读此问题。我有用PHP,HTML,CSS编写的代码, 开发计算机上的Javascript和MySQL。此代码运行正常。没有显示错误。

我想将代码移至docker swarm。我制作了一个docker compose文件(图1)并启动了 到我的docker swarm species (图2)。群堆栈运行完美,但当我去添加 我的代码连接到/ var / www / html的卷上,显示错误,并出错 (图3)。

我试图提供任何有价值的信息来破解这个问题。如果有什么我 丢失或信息太多?!?让我知道。

谢谢。

Docker(图1 &&图2)

version: "3.8"

services:
  loadbalancer:
    image: nginx
    ports:
      - "80:80"
    networks:
      - frontend
      - backend
    deploy:
      mode: global
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf

  web:
    image: php:8.0-rc-apache-buster
    ports:
      - "8080:80"
    networks:
      - backend
    deploy:
      mode: global
    volumes:
      - ./code:/var/www/html/
      - ./apache2.conf:/var/apache2/apache2.conf

  mariadb:
    image: linuxserver/mariadb:arm32v7-latest
    ports:
      - "8081:80"
    networks:
      - backend
    volumes:
      - ./data:/config/databases
    deploy:
      placement:
        constraints:
          - node.hostname==dot5

  phpmyadmin:
    image: phpmyadmin
    ports:
      - 8000:80
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mariadb
    depends_on:
      - mariadb
    deploy:
      mode: global
    networks:
      - backend
      - frontend

networks:
  frontend:
  backend:


Client:
 Debug Mode: false

Server:
 Containers: 3
  Running: 3
  Paused: 0
  Stopped: 0
 Images: 11
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: active
  NodeID: 101slznkwl25s4pejtngbrq0z
  Is Manager: true
  ClusterID: jphdf0tzm4p37i7xail1mcoiq
  Managers: 4
  Nodes: 8
  Default Address Pool: 10.0.0.0/8  
  SubnetSize: 24
  Data Path Port: 4789
  Orchestration:
   Task History Retention Limit: 5
  Raft:
   Snapshot Interval: 10000
   Number of Old Snapshots to Retain: 0
   Heartbeat Tick: 1
   Election Tick: 10
  Dispatcher:
   Heartbeat Period: 5 seconds
  CA Configuration:
   Expiry Duration: 3 months
   Force Rotate: 0
  Autolock Managers: false
  Root Rotation In Progress: false
  Node Address: 192.168.0.109
  Manager Addresses:
   192.168.0.102:2377
   192.168.0.103:2377
   192.168.0.109:2377
   192.168.0.86:2377
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.4.51-v7+
 Operating System: Raspbian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: armv7l
 CPUs: 4
 Total Memory: 975.4MiB
 Name: dot3
 ID: UZO6:MLFS:W2AW:EFAI:2KXY:XQNE:3K2S:CEND:JQCY:EVVH:HEEW:ICOM
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No kernel memory TCP limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

PHP代码(图3)

<div class='row justify-content-center mart' id="items">
<!-- connect -->
<?php
include_once 'con.php';
global $conn;
$filter = "";

if (isset($_GET['all'])) {
  $filter = "";
}
else if (isset($_GET['household'])) {
  $filter = "WHERE type = 'household'";
}
else if (isset($_GET['weed'])) {
  $filter = "WHERE type = 'weed'";
}
else if (isset($_GET['garden'])) {
  $filter = "WHERE type = 'garden'";
}
else if (isset($_GET['dessert'])) {
  $filter = "WHERE type = 'dessert'";
}
else if (isset($_GET['tech'])) {
  $filter = "WHERE type = 'tech'";
}
else if (isset($_GET['bants'])) {
  $filter = "WHERE type = 'bants'";
}


$sql = "SELECT * FROM items $filter";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows($result) > 0) {
  while ($row = mysqli_fetch_array($result)) {
?>
  <div class="col-lg-4 col-md-6 col-sm-6 col-xs-12 col-12 mb-4">
    <a href="<?php printf('%s?item_id=%s','view.php',$row['item_id'])?>">
    <div class='menu_item sharp-rounded slight-hover'>
      <div class="card-img-top-left">
        <i <?php echo 'class="fas fa-'.$row['fa'].' fa-2x text-orange"'; ?>></i>
      </div>
        <img class='menu-img sharp-rounded marb' style="max-height: 600px; max-width: 100%; width: auto;" id="loading-item" src='<?php echo str_replace("../","assets/",$row["image"]);?>' alt='<?php echo $row['name']; ?>'>
        <div class="row justify-content-center">
          <div class="col-md-6 mart">
            <h4 style="color: #e84545;">$<?php echo $row['price']; ?></h4>
          </div>
          <div class="col-md-6 mart text-orange">
            <a href="view.php?item_id=<?php echo $row['item_id']; ?>#add_to_cart">Add To Cart</a>
          </div>
          <div class="inline-block" style="width: 100%;">
            <h4><?php echo $row['name'];?></h4>
            <p style="color:#686E79; overflow: hidden;
            display: -webkit-box;
            -webkit-line-clamp: 5;
            -webkit-box-orient: vertical;">
              <?php echo $row['info']; ?>
            </p>
          </div>
        </div>
    </div>
    </a>
</div>
<?php
}} else { ?>
  <div class="bob"><img class="sharp-rounded" src="assets/images/gen/nothing_here.png" alt="nothing here!" width="70%"></div>
<?php
} mysqli_close($conn);
?>
</div>

该网站的预期外观。 1:docker-stack 2:rpi开发服务器

docker-stack look/feel

rpi dev server look/feel

解决方法

您用于Web容器的Docker映像至少未启用mysqli插件(因此未定义功能)。您可以在官方PHP基本映像中使用docker-php-ext-installdocker-php-ext-enable在Dockerfile中启用它。

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

https://github.com/docker-library/docs/tree/master/php#php-core-extensions

https://github.com/docker-library/php/issues/391

一旦解决,可能还会有其他问题,但这是眼前的问题。

,

问题已解决。

事实证明,运行我的应用程序需要mysqli(默认情况下未安装!)。

谢谢大家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-