我最近在运行Debian 8的服务器上更新到php 7.0.4。
这是dpkg -l | grep php
给我的:
ii libapache2-mod-php7.0 7.0.4-1~dotdeb+8.1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
ii php-common 21-1~dotdeb+8.1 all Common files for PHP packages
ii php-readline 21-1~dotdeb+8.1 all readline module for PHP [default]
ii php7.0 7.0.4-1~dotdeb+8.1 all server-side, HTML-embedded scripting language (metapackage)
ii php7.0-cli 7.0.4-1~dotdeb+8.1 amd64 command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.4-1~dotdeb+8.1 all Common files for packages built from the PHP source
ii php7.0-curl 7.0.4-1~dotdeb+8.1 amd64 CURL module for PHP
ii php7.0-gd 7.0.4-1~dotdeb+8.1 amd64 GD module for PHP
ii php7.0-imap 7.0.4-1~dotdeb+8.1 amd64 IMAP module for PHP
ii php7.0-intl 7.0.4-1~dotdeb+8.1 amd64 Internationalisation module for PHP
ii php7.0-json 7.0.4-1~dotdeb+8.1 amd64 JSON module for PHP
ii php7.0-mcrypt 7.0.4-1~dotdeb+8.1 amd64 libmcrypt module for PHP
ii php7.0-mysql 7.0.4-1~dotdeb+8.1 amd64 MySQL module for PHP
ii php7.0-opcache 7.0.4-1~dotdeb+8.1 amd64 Zend OpCache module for PHP
ii php7.0-readline 7.0.4-1~dotdeb+8.1 amd64 readline module for PHP
我的php应用程序大部分时间运行正常。但是在某些请求中,我只是在没有可预见的原因的情况下生成了一个页面。
在这种情况下/var/log/apache2/error.log
州:
*** Error in `/usr/sbin/apache2': munmap_chunk(): invalid pointer: 0x00007efc6ddb4a50 ***
*** Error in `/usr/sbin/apache2': munmap_chunk(): invalid pointer: 0x00007efc6dd5cad0 ***
[Wed Mar 09 11:26:44.940931 2016] [core:notice] [pid 28486] AH00052: child pid 29338 exit signal Aborted (6)
[Wed Mar 09 11:26:44.941017 2016] [core:notice] [pid 28486] AH00052: child pid 29344 exit signal Aborted (6)
*** Error in `/usr/sbin/apache2': munmap_chunk(): invalid pointer: 0x00007efc6dd5cad0 ***
[Wed Mar 09 11:26:46.942581 2016] [core:notice] [pid 28486] AH00052: child pid 29347 exit signal Aborted (6)
我会提供更多信息:
语法:
$ apachectl configtest
Syntax OK
版本:
apachectl -v
Server version: Apache/2.4.10 (Debian)
Server built: Nov 28 2015 14:05:48
在php更新之前,我没有看到这些错误。这有什么不对?或者我怎样才能更好地找到来源?我迷失在这里,因为这个错误发生了一些随机。有时同一个请求会在一分钟前成功解决这个错误。我会恭喜你的帮助。
答案 0 :(得分:12)
这是我们第二次受到同样问题的严重打击。
在最新的debian上运行PHP 7.0时会发生这种情况。 这将破坏大量使用正则表达式的任何类型的网站系统。 我们已经看到它是Neos(neos.io)或Typo3(从6.2开始)。
如果无法使用libpcre3的测试版本。 有人可以在php.ini
中禁用及时编译pcre.jit=0
答案 1 :(得分:2)
我有相同的版本,并通过升级libpcre3
解决,如@Kevin Fischer写道。
我升级libpcre3
包形式 2:8.35-3.3 + deb8u4 (稳定)到 2:8.38-3.1 (测试)版本。
一步一步:
deb http://ftp.us.debian.org/debian testing main contrib non-free
添加到/etc/apt/sources.list /etc/apt/apt.conf.d/99default-release
APT::Default-Release "stable";
apt-get update
apt-get -t testing install libpcre3
以安装libpcre3
package 有关安装测试包的详细信息,请参阅this question。
警告!测试包可能无法正常工作!更新风险或等待新版本。
答案 2 :(得分:1)
我们刚刚遇到类似情况,我们的框架组件之一会让我们失败:
*** Error in `php': munmap_chunk(): invalid pointer: 0x00007fdce5550060 ***
我无法告诉你关于这个bug本身的任何信息,但它的原因是一个损坏的libpcre3
版本,即8.35-3.3+deb8u4
。我们正在运行自定义构建,因为PHP7需要libpcre3的JIT支持,它不包含在我们的Ubuntu版本附带的默认版本中(Ubuntu 14.04 LTS, 8.31-2ubuntu2.3
)。升级libpcre3
版本为我们解决了问题。
答案 3 :(得分:0)
我也经常遇到那些讨厌的apache崩溃,但上面和其他网站上的解决方案都没有为我工作。 经过大量的反复试验,我发现了系统的根本原因。 我手动编辑了PHP配置并添加了两个扩展。两者都适用于Microsoft的SQL Server。 我将以下行添加到php.ini
extension=sqlsrv.so
extension=pdo_sqlsrv
我没有注意到我对#34; .so"在pdo司机。 更改了如下所示的行后,Apache服务再次正常运行。
extension=sqlsrv.so
extension=pdo_sqlsrv.so