首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在opcache.ini中添加行opcache.preload=/app/tools/preload.php在docker中不起作用

在opcache.ini中添加行opcache.preload=/app/tools/preload.php是用来配置PHP的opcode缓存工具OPcache,在启用OPcache的情况下,指定一个预加载文件,该文件中包含了需要被预加载的PHP代码。预加载可以提高应用程序的性能,通过提前将一些常用的类、函数或文件加载到内存中,避免了每次请求时的文件读取和编译过程。

然而,在docker中配置opcache.preload指令可能会因为环境的差异导致不起作用。原因可能是容器中的路径与宿主机不一致,或者容器中的PHP配置文件路径不是opcache.ini。为了解决这个问题,可以按照以下步骤进行调试:

  1. 确认opcache.ini的路径:在docker容器中执行phpinfo()函数,查找opcache配置文件(opcache.ini)的路径。可以通过运行以下命令来获取opcache配置信息:
代码语言:txt
复制
docker exec <容器名称或ID> php -i | grep opcache

找到opcache配置文件的路径后,记下来备用。

  1. 确认preload.php文件路径:确认preload.php文件在容器中的路径是否正确,可以通过执行以下命令来查看文件是否存在:
代码语言:txt
复制
docker exec <容器名称或ID> ls /app/tools/preload.php

如果preload.php文件不存在或路径不正确,需要调整路径或确保文件存在。

  1. 修改opcache.ini的路径:根据步骤1中找到的opcache配置文件路径,进入容器并修改opcache.ini文件,将opcache.preload的路径设置为正确的preload.php路径。可以使用以下命令来编辑opcache.ini文件:
代码语言:txt
复制
docker exec -it <容器名称或ID> vi <opcache.ini的路径>

在编辑器中找到opcache.preload= 指令,并将其路径修改为正确的preload.php路径。

  1. 重启PHP容器:修改完opcache.ini后,需要重启PHP容器使配置生效。可以使用以下命令来重启容器:
代码语言:txt
复制
docker restart <容器名称或ID>

通过以上调试步骤,应该能够解决在docker中添加opcache.preload指令不起作用的问题。如果问题仍然存在,可能需要进一步检查容器环境、PHP版本等因素,并可能需要查看更详细的错误日志以进行故障排除。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 strace 在 Docker 中不起作用?

在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace 在 Docker 容器中无法工作。...这里的问题是 —— 如果我在笔记本上的 Docker 容器中运行 strace,就会出现这种情况: $ docker run -it ubuntu:18.04 /bin/bash $ # ... install...原因 1:在实验中,作为一个普通用户,我可以对我的用户运行的任何进程进行 strace。...这很容易解释为什么 strace 在 Docker 容器中不能工作 —— 如果 ptrace 系统调用完全被屏蔽了,那么你当然不能调用它,strace 就会失败。...在 containerd 的 seccomp 实现中,在 contrib/seccomp/seccomp/seccomp_default.go 中,有一堆代码来确保如果一个进程有一个能力,那么它也会(通过

