Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

upgrading to apache 2

Status
Not open for further replies.

wreikun

Technical User
Apr 23, 2002
63
US
Hello. I am using TurboLinux 6.5 with a 2.2.18 kernel that runs Apache 1.3.17. I am having problems upgrading to Apache 2.0.36. A few weeks ago, I was successful in installing Apache 1.3.24 and having it listen to port 81 while Apache 1.3.17 listened to port 80. (I did this just to test if both were working) Now, my attempt to install Apache 2.0.36 has not worked although I've been following the same procedure as when I installed Apache 1.3.17. Heres what I did:

1. Saved the httpd-2.0.36.tar.gz file in /usr/local/src
2. tar zxvpf httpd-2.0.36.tar.gz
3. cd httpd-2.0.36
4. ./configure --prefix=/usr/include/apache-2.0.36
**** NOTE: I mkdir the file 'apache-2.0.36' ****
5. make
6. make install
7. /usr/include/apache-2.0.36/bin/apachectl start

It is here that it states 'httpd started', however, when I try to access the server, there is a DNS error stating that it cant find the server. Also, when I installed Apache 1.3.24, it showed the message that stated "You have successfully built and installed the apache 1.3 http server. etc, etc". However, this same message doesnt pop up after I finish running the 'make install' command for Apache 2.0.36. Is there some kind of different procedure in installing Apache 2? Any help is greatly appreciated.

-REI
 
I seem to recall that Apache2 doesn't give you this message upon completion of compiling.

After you run "/usr/include/apache-2.0.36/bin/apachectl start", do you check your processes to see if httpd is actually running (ps -ax, or top)? If so, then the problem is most likely your httpd.conf file. Did you check all your configuration directives in there to see if it has the right information? Did you have the other versions of Apache also running at the same time?

---------------------------

Note: /usr/include/apache-2.0.36 is a very unusual place to put Apache. Is there any reason you need it in this location? Apache is not an include file, it is a full program, with it's own binaries, includes, modules, etc...

I feel there is a lot of confusion in the Linux world about just what is the purpose of /usr and /usr/local. Generally, /usr is for standard base applications and utilities that should always be distributed with the OS. /usr/local was intended for custom applications, and third-party stuff in general.

The whole point was to have a distributed system for handling standard files, across applications. Thus library files would go in /usr/local/lib, includes would go in /usr/local/include, etc... and of course binary executables went in /usr/local/bin. This way, all applications could use the same standardized paths, so executables could always be called without naming the explicit directory path. (if you configure Apache this way, with "--prefix=/usr/local", you can just enter "apachectl start").

This was a nice neat way for the system to keep track of everything, but it made it a little complicated for people who simply wanted a whole application to be in its own directory, so they could wipe it and install again, without searching inside several other directories. But, it often meant that the system itself has to replicate files from /usr/local/include to go into /usr/local/apache/include, for example. It also means that there can be some confusion of dependencies, if a certain file is in /usr/include, but a more updated version is at /usr/local/application/include. Not the most efficient way for a system to run, but many Linux distributions do it that way now. (Slackware is the cleanest Linux implementation of the Unix standard)

Warning: if you try --prefix=/usr/local, you should read ./configure--help, and think about where you want your document root, and your /conf directory, etc... or they will be scattered around inside /usr/local. Only the standardized files should be in /usr/local, not documents, configuration files, etc... For example, the httpd.conf file's location is often /etc/httpd, or /usr/local/etc/httpd. (Also a traditional Unix thing: /etc or /usr/local/etc is where the configuration files go)

However, if you want Apache to be completely in its own directory, do that in /usr/local/apache2, or something like that. This is at least somewhat more standard than /usr/include. -------------------------------------------

"Now, this might cause some discomfort..."
(
 
hello rycamor. thanks for the tips. i'm still a newbie at this so the information you provided about whats supposed to go where was very helpful. as you suggested, i ran the command ps -ax after i entered /usr/include/apache-2.0.36/bin/apachectl start and it shows that httpd isnt running. i then started apache 1.3.24 and then ran the ps -ax command and it shows httpd to be running for apache 1.3.24. So apache 1.3.24 is working and apache 2 is not although I installed both using pretty much the same procedue. Therefore, im assuming that there was an error in the installation process of apache 2. i listed what i did in my first thread entry. any help is appreciated. thanks!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top