2016-03-09 16 views
7

Gần đây tôi đã được cập nhật để php 7.0.4 trên máy chủ của tôi chạy một Debian 8.Apache treo với munmap_chunk(): con trỏ không hợp lệ sau khi cập nhật để php7 trên Jessie

đây là những gì dpkg -l | grep php mang lại cho tôi:

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 

Các ứng dụng php của tôi chạy tốt nhất trong thời gian. Nhưng trên một số yêu cầu, tôi chỉ nhận được Trang được tạo vì không có lý do dự đoán được.

Các /var/log/apache2/error.log bang trong trường hợp này:

*** 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) 

tôi sẽ cung cấp một số thông tin:

Cú pháp:

$ apachectl configtest 
Syntax OK 

Version:

apachectl -v 
Server version: Apache/2.4.10 (Debian) 
Server built: Nov 28 2015 14:05:48 

Trước cập nhật php tôi không thấy những lỗi đó. Có gì sai ở đây? Hoặc làm cách nào để tìm nguồn tốt hơn? Tôi bị lạc ở đây vì lỗi này xảy ra ngẫu nhiên. Đôi khi cùng một yêu cầu thành công mà không thành công với lỗi này một phút trước. Tôi sẽ xin trợ giúp của bạn.

+0

Tôi gặp vấn đề tương tự. Apache2 phiên bản giống như của bạn, php 7.0.8.1.Do bạn tìm thấy bất kỳ giải pháp cho điều này? –

+0

Tôi đã hạ cấp xuống php 5.6 trên máy chủ đó. Và do đó tôi không thể kiểm tra các giải pháp được đề xuất. – Daniel

Trả lời

12

Đó là lần thứ hai chúng tôi bị ảnh hưởng nặng nề bởi cùng một vấn đề.

Điều này xảy ra khi chạy PHP 7.0 trên debian cập nhật. Điều này sẽ phá vỡ bất kỳ loại hệ thống trang web nào sử dụng nhiều biểu thức chính quy. Chúng tôi đã thấy nó iwth Neos (neos.io) hoặc Typo3 (bắt đầu với 6.2).

Trong trường hợp không thể sử dụng phiên bản thử nghiệm của libpcre3. Ai đó có thể vô hiệu hóa chỉ trong thời gian biên soạn trong php.ini

  1. Sửa php.ini của bạn thêm pcre.jit=0 bất cứ nơi nào bạn thích
  2. Khởi động lại apache của bạn
  3. Hãy hạnh phúc
+0

Vô hiệu hóa jit hoạt động trong trường hợp của tôi. Tôi nhận thấy vấn đề này dường như chỉ tồn tại trong PHP> 7.1.3. Tôi tự hỏi nếu nó sẽ được cố định ngược dòng? – trkoch

1

Chúng tôi vừa có một tình huống tương tự, nơi mà một trong các thành phần khung của chúng tôi sẽ không cho chúng ta:

*** Error in `php': munmap_chunk(): invalid pointer: 0x00007fdce5550060 ***

Tôi không thể nói với bạn bất cứ điều gì về lỗi chính nó, nhưng nguyên nhân của nó là phiên bản libpcre3 bị hỏng, cụ thể là 8.35-3.3+deb8u4. Chúng tôi đang chạy một bản dựng tùy chỉnh, vì PHP7 yêu cầu hỗ trợ JIT từ libpcre3, không được bao gồm trong phiên bản Ubuntu mặc định của chúng tôi kèm theo (Ubuntu 14.04 LTS, 8.31-2ubuntu2.3). Nâng cấp phiên bản libpcre3 đã giải quyết được sự cố cho chúng tôi.

2

Tôi có cùng phiên bản và được giải quyết bằng cách nâng cấp libpcre3 như @Kevin Fischer write.

tôi đã nâng cấp libpcre3 gói dạng 2: 8,35-3,3 + deb8u4 (ổn định) để 2: 8,38-3,1 (thử nghiệm) phiên bản.

Từng bước:

  1. Thêm dòng deb http://ftp.us.debian.org/debian testing main contrib non-free để /etc/apt/sources.list
  2. Tạo tập tin /etc/apt/apt.conf.d/99default-release với nội dung: APT::Default-Release "stable";
  3. Run lệnh apt-get update từ gốc
  4. Run lệnh apt-get -t testing install libpcre3 để cài đặt phiên bản thử nghiệm của gói libpcre3
  5. Khởi động lại máy chủ của bạn và kiểm tra nhật ký, lỗi hould sẽ biến mất.

Để biết thêm thông tin để cài đặt gói thử nghiệm, hãy xem this question.

Cảnh báo! Gói thử nghiệm có thể hoạt động không chính xác! Cập nhật rủi ro của riêng bạn hoặc chờ bản phát hành mới.

0

Tôi cũng giữ nhận được những rắc rối khó chịu apache, nhưng không ai trong số các giải pháp trên và trên các trang web khác đã làm việc cho tôi. Sau nhiều lần thử và lỗi, tôi phát hiện ra nguyên nhân gốc rễ trên hệ thống của mình. Tôi đã chỉnh sửa thủ công cấu hình PHP và thêm hai phần mở rộng. Cả hai cho SQL Server của Microsoft. tôi đã thêm các dòng sau vào php.ini

extension=sqlsrv.so 
extension=pdo_sqlsrv 

Tôi không nhận thấy rằng tôi fogot các ".so" vào người lái xe PDO. Sau khi thay đổi các dòng như hình dưới đây, dịch vụ Apache đang chạy tốt trở lại.

extension=sqlsrv.so 
extension=pdo_sqlsrv.so 
Các vấn đề liên quan