How to install Apache from source code
To install the latest version of Apache Web Server from source code, go to the apache website, download the latest source code .tar.gz file.
https://httpd.apache.org/download.cgi
At the time of writing this, the latest version was Apache HTTP Server 2.4.52.
cd /usr/local/src wget --no-check-certificate https://dlcdn.apache.org//httpd/httpd-2.4.52.tar.gz tar xvf httpd-2.4.52.tar.gz cd /usr/local/src/httpd-2.4.52 ./configure --prefix=/usr/local/apache --enable-proxy --enable-proxy-connect --enable-proxy-fcgi --enable-remoteip make make install
If you get an error related to APR
checking for APR... no configure: error: APR not found. Please read the documentation.
Install APR with
For RHEL
yum -y install apr-devel apr-util-devel
For Ubuntu/Debian
apt install libapr1-dev libaprutil1-dev libpcre3-dev build-essential
To start Apache, use the command
/usr/local/apache/bin/apachectl start
To stop
/usr/local/apache/bin/apachectl stop
Apache config files are located at
/usr/local/apache/conf/httpd.conf
Create Apache Service file
?
Create file
vi /usr/lib/systemd/system/apache2.serviceWith the following content[Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/apache/bin/apachectl start ExecReload=/usr/local/apache/bin/apachectl graceful ExecStop=/usr/local/apache/bin/apachectl graceful-stop LimitNOFILE=65535 [Install] WantedBy=multi-user.targetEnable and start Apache service with
systemctl daemon-reload systemctl enable apache2 systemctl restart apache2To enable Apache module, you can edit file /usr/local/apache/conf/httpd.conf
Here are sed commands to enable some common apache modules
sed -i 's/^#LoadModule proxy_module/LoadModule proxy_module/g' /usr/local/apache/conf/httpd.conf sed -i 's/^#LoadModule proxy_fcgi_module/LoadModule proxy_fcgi_module/g' /usr/local/apache/conf/httpd.conf sed -i 's/^#LoadModule ssl_module/LoadModule ssl_module/g' /usr/local/apache/conf/httpd.conf sed -i 's/^#LoadModule rewrite_module/LoadModule rewrite_module/g' /usr/local/apache/conf/httpd.conf