Windows、XAMPP、PHP 7 和 opcache
Posted
技术标签:
【中文标题】Windows、XAMPP、PHP 7 和 opcache【英文标题】:Windows, XAMPP, PHP 7 and opcache 【发布时间】:2017-04-23 01:17:43 【问题描述】:我已经安装了最新的带有 php 7 的 XAMPP 服务器 (更新:还检查了 PHP 7.1)(在我的 Windows 10 系统上)。想使用 opcache,所以我在php.ini
中启用了它。
[opcache]
zend_extension=php_opcache.dll
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
现在有了这个变化,几乎每次页面刷新,我都会从 Apache 收到这个错误:
AH00428: Parent: child process 3748 exited with status 3221226356 -- Restarting.
所以,页面正在加载,并且正在加载……等待 Apache 重新启动。当我关闭 opcache 时(通过设置 opcache.enable=0
),Apache 没有重新启动并且一切正常(当然忽略了较慢的 Web 应用程序主题)。
在 XAMPP 上加载具有 PHP 5.6 并启用 opcache
的应用程序时一切正常。
编辑(添加 GIF 图片): 如您所见,有时页面会刷新。但有时它刷新的时间要长得多,而 Apache 会在那一刻重新启动。
编辑: 老实说,我放弃了这个应用程序并在 Windows 上使用 PHP(在 PHP Ubuntu 和使用 Docker 创建的服务器。一切都更容易配置(尤其是使用 Docker)并且运行速度更快。我建议每个人都这样做;)。
【问题讨论】:
听起来像是该模块中的错误。我建议您解决xampp
项目并创建一个错误报告。
你重启了apache吗?
@JOUM 多次:D
你试过完整路径吗,比如zend_extension="G:\xampp\php\ext\php_opcache.dll"
@pinkalvansia 在第一名:)。
【参考方案1】:
你的php_opcache.dll
路径似乎错误,你需要像下面这样写,它对我有用。
[opcache]
zend_extension=C:\xampp\php\ext\php_opcache.dll
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.max_accelerated_files=2000
更多详情
如果你的 XAMPP 默认带有 PHP 5.5+,opcache 已经包含在包中,你只需要启用它。启用扩展:
打开 php.ini(默认应该位于此处:C:\xampp\php\php.ini)。
在文件末尾添加这一行:
zend_extension=C:\xampp\php\ext\php_opcache.dll
【讨论】:
在此位置检查 dll 文件 php_opcache.dll:C:\xampp\php\ext\ 并使用最佳配置和 opcache dll 文件的位置更新您的 php.ini 文件【参考方案2】:打开一个php.ini文件
-
将 ;opcache.enable=1 更改为 opcache.enable=1
在文件末尾添加opcache dll路径zend_extension = "C:\xampp\php\ext\php_opcache.dll"
重启apache
更多参考请查看此视频https://www.youtube.com/watch?v=GvWrNoRDjUY
【讨论】:
【参考方案3】:说实话 - 不要使用 xammp。现在我们有更好的技术栈,可以在 Linux 服务器上运行 PHP。 码头工人 https://docs.docker.com/docker-for-windows/
流浪者: https://www.vagrantup.com/
它们都是基于linux系统的,xammp的大部分问题都不会出现。
【讨论】:
【参考方案4】:如果是 Xampp,只需将以下几行放在 [opcache] 旁边
zend_extension="C:\xampp\php\ext\php_opcache.dll"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
【讨论】:
【参考方案5】:创建具有适当权限的目录并将其设置为 php.ini 有效!
opcache.file_cache=d:\xampp\htdocs\opcache
【讨论】:
您能否详细说明您是如何帮助解决这个问题的? 它没有帮助我。【参考方案6】:ThreadStackSize 8388608
在类似的情况下帮助了我。这是一个 httpd 选项。
【讨论】:
您能否更准确地说明您认为这可以解决问题的原因?随机更改的配置对我来说就像是骗局 httpd.apache.org/docs/2.4/mod/mpm_common.html >>> Apache httpd 在使用一些第三方模块时可能会崩溃,这些模块使用的自动数据存储量比较大。【参考方案7】:在 php.ini 上添加更多
zend_extension=opcache
删除评论
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
重启apache
【讨论】:
以上是关于Windows、XAMPP、PHP 7 和 opcache的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xampp for windows 中安装 mcrypt php 7.2.3 扩展?
在 XAMPP 1.8.3 windows 7 安装上升级 PHP
在 XAMPP 1.8.3 windows 7 安装上升级 PHP
在 XAMPP 1.8.3 windows 7 安装上升级 PHP