Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

It happens randomly, and only on moodle installations. Apache don't add a line in the logs when this happens, and I don't know where to look.

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

The apache conf is quite straightforward and works perfectly in the other vhosts

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

Using apache 2.2.9 php 5.2.6 and moodle 1.9.5+ (Build: 20090722)

Any ideas welcome :)

share|improve this question

4 Answers 4

Is there nothing in error_log either?

You could set MaxServers to 1, and then strace that apache thread while requesting the page. It could be that PHP is segfaulting, or the apache child is dying for other reasons.

Also, tcpdump the request at both ends to see what data is being sent on the wire.

share|improve this answer

Look at the main server error log, it should have some Child Segfault Error (11).

This is probably given by a PHP engine fault, often given by a buggy php module, unicode chars handling, gettext corrupted DB, and so on.

It is very difficult to debug.

You can enable xdebug tracing and look at what line it is segfaulting:

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
share|improve this answer
    
Found this on error log: zend_mm_heap corrupted [Fri Sep 18 16:47:08 2009] [notice] child pid 7361 exit signal Segmentation fault (11) [Fri Sep 18 16:47:09 2009] [notice] child pid 7368 exit signal Segmentation fault (11) [Fri Sep 18 16:47:10 2009] [notice] child pid 7375 exit signal Segmentation fault (11) Will try xdebug and see if it helps –  Jorge Bernal Sep 18 '09 at 14:46
    
Only see the segmentation fault and xdebug is not leaving anything useful in /tmp/xdebug –  Jorge Bernal Sep 18 '09 at 15:45
    
it should print a trace of every php function called. So when the trace stops is when the segfault happened. This should suffice to argue what php function is faulting. –  AlberT Sep 18 '09 at 15:50
up vote 0 down vote accepted

Finally solved by adding to /etc/apache2/envvars:

export USE_ZEND_ALLOC=0
share|improve this answer

Finally solved by adding to /etc/apache2/envvars:

export USE_ZEND_ALLOC=0

followe dur steps... Now my webmail works again!

thanks!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.