Php

阿帕奇給出空回复

  • November 12, 2015

它是隨機發生的,並且僅在 Moodle 裝置上發生。發生這種情況時,Apache 不會在日誌中添加一行,我也不知道去哪裡找。

koke@escher:~/Code/eboxhq/moodle[master]$ curl -I http://training.ebox-technologies.com/login/signup.php?course=WNA001 
curl: (52) Empty reply from server
koke@escher:~/Code/eboxhq/moodle[master]$ curl -I http://training.ebox-technologies.com/login/signup.php?course=WNA001 
HTTP/1.1 200 OK

apache conf 非常簡單,可以在其他虛擬主機中完美執行

<VirtualHost *:80>
   ServerAdmin webmaster@ebox-technologies.com
   DocumentRoot /srv/apache/training.ebox-technologies.com/htdocs
   ServerName training.eboxhq.com
   ErrorLog /var/log/apache2/training.ebox-technologies.com-error.log
   CustomLog /var/log/apache2/training.ebox-technologies.com-access.log combined

       <FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
               ExpiresActive On
               ExpiresDefault "access plus 1 week"
               Header add Cache-Control public
       </FilesMatch>
</VirtualHost>

使用 apache 2.2.9 php 5.2.6 和 moodle 1.9.5+(內部版本:20090722)

歡迎任何想法:)

最後通過添加解決/etc/apache2/envvars

export USE_ZEND_ALLOC=0

查看主伺服器錯誤日誌,它應該有一些Child Segfault Error (11)

這可能是由 PHP 引擎故障引起的,通常由錯誤的 php 模組、unicode 字元處理、gettext 損壞的 DB 等引起。

調試非常困難。

您可以啟用xdebug跟踪並查看它在哪一行出現段錯誤:

pecl install xdebug

php.ini

[xdebug]
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.auto_trace=1            ; enable tracing
xdebug.trace_format=0
xdebug.show_mem_delta=1        ; memory difference
xdebug.show_local_vars=1
xdebug.max_nesting_level=100

引用自:https://serverfault.com/questions/66662