You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Selvi <se...@gmail.com> on 2010/11/10 19:23:43 UTC

[users@httpd] "Illegal Instruction" issue with a new Apache 2.0.44 install

Hello All,

I am newbie with installing Apache. I am installing an older version,
because I am interested in learning more about specific vulnerabilities in
this version, specifically
CVE-2004-0942<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0942>,
 CVE-2004-0493 <http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0493>
, CVE-2004-0113<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0113>
, CVE-2003-0132<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0132>
.
I am a student and am doing some research on how resource leaks can be
detected. Using Apache I intended to learn how these leaks are manifested in
a real application.

I am running Apache on a Xen domU (Ubuntu). These are my OS details:
user@apachedom:~/apache/install/2_0_44$ uname -a
Linux apachedom 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC
2010 x86_64 GNU/Linux

My gcc version:
user@apachedom:~/apache/install/2_0_44$ gcc -v
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)

I downloaded the Apache 2.0.44 version from
http://archive.apache.org/dist/httpd/httpd-2.0.44.tar.gz
I did not make any changes to the httpd.conf, since I am looking for a
really basic install and couldn't find (and am not yet aware of) any changes
I might need.

After several attempts (and some fixes), I was able to install (configure +
make + make install) successfully (without any error messages).
My configure statement looked like this:
./configure --prefix=/<path>/apache/install/2_0_44 --enable-ssl

But when I try to start using "sudo bin/apachectl start", I get a simple
error message "Illegal Instruction"

I get a little more information when I try "sudo bin/apachectl status"

user@apachedom:~/apache/install/2_0_44$ sudo bin/apachectl status

Looking up localhost

Making HTTP connection to localhost

Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost/server-status

Directly starting httpd also gives me the same error:
user@apachedom:~/apache/install/2_0_44$ sudo bin/httpd
Illegal instruction

No logs are produced in the "logs" directory under the install location.
I was wondering if someone could provide me with suggestions, on how I could
begin to troubleshoot the issue.

In order to ensure that the problem is not because of the SSL module I am
enabling, I repeated the Apache install without --enable-ssl option,
followed by make and make install. But I see the same "Illegal Instruction"
error message.

At the end of this email, I have provided a detailed description of the
steps I followed to get the Apache install up - issues I faced and solutions
that were used to fix this. In case any of this may be relevant to what I am
seeing.

Thanks!
-Selvi


***************************
I began my installation with

$ sudo aptitude install build-essential

$ ./configure --prefix=/<path>/install/2_0_44 --enable-ssl

I was getting an OpenSSL error, like this:

"checking whether to enable mod_ssl... checking dependencies

checking for SSL/TLS toolkit base... /usr

checking for SSL/TLS toolkit version... OpenSSL 0.9.8k 25 Mar 2009

checking for SSL/TLS toolkit includes... configure: error: OpenSSL headers
not found"


So I did this:
sudo apt-get install libssl-dev

Make ended with this error:
"sockopt.c: In function 'apr_socket_opt_set':

sockopt.c:241: error: 'SCTP_NODELAY' undeclared (first use in this function)

sockopt.c:241: error: (Each undeclared identifier is reported only once"


Based on a solution suggested here:

http://tech.groups.yahoo.com/group/new-httpd/message/46095

I did this:
sudo apt-get install libsctp-dev lksctp-tools

Then I saw this error:

ssl_engine_pphrase.c:707: error: 'PEM_F_DEF_CALLBACK' undeclared (first use
in this function)


Based on a solution suggested here:

https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/23493


I added these lines to the file modules/ssl/ssl_toolkit_compat.h:


#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)

#ifndef PEM_F_DEF_CALLBACK

#define PEM_F_DEF_CALLBACK PEM_F_PEM_DEF_CALLBACK

#endif

#endif

After this I repeated configure, make and make install. And it all proceeds
without any errors.

Next when I tried to start apache, I simply get this

user@apachedom:~/apache/install/2_0_44$ sudo bin/apachectl start
Illegal instruction

I then tried the status command which game a little more information:

user@apachedom:~/apache/install/2_0_44$ bin/apachectl status

bin/apachectl: 87: lynx: not found


I then installed lynx like this:


user@apachedom:~/apache/install/2_0_44$ sudo apt-get install lynx


Even after lynx was installed, I see a different error message.


user@apachedom:~/apache/install/2_0_44$ sudo bin/apachectl status

Looking up localhost

Making HTTP connection to localhost

Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost/server-status


To check if I can resolve "localhost" I tried this:

user@apachedom:~/apache/install/2_0_44$ ping localhost

PING localhost (127.0.0.1) 56(84) bytes of data.

64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026 ms

To check if lynx is working I tried to "lynx www.google.com" and am able to
view the Google home page.

But when I try "lynx localhost" I get "Alert! Unable to connect to remote
host"