Unfortunately apache2 was installed in the exact location inside /usr, by merging its files inside bin.Hence I used the same option for apache2 like this. ./configure --prefix=/usrTo install apr and apr-util I followed this link (http://www.linuxfromscratch.org/blfs/view/svn/general/apr.html). This is where I came to know about --prefix option and I used "/usr" from this tutorial. But irrespective of using /usr as --prefix, apr installed inside /usr/local.The steps I used to install apache2Hello mike,I would like to clarify one thing. Whatever the apache related command I execute inside /usr/local/apache2/bin, it all affecting the apache inside /usr. The exact reason may be because I installed apache inside /usr at first and only later I installed in "usr/local...."Hence if you want exact result of the sudo /usr/local/apache2/bin/apachectl -V, please tell me how to explicitly specify the path as you suggested me in the last command using -f option(sudo /usr/local/apache2/bin/apachectl -k start -f /usr/local/apache2/conf/httpd.conf ).So tell me if apache configures any environment variables and it may not overwriting the path when I install second time inside /usr/local....Later I read in apache documentation, if --prefix not specified it will install inside /usr/local... so I thought it would be easy if all apache files is available inside one directory (apache2) which will be created by server. This time I just ran ./configure. And you know the later part.Two installations are conflicting with each other. Only the first installation is valid and the second is not even executing server start command.So is there any way I can completely uninstall apache? something similar to "make uninstall". "make uninstall" is not working I don't know why.On Wed, Apr 1, 2015 at 5:42 AM, Mike Rumph <mike.rumph@xxxxxxxxxx> wrote:Hello Padmahas,
Okay. This tells us a few things.
One problem is that the HTTPD_ROOT is set to /usr instead of /usr/local/apache2.
Other relative paths will be based from here.
Since the SERVER_CONFIG_FILE is set to conf/httpd.conf,
the default config file will be /usr/conf/httpd.conf instead of /usr/local/apache2/conf/httpd.conf.
The -f switch allowed you to override this.
What steps did you use to install and configure httpd into /usr/local/apache2?
In your httpd source directory, what are the contents of the config.nice file?
You could review the following links:
- http://httpd.apache.org/docs/2.4/install.html#configure
- http://httpd.apache.org/docs/2.4/programs/configure.html
Take care,
Mike
On 3/31/2015 4:19 PM, Padmahas Bn wrote:
Thank you for the documentation links, I'm referring those links now.Now is there any way I can set apache to look inside /usr/local/apache2/conf/httpd.conf by default, by forgetting the first installation inside /usr? Or should I always specify the httpd.conf path as you suggested?The message it always show is,I looked inside /usr/local/apache2/bin/apachectl, the HTTPD var set toAbout the command you suggested with -V option, this is the result.Hello mike,Yes you are write I installed server first inside /usr and then inside /usr/local/apache2 (installed by default when I used ./configure without --prefix option). Even you are right about my manual un installation.
Server version: Apache/2.4.12 (Unix)
Server built: Mar 31 2015 16:20:21
Server's Module Magic Number: 20120211:41
Server loaded: APR 1.5.1, APR-UTIL 1.5.4
Compiled using: APR 1.5.1, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
HTTPD='/usr/local/apache2/bin/httpd'In parallel I also looked inside /usr/bin/apacheclt, there the HTTPD var set to
HTTPD='/usr/bin/httpd'. So I assume both of them pointing to their respective directories.
I tried the second command you suggested
sudo /usr/local/apache2/bin/apachectl -k start -f /usr/local/apache2/conf/httpd.conf
Good news The server started with usual warning message but Yes!!! it is using the httpd.conf file which resides inside /usr/local/apache2/conf/httpd.conf.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
On Tue, Mar 31, 2015 at 10:11 PM, Mike Rumph <mike.rumph@xxxxxxxxxx> wrote:
Hello Padmahas,
It looks like your two installations of Apache httpd 2.4 are conflicting with each other.
If I understand correctly, you first installed into /user and then into /usr/local/apache2.
Then you tried to remove the /user installation by deleting files manually.
(As you've seen, /user is not a good choice, because this is used for many other things as well.)
It would probably help to do a fresh installation.
But let's try a few things first.
When tried " sudo /usr/local/apache2/bin/apachectl -k start "
It gave " httpd: Could not open configuration file /usr/conf/httpd.conf: No such file or directory ".
You are probably wanting to use /usr/local/apache2/conf/httpd.conf instead.
What results do you get from sudo /usr/local/apache2/bin/apachectl -V ?
Look inside /usr/local/apache2/bin/apachectl
What is the variable HTTPD set to?
You could try using sudo /usr/local/apache2/bin/apachectl -k start -f /usr/local/apache2/conf/httpd.conf
to override the config file location.
See the following links for further options on the apachectl or httpd commands:
- http://httpd.apache.org/docs/2.4/programs/apachectl.html
- http://httpd.apache.org/docs/2.4/programs/httpd.html
Thanks,
Mike Rumph
On 3/31/2015 3:36 AM, Padmahas Bn wrote:
Thank you.But its giving " httpd: Could not open configuration file /usr/conf/httpd.conf: No such file or directory ".So I supplied full path using " sudo /usr/local/apache2/bin/apachectl -k start "Now when I run the server from /usr/local/apache2 using " sudo apachectl -k start " it says sudo: apachectl: command not foundInstead of having 2 installations I thought of removing the one installed inside /usr and deleted all files manually and carefully from all sub folders of /usr.Now I cd to /usr/local/apache2/bin and run sudo apachectl -k start and the apache server was started successfully. Only later I came to know the server is running from the /usr files installed at first time.Hence I again installed without specifying --prefix option which does installed the apache2 into /usr/local/apache2.Later I came to know if prefix is not mentioned for apache2.4 installation, it will be installed inside /usr/local/apache2 by default.Both were installed successfully. Hence I installed apache 2.4 to the same path ("/usr") using --prefix option while running "./configure" .If anyone finds this as a big question please let me know. I'll precise my problem.I installed apr and apr-utils package in the path "/usr" using the --prefix option.
Steps I followed: