Apache httpd setup and installation

ApacheApr

Apache Problem Overview


This is my first time I am trying to install Apache HTTP server locally in my box as a regular user (non-root).

I have downloaded Apache 2.4.1 version of Apache HTTP server [http://httpd.apache.org/download.cgi]. However when I am trying to build and install locally in my box I am getting below error:

httpd/httpd-2.4.1 1059> ./configure
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu

Configuring Apache Portable Runtime library ...

checking for APR... no
configure: error: APR not found.  Please read the documentation.

I am not sure what dependency it is looking for - I mean the download package does not contains it? What I need to do to build / deploy Apache HTTP server?

Thanks in advance.

Apache Solutions


Solution 1 - Apache

When it tells you Please read documentation it means that you should go read Apache documentation ( http://httpd.apache.org/docs/2.4/install.html ) which tells you to

> download the latest versions of both APR and APR-Util from Apache APR, > unpack them into ./srclib/apr and ./srclib/apr-util (be sure the > domain names do not have version numbers; for example, the APR > distribution must be under ./srclib/apr/)

then do

./configure --with-included-apr

Solution 2 - Apache

For Ubuntu 11.10 this option seems to be working well:

 # APR

wget http://mirrors.axint.net/apache//apr/apr-1.4.6.tar.gz

tar -xvzf apr-1.4.6.tar.gz

cd apr-1.4.6/

./configure

make

make install

cd ..

# APR Utils

wget http://mirrors.axint.net/apache//apr/apr-util-1.4.1.tar.gz

tar -xvzf apr-util-1.4.1.tar.gz

cd apr-util-1.4.1

./configure --with-apr=/usr/local/apr

make

make install

cd ..

# Apache

wget http://apache.petsads.us//httpd/httpd-2.4.1.tar.gz

tar -xvzf httpd-2.4.1.tar.gz

cd httpd-2.4.1

./configure --enable-file-cache --enable-cache --enable-disk-cache --enable-mem-cache --enable-deflate --enable-expires --enable-headers --enable-usertrack --enable-ssl --enable-cgi --enable-vhost-alias --enable-rewrite --enable-so --with-apr=/usr/local/apr/

make

make install

cd ..

You can find more about it below

Source: VaporCreations.com

Solution 3 - Apache

If you have Debian/Ubuntu you can just:

apt-get install libapr1-dev libaprutil1-dev

Then ./configure

Done

Solution 4 - Apache

Here are the steps of how I installed apache-httpd on a non-root users:

  1. Download and extract apache-httpd-2.4.2 (but before ./configuring, making and installing it, follow the steps below:)
  2. Download and extract APR & APR-UTIL into "./srclib/apr" & "./srclib/apr-util" folders. This requires ./configure --with-apr=./apache/httpd-2.4.2/srclib/apr (and) --with-included-apr (options).
  3. Download, extract, ./configure (with) --prefix=localURL, make and make install PCRE into "./pcre" folder. This requires ./configure --with-pcre=/home/username/apache/pcre (option).
  4. Configure apache-httpd by entring following command (I like to enable certain options as written in the command below): ./configure --enable-file-cache --enable-cache --enable-disk-cache --enable-mem-cache --enable-deflate --enable-expires --enable-headers --enable-usertrack --enable-cgi --enable-vhost-alias --enable-rewrite --enable-so --with-apr=/home/username/apache/httpd-2.4.2/srclib/apr --prefix=/home/username/apache/httpd-2.4.2/ --with-included-apr --with-pcre=/home/username/apache/pcre Note: When configuring apache-httpd, use option "--enable-ssl" ONLY if OpenSSL is installed otherwise DON'T enable it.
  5. Now on the command-line, enter 'make' and 'make install' command.
  6. Open and configure the 'httpd.conf' file e.g.: "vi /home/eddie_kumar/apache/httpd-2.4.2/conf/httpd.conf"

> IMPORTANT: don't forget to change the default port from 80 to something else e.g. 8080, this is especially important for non-root > user. (How to? open httpd.conf -> search "Listen 80" -> change it > to "Listen 8080".

And that's it, now open your browser enter "localhost:8080", it should display "It works!".

Solution 5 - Apache

If you are using fedora, you can use yum to install APR, APR-Util and PCRE. You'll also need to download apr-devel, apr-util-devel and pcre-devel.

That being said, you can just run the following command on your terminal and no more "configure: error: APR not found.. ..APR-Util and PCRE" errors.

yum -y install arp apr-devel apr-util apr-util-devel pcre pcre-devel 

I'm using fedora 17 and planning on using a shell script to setup apache 2.4.3. So yum works pretty slick instead of manually downloading apr, apr-util, and pcre.

Solution 6 - Apache

1, You need APR (apache portable runtime), which is core component of apache web server

2, If you wnat to do make install, you may need root account

3, Even if not, apache can not start to listen on unprivileged port (lower then 1024) without root account

4, gain root or ask someone with root to install apache from official repo(I don;t know which distro you run) like using yum, apt-get, etc...

Solution 7 - Apache

Apr or pcre related errors require the source to be downloaded and Apache HTTPD "configure" process needs to be made aware of these source locations on your file system. For instance: if you downloaded the source for APR at ./srclib (relative to apache httpd) then you would use
--with-included-apr
as the configure option.

On the other hand if you want to not build but install APR / APR-UTIL, then you need the following on CentOS / RedHat:
yum install apr-util-devel apr-devel
However it might so happen that the APR version provided by yum does not match what is expected by this version of Apache httpd. In that case you could download APR and APR-UTIL and use the --with-included-apr option.

You could also build PCRE utilizing the same "configure, make, make install" process and then continue where you left off building Apache httpd.
Or you could install pcre: yum install pcre-devel

If while building PCRE: you see "compile: unrecognized option" then perhaps you would need other dependencies as well: Please see the details at:
http://khanna111.com/wordPressBlog/2012/09/11/94087-2/
It also covers "mod_deflate" and "zlib" as well.

Solution 8 - Apache

Basic steps

tar -xvf httpd-2.4.1-customized.tar -C ../
#Balancer folder will be created
tar -xvzf openssl-1.0.1.tar.gz  -C /balancer/
cd ->/balancer/openssl-1.0.1
./config --prefix=/usr/local/ssl/ shared zlib-dynamic enable-camellia
make depend
make
make install
tar -xvzf pcre-8.30.tar.gz -C ../balancer/

/balancer/pcre-8.30
./configure  --prefix=/usr/local/pcre/
make
make install

remove pcre and openssl

Solution 9 - Apache

Installing and compiling the Apache server on Ubuntu machine

step 1:Install the Java JDK

sudo apt install openjdk-11-jdk

sudo gedit /etc/environment

JAVA_HOME="/usr/lib/jvm/openjdk-11"

source /etc/environment

echo $JAVA_HOME

verify the java version

javac --version

**** install Other required packages:**

  sudo apt-get install apache2-dev -y 

sudo apt-get install libpcre3 libpcre3-dev

Step 2 :To Install Apache HTTP Server

#1 For ubuntu ,install development tools including the C compiler:

sudo apt-get install build-essential checkinstall

#2 Download and Extract the required files

assuming that all the files have been downloaded into the ~/Downloads directory

Download the Apache HTTP Server httpd-2.4.41.tar.gz from Apache download page (https://httpd.apache.org/download.cgi)

and following required libraries for compiling the apache HTTP server:

*Read Requirements Section(http://httpd.apache.org/docs/2.4/install.html)

#3 Extract the tar files

  • tar -xvf httpd-2.4.41.tar.gz
  • tar -xvf apr-1.7.0.tar.gz
  • tar -xvf apr-util-1.6.1.tar.gz
  • tar -xvf pcre2-10.34.tar.gz

after extraction you should see following list of directories in ~/Downloads

  • httpd-2.4.41
  • apr-1.7.0
  • apr-util-1.6.1
  • pcre2-10.34

#4 Create a directory for the apache HTTP Server

*make sure to give all rights to this directory so that while compiling files can be read/written

 sudo mkdir /home{your username here}/apache

To give all permissions to a apache directory :

sudo chmod -R 777 /home{your username here}/apache

#5 copy the arp and arp-util directory into the ~/Downloads/httpd-2.4.41/srclib/

cd ~/Downloads

mv  apr-util-1.6.1  ~/Downloads/httpd-2.4.41/srclib/apr-util

 mv  apr-1.7.0  ~/Downloads/httpd-2.4.41/srclib/apr

#6 Configure the sources for compilation. The --prefix option can be used to install the Web server in a location where you can write files.

cd ~/Downloads/httpd-2.4.41/


./configure  --prefix=/home/{username here}/apache --with-pcre=~/Downloads/pcre2-10.34

NOTE: If you have some problems while running above command,you can also try

insallting pcre in /usr/local/pcre, using

./configure --prefix=/usr/local/pcre make sudo make install

commands and then by running folllowing commands:

   cd ~/Downloads/httpd-2.4.41/

./configure --prefix=/home/{username here}/apache --with-pcre=/usr/local/pcre

make

  sudo make install

If you still face some problems ,make sure that ~/apache and its nested directory have read/write permissions. if not run **sudo chmod -R 777 /home{your username here}/apache** command again.

#7 Compile Apache HTTP Server.

cd ~/Downloads/httpd-2.2.25

sudo make

#8 Install Apache HTTP Server.

cd ~/Downloads/httpd-2.2.25

sudo make install

Optional #9 To Prepare Your Hosts File

sudo gedit /etc/hosts

27.0.0.1 localhost www.example.com

sudo gedit /home/{your username here}/apache/conf/httpd.conf

and copy:

Listen 8000

ServerName www.example.com:8000

#10 Test the installation to ensure Apache HTTP Server is working.

/home/{your username here}//apache/bin/apachectl -k start

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionProgrammerView Question on Stackoverflow
Solution 1 - ApacheOleg MikheevView Answer on Stackoverflow
Solution 2 - ApacheVaporCreationsView Answer on Stackoverflow
Solution 3 - ApacheshrimpwagonView Answer on Stackoverflow
Solution 4 - ApacheEddieView Answer on Stackoverflow
Solution 5 - ApachesajinshresthaView Answer on Stackoverflow
Solution 6 - ApacherkosegiView Answer on Stackoverflow
Solution 7 - ApacheKhanna111View Answer on Stackoverflow
Solution 8 - ApacheHarsimranjit Singh KlerView Answer on Stackoverflow
Solution 9 - ApacherafiquenazirView Answer on Stackoverflow