6.4K30
  • 使用Rancher在K8S上部署高性能PHP应用程序

    我们将展示如何在你的Docker镜像中构建PHP-FPM配置选项并在容器中使用环境变量调整它们。 在PHP中的性能 首先,了解PHP应用程序中如何处理网络请求将对本文接下来的内容很有帮助。...在本篇教程中,你将了解到如何设置一个PHP Docker镜像,该镜像可以调整OPcache的内存限制、缓存文件数量以及重新验证缓存频率。...在K8S上部署一个PHP应用程序 前期准备 在你进行本篇教程之前,你需要做好以下准备: 在你本地机器上安装好的Docker Docker Hub或其他Docker镜像仓库上的账号 Rancher部署(如果你还没部署...首先,创建一个名为opcache.ini的新文件。你将复制该文件到PHP镜像中并在Dockerfile中为每个环境变量添加默认值。...在Rancher UI中创建新的工作负载,该负载与PHP-FPM工作负载在相同的集群上。

    1.3K00

    说一说PHP7性能的变化

    预加载是在模块初始化的时候,将库和框架加载到 OPCache 中的过程 预加载由 php.ini 的 opcache.preload 进行控制。这个参数指定在服务器启动时编译和执行的 PHP 脚本。...此文件可用于预加载其他文件,或通过 opcache\_compile\_file() 函数; 在服务器启动的时候,将某些文件永久读取到内存中,之后的请求即可直接从这内存中读取。...利用这个功能,能够将框架,或者是类库预加载到内存中,以进一步提高性能,在ZF框架的测试中,开启opcache.preload后性能提升30%到50%。 其实不难发现,过去十年互联网江湖风云变幻。...掌握了这些知识,开发工程师在开发软件时才能写出更高性能的代码;能够帮助企业提升服务效率并降低运营成本。...与单元测试 单元测试,Docker构建LNAMP环境,Docker网站组成,路由互联。

    83910

    Android界面布局属性layout_gravity和gravity的区别

    一、layout_gravity和gravity的作用 1、android:layout_gravity是设置该控件相对于父容器对齐方式; 2、android:gravity是设置子元素在该容器内的对齐方式...(一个属性可以包含多个值,需用 “|” 分开),其具体作用如下: 二、layout_gravity和gravity在各布局中的使用区别 1、相对布局(RelativeLayout) 效果图如下: 故在相对布局中layout_gravity和gravity不起任何作用。...故我们在线性布局中使用layout_gravity和gravity应该注意以下几点: 1、gravity在线性布局中不起任何作用,layout_gravity在线性布局中起作用; 2、 当我们使用...android:orientation=“vertical” 时, android:layout_gravity只有水平方向的设置才起作用, 垂直方向的设置不起作用。

    1.3K20

    开发人员必备:9个令人惊叹的CSS网格生成器推荐!

    它有一个非常易于理解的用户界面,在其中你可以通过容器中的“+”和“-”按钮添加行和列。还可以通过添加多个网格单元来扩展网格项。此外,它还允许我们在这些网格项之间插入间隙。...该应用程序有三个阶段:轨道编辑、项目编辑和最终结果,您可以在最后一步中导出代码。现在在第一步中,您可以使用“+”按钮更改列数和行数,在之前和之后添加容器。...在第二步中,您可以添加任意多个分区,并自定义每个分区的颜色。接下来,您可以将代码导出为CSS、HTML、JSX和Styled组件作为最后一步。...在左侧面板上,可以向布局中添加行和列,而在右侧面板上,您可以向行和列中添加网格。 简单来说,举个例子,你想在开头只添加一个网格项,因为你想将其作为标题。...此外,你可以通过点击生成代码来在右侧面板中获取HTML和CSS代码。

    4.2K30

    使用Jenkins发布Android项目

    随着自动化越来越普及,越来越多的公司都会将应用发版自动化,前端、后端项目相对较多一点,我们公司就是这样,移动端目前还没有一个是通过自动化打包,现在团队为了提升效率,需要将移动端也进行自动化,下面就是在整个过程中的操作步骤.../upload 使用Jenkins打包 Jenkins部署在Kubernetes中,打包安卓包可以直接使用jenkins-slave方式进行。...制作打包的Docker镜像 这一步主要是制作打包Android项目的Docker,由于网络原因,Android工具是手动下载再添加到Docker中。...进入容器安装Android SDK,主要是安装SDK需要交互式操作,在Dockerfile中不好弄,就手动去安装了。...也可以在DevOps工程中查看具体的信息,如下: ?

    72630

    如何创建一个带诊断工具的.NET镜像

    所以现在大多数的dotnet程序都是部署在各种容器化环境中,比如我们常见的Docker。 微软官方为.NET提供的许多Docker镜像,让我们可以很方便的创建容器化的.NET应用。...3.就是我们今天提到的方案,我们可以利用Docker多段构建,使用sdk镜像安装好dotnet tool以后,直接COPY到我们runtime的镜像,然后在runtime的镜像中使用。...从build镜像中把dotnet工具COPY出来 并设置为PATH COPY --from=build /root/.dotnet/tools /root/.dotnet/tools ENV PATH=...从build镜像中把dotnet工具COPY出来 并设置为PATH COPY --from=build /root/.dotnet/tools /root/.dotnet/tools ENV PATH=...从build镜像中把dotnet工具COPY出来 并设置为PATH COPY --from=build /root/.dotnet/tools /root/.dotnet/tools ENV PATH=

    2K20
    领券