{"id":940,"date":"2016-10-11T06:54:03","date_gmt":"2016-10-11T04:54:03","guid":{"rendered":"http:\/\/www.netnea.com\/cms\/?page_id=940"},"modified":"2026-01-16T16:07:23","modified_gmt":"2026-01-16T15:07:23","slug":"apache-tutorial-1_compiling-apache","status":"publish","type":"page","link":"https:\/\/www.netnea.com\/cms\/apache-tutorial-1_compiling-apache\/","title":{"rendered":"Compiling Apache"},"content":{"rendered":"\n<h2 id=\"compiling-an-apache-web-server\">Compiling an Apache web server<\/h2>\n<h3 id=\"what-are-we-doing\">What are we doing?<\/h3>\n<p>We\u2019re compiling an Apache web server for a test system.<\/p>\n<p>This tutorial is also available as a <a href=\"https:\/\/www.youtube.com\/watch?v=JdsWhVlU8i0\">video walk through<\/a>.<\/p>\n<h3 id=\"why-are-we-doing-this\">Why are we doing this?<\/h3>\n<p>In professional use of the web server it\u2019s very often the case that special requirements (security, additional debugging messages, special features from a new patch, etc.) force you to leave behind the distribution packages and quickly create some binaries on your own. In this case it\u2019s important for the infrastructure to be prepared and to already have experience compiling and running your own binaries on production systems. It\u2019s also easier to work with self-compiled Apache in a laboratory-like setup, which is also beneficial in terms of debugging.<\/p>\n<h3 id=\"step-1-preparing-the-directory-tree-for-the-source-code\">Step 1: Preparing the directory tree for the source code<\/h3>\n<p>It\u2019s not all that important where the source code is located. The following is a recommendation based on the <a href=\"http:\/\/www.pathname.com\/fhs\/\">File Hierarchy Standard<\/a>. The FHS defines the path structure of a Unix system; the structure for all stored files. Note that in the second command <code>whoami<\/code> evaluates to the username and not root (despite <code>sudo<\/code>).<\/p>\n<p>Create folder:<\/p>\n<p><code>sudo mkdir \/usr\/src\/apache<\/code><\/p>\n<p>Take ownership of folder:<\/p>\n<p><code>sudo chown $(whoami) \/usr\/src\/apache<\/code><\/p>\n<p>Change directory to the folder:<\/p>\n<p><code>cd \/usr\/src\/apache<\/code><\/p>\n<h3 id=\"step-2-meeting-the-requirements-for-apr-and-apr-util\">Step 2: Meeting the requirements for apr and apr-util<\/h3>\n<p>Since the release of version 2.4, the Apache web server comes without two important libraries that used to be part of the distribution. We now have to install <code>apr<\/code> and <code>apr-util<\/code> ourselves before being able to compile Apache. <code>apr<\/code> is the Apache Portable Runtime library. It adds additional features to the normal set of C libraries typically needed by server software. They include features for managing hash tables and arrays. These libraries aren\u2019t used by the Apache web server alone, but also by other Apache Software Foundation projects, which is why they were removed from Apache\u2019s source code. Like <code>apr<\/code>, <code>apr-util<\/code> is part of the Portable Runtime libraries supplemented by <code>apr-util<\/code>.<\/p>\n<p>Let\u2019s start with <em>apr<\/em> and download the package.<\/p>\n<div class=\"sourceCode\" id=\"cb1\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb1-1\"><a href=\"#cb1-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">wget<\/span> https:\/\/archive.apache.org\/dist\/apr\/apr-1.7.6.tar.bz2<\/span><\/code><\/pre><\/div>\n<p>We\u2019ll now download the checksum of the source code file from Apache. We\u2019ll verify the integrity of the source code we downloaded that way. For better security we\u2019ll be using a secure connection for downloading. Without https this verification doesn\u2019t make much sense. Both files, the source code and the small checksum file, should be placed together in <code>\/usr\/src\/apache<\/code>. We can now verify the checksum:<\/p>\n<div class=\"sourceCode\" id=\"cb2\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb2-1\"><a href=\"#cb2-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">wget<\/span> https:\/\/archive.apache.org\/dist\/apr\/apr-1.7.6.tar.bz2.sha256<\/span>\n<span id=\"cb2-2\"><a href=\"#cb2-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"ex\">sha256sum<\/span> --check apr-1.7.6.tar.bz2.sha256<\/span>\n<span id=\"cb2-3\"><a href=\"#cb2-3\" aria-hidden=\"true\"><\/a><span class=\"ex\">apr-1.7.6.tar.bz2<\/span>: OK<\/span><\/code><\/pre><\/div>\n<p>The test should not result in any problems, <em>OK<\/em>. We can now continue with unpacking, pre-configuring and compiling <em>apr<\/em>.<\/p>\n<div class=\"sourceCode\" id=\"cb3\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb3-1\"><a href=\"#cb3-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">tar<\/span> -xvjf apr-1.7.6.tar.bz2<\/span>\n<span id=\"cb3-2\"><a href=\"#cb3-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"bu\">cd<\/span> apr-1.7.6<\/span>\n<span id=\"cb3-3\"><a href=\"#cb3-3\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"ex\">.\/configure<\/span> --prefix=\/usr\/local\/apr\/<\/span><\/code><\/pre><\/div>\n<p>After unpacking, we now change to the new directory containing the source code and start <em>configure<\/em>. This configures the compiler. We specify the installation path and <em>configure<\/em> gathers a variety of information and settings about our system. Sometimes, a warning about <code>libtoolT<\/code> is printed but it can be ignored. The configure command frequently complains about missing components. One thing is certain: Without a working compiler we will be unable to compile and it\u2019s configure\u2019s task to check whether everything is assembled correctly.<\/p>\n<p>Things typically missing:<\/p>\n<ul>\n<li>build-essential<\/li>\n<li>binutils<\/li>\n<li>gcc<\/li>\n<\/ul>\n<p>And once we are at it, let\u2019s install everything else we are going to need throughout this and the following tutorials:<\/p>\n<ul>\n<li>bzip2<\/li>\n<li>gawk<\/li>\n<li>libexpat1-dev<\/li>\n<li>libpcre3-dev<\/li>\n<li>libssl-dev<\/li>\n<li>libxml2-dev<\/li>\n<li>libyajl-dev<\/li>\n<li>nikto<\/li>\n<li>ruby<\/li>\n<li>ssl-cert<\/li>\n<li>uuid<\/li>\n<li>zlib1g-dev<\/li>\n<\/ul>\n<p>These are the package names on Debian-based distributions. The packages may have different names elsewhere. The absence of these files can be easily rectified by re-installing them using the utilities from your own distribution. Afterwards, run <em>configure<\/em> again, perhaps re-install something again and eventually the script will run successfully (individual warnings during the <em>configure<\/em> steps are no big problem. We just need to be sure the script did not die unexpectedly).<\/p>\n<p>Once it runs without a problem, we can assume that the time for compiling has come.<\/p>\n<div class=\"sourceCode\" id=\"cb4\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb4-1\"><a href=\"#cb4-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">make<\/span><\/span><\/code><\/pre><\/div>\n<p>This takes a moment after which we get the compiled <em>apr<\/em>, which we promptly install.<\/p>\n<div class=\"sourceCode\" id=\"cb5\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb5-1\"><a href=\"#cb5-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> make install<\/span><\/code><\/pre><\/div>\n<p>Once this is successful, we\u2019ll do the same with <em>apr-util<\/em>.<\/p>\n<div class=\"sourceCode\" id=\"cb6\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb6-1\"><a href=\"#cb6-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"bu\">cd<\/span> \/usr\/src\/apache<\/span>\n<span id=\"cb6-2\"><a href=\"#cb6-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">wget<\/span> https:\/\/archive.apache.org\/dist\/apr\/apr-util-1.6.3.tar.bz2<\/span>\n<span id=\"cb6-3\"><a href=\"#cb6-3\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">wget<\/span> https:\/\/archive.apache.org\/dist\/apr\/apr-util-1.6.3.tar.bz2.sha256<\/span>\n<span id=\"cb6-4\"><a href=\"#cb6-4\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"ex\">sha256sum<\/span> --check apr-util-1.6.3.tar.bz2.sha256<\/span>\n<span id=\"cb6-5\"><a href=\"#cb6-5\" aria-hidden=\"true\"><\/a><span class=\"ex\">apr-util-1.6.3.tar.bz2<\/span>: OK<\/span>\n<span id=\"cb6-6\"><a href=\"#cb6-6\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">tar<\/span> -xvjf apr-util-1.6.3.tar.bz2<\/span>\n<span id=\"cb6-7\"><a href=\"#cb6-7\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"bu\">cd<\/span> apr-util-1.6.3<\/span>\n<span id=\"cb6-8\"><a href=\"#cb6-8\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"ex\">.\/configure<\/span> --prefix=\/usr\/local\/apr\/ --with-apr=\/usr\/local\/apr\/<\/span>\n<span id=\"cb6-9\"><a href=\"#cb6-9\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">make<\/span><\/span>\n<span id=\"cb6-10\"><a href=\"#cb6-10\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> make install<\/span><\/code><\/pre><\/div>\n<p>Once this works in both cases we\u2019re ready for the web server itself.<\/p>\n<h3 id=\"step-3-downloading-the-apache-source-code-and-verifying-the-checksum\">Step 3: Downloading the Apache source code and verifying the checksum<\/h3>\n<p>We\u2019ll now download the program code from the internet. This can be done by downloading it directly from <a href=\"https:\/\/httpd.apache.org\/\">Apache<\/a> in a browser or, to save the Apache Project\u2019s bandwidth, by using wget to get it from a mirror.<\/p>\n<div class=\"sourceCode\" id=\"cb7\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb7-1\"><a href=\"#cb7-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"bu\">cd<\/span> \/usr\/src\/apache<\/span>\n<span id=\"cb7-2\"><a href=\"#cb7-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">wget<\/span> https:\/\/archive.apache.org\/dist\/httpd\/httpd-2.4.66.tar.bz2<\/span><\/code><\/pre><\/div>\n<p>The compressed source code is approximately 5 MB in size.<\/p>\n<p>We\u2019ll now download the checksum of the source code file from Apache. At least it\u2019s available as a <em>sha1 checksum<\/em>. We\u2019ll again be using a secure connection for better security. Without https this verification doesn\u2019t make much sense.<\/p>\n<div class=\"sourceCode\" id=\"cb8\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb8-1\"><a href=\"#cb8-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">wget<\/span> https:\/\/archive.apache.org\/dist\/httpd\/httpd-2.4.66.tar.bz2.sha256<\/span>\n<span id=\"cb8-2\"><a href=\"#cb8-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"ex\">sha256sum<\/span> --check httpd-2.4.66.tar.bz2.sha256<\/span>\n<span id=\"cb8-3\"><a href=\"#cb8-3\" aria-hidden=\"true\"><\/a><span class=\"ex\">httpd-2.4.66.tar.bz2<\/span>: OK<\/span><\/code><\/pre><\/div>\n<h3 id=\"step-4-unpacking-and-configuring-the-compiler\">Step 4: Unpacking and configuring the compiler<\/h3>\n<p>After verification we can unpack the package.<\/p>\n<div class=\"sourceCode\" id=\"cb9\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb9-1\"><a href=\"#cb9-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">tar<\/span> -xvjf httpd-2.4.66.tar.bz2<\/span><\/code><\/pre><\/div>\n<p>This results in approximately 38 MB.<\/p>\n<p>We now enter the directory and configure the compiler with our entries and with information about our system. Unlike <em>apr<\/em>, our entries are very extensive.<\/p>\n<div class=\"sourceCode\" id=\"cb10\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb10-1\"><a href=\"#cb10-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"bu\">cd<\/span> httpd-2.4.66<\/span>\n<span id=\"cb10-2\"><a href=\"#cb10-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"ex\">.\/configure<\/span> --prefix=\/opt\/apache-2.4.66  --with-apr=\/usr\/local\/apr\/bin\/apr-1-config <span class=\"kw\">\\<\/span><\/span>\n<span id=\"cb10-3\"><a href=\"#cb10-3\" aria-hidden=\"true\"><\/a>   <span class=\"ex\">--with-apr-util<\/span>=\/usr\/local\/apr\/bin\/apu-1-config <span class=\"kw\">\\<\/span><\/span>\n<span id=\"cb10-4\"><a href=\"#cb10-4\" aria-hidden=\"true\"><\/a>   <span class=\"ex\">--enable-mpms-shared<\/span>=event <span class=\"kw\">\\<\/span><\/span>\n<span id=\"cb10-5\"><a href=\"#cb10-5\" aria-hidden=\"true\"><\/a>   <span class=\"ex\">--enable-mods-shared<\/span>=all <span class=\"kw\">\\<\/span><\/span>\n<span id=\"cb10-6\"><a href=\"#cb10-6\" aria-hidden=\"true\"><\/a>   <span class=\"ex\">--enable-nonportable-atomics<\/span>=yes<\/span><\/code><\/pre><\/div>\n<p>This is where we define the target directory for the future Apache web server, again compiling in compliance with the <em>FHS<\/em>. Following this, there are two options for linking the two libraries installed as a precondition. We use <code>--enable-mpms-shared<\/code> to select a process model for the server. Simply put, this is like an engine type: gasoline (petrol) or diesel. In our case, <code>event<\/code>, <code>worker<\/code>, <code>prefork<\/code> and a few experimental engines are available. In this case we\u2019ll take the <code>event<\/code> model, which is the new standard in 2.4 and has significantly better performance over the other architectures. In the 2.0 and 2.2 version lines there was significantly more to consider besides performance, but this set of problems has been significantly defused since 2.4 and it\u2019s best for us to continue with <code>event<\/code>. More information about the different process models (<em>MPMs<\/em>) is available from the Apache Project.<\/p>\n<p>We then define that we want all (<em>all<\/em>) modules to be compiled. Of note here is that <em>all<\/em> does not really mean all. For historical reasons <em>all<\/em> means only all of the core modules, of which there are quite a few. The <em>shared<\/em> keyword indicates that we would like to have the modules compiled separately in order to then be able to link them as optional modules. And lastly, <code>enable-nonportable-atomics<\/code> is a compiler flag which instructs the compiler to use special options which are available only on modern x86 processors and have a favorable impact on performance.<\/p>\n<p>When executing the <em>configure<\/em> command for the web server, it may be necessary to install additional packages. However, if you have installed all those named in the second step, you should be covered.<\/p>\n<h3 id=\"step-5-compiling\">Step 5: Compiling<\/h3>\n<p>Once <em>configure<\/em> is completed, we are ready for the compiler. Nothing should go wrong any longer at this point.<\/p>\n<div class=\"sourceCode\" id=\"cb11\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb11-1\"><a href=\"#cb11-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">make<\/span><\/span><\/code><\/pre><\/div>\n<p>This takes some time and 38 MB becomes just under 100 MB.<\/p>\n<h3 id=\"step-6-installing\">Step 6: Installing<\/h3>\n<p>When compiling is successful, we then install the Apache web server we built ourselves. Installation must be performed by the super user. But right afterwards we\u2019ll see how we can again take ownership of the web server. This is much more practical for a test system.<\/p>\n<div class=\"sourceCode\" id=\"cb12\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb12-1\"><a href=\"#cb12-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> make install<\/span><\/code><\/pre><\/div>\n<p>Installation may also take some time.<\/p>\n<div class=\"sourceCode\" id=\"cb13\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb13-1\"><a href=\"#cb13-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> chown -R <span class=\"kw\">`<\/span><span class=\"fu\">whoami<\/span><span class=\"kw\">`<\/span> \/opt\/apache-2.4.66<\/span><\/code><\/pre><\/div>\n<p>And now for a trick: If you work professionally with Apache then you often have several different versions on the test server. Different versions, different patches, other modules, etc. result in tedious and long pathnames with version numbers and other descriptions. To ease things, I create a soft link from <code>\/apache<\/code> to the current Apache web server when I switch to a new version. Care must be given that we and not the root user are the owners of the soft link (this is important in configuring the server).<\/p>\n<div class=\"sourceCode\" id=\"cb14\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb14-1\"><a href=\"#cb14-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> ln -s \/opt\/apache-2.4.66 \/apache<\/span>\n<span id=\"cb14-2\"><a href=\"#cb14-2\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> chown <span class=\"kw\">`<\/span><span class=\"fu\">whoami<\/span><span class=\"kw\">`<\/span> --no-dereference \/apache<\/span>\n<span id=\"cb14-3\"><a href=\"#cb14-3\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"bu\">cd<\/span> \/apache<\/span><\/code><\/pre><\/div>\n<p>Our web server now has a pathname clearly describing it by version number. We will however simply use <code>\/apache<\/code> for access. This makes work easier.<\/p>\n<h3 id=\"step-7-starting\">Step 7: Starting<\/h3>\n<p>Now let\u2019s see if our server will start up. For the moment, this again has to be done by the super user:<\/p>\n<div class=\"sourceCode\" id=\"cb15\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb15-1\"><a href=\"#cb15-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> .\/bin\/httpd -X<\/span><\/code><\/pre><\/div>\n<p>Another trick for test operation: Apache is actually a daemon running as a background process. However, for simple tests this can be quite bothersome, because we have to continually start, stop, reload and otherwise manipulate the daemon. The -X option tells Apache that it can do without the daemon and start as a single process\/thread in the foreground. This also simplifies the work.<\/p>\n<p>There is likely to be a warning when starting:<\/p>\n<div class=\"sourceCode\" id=\"cb16\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb16-1\"><a href=\"#cb16-1\" aria-hidden=\"true\"><\/a><span class=\"ex\">AH00558<\/span>: httpd: Could not reliably determine the server<span class=\"st\">&#39;s fully qualified domain name, using \u2026<\/span><\/span>\n<span id=\"cb16-2\"><a href=\"#cb16-2\" aria-hidden=\"true\"><\/a><span class=\"st\">1.7.6.1.1. Set the &#39;<\/span>ServerName<span class=\"st\">&#39; directive globally to suppress this message<\/span><\/span><\/code><\/pre><\/div>\n<p>This is unimportant and we can ignore the warning for the time being.<\/p>\n<h3 id=\"step-8-trying-it-out\">Step 8: Trying it out<\/h3>\n<p>The engine is running. But is it also working? Time for the function test: We access Apache by entering the following URL with the IP address of your host into our browser (i.e.\u00a0replace the <code>1.7.6.0.1<\/code> with the server IP address unless you are working on localhost like me):<\/p>\n<p><a href=\"http:\/\/1.7.6.0.1\/index.html\">http:\/\/1.7.6.0.1\/index.html<\/a><\/p>\n<p>We then expect the following:<\/p>\n<figure>\n<img decoding=\"async\" src=\"https:\/\/www.netnea.com\/files\/apache-tutorial-1-screenshot-it-works.png\" alt=\"\" \/><figcaption>Screenshot: It works!<\/figcaption>\n<\/figure>\n<p>Apache shows the first signs of life in the browser.<\/p>\n<p>Fantastic! Goal achieved: The self-compiled Apache is running.<\/p>\n<p>Return to the shell and stop the server via CTRL-C.<\/p>\n<h3 id=\"step-9-goodie-inspecting-the-binaries-and-the-modules\">Step 9 (Goodie): Inspecting the binaries and the modules<\/h3>\n<p>Before completing the tutorial, we\u2019d like to take a closer look at the server. Let\u2019s open the engine compartment and take a peek inside. We can get information about our binary as follows:<\/p>\n<div class=\"sourceCode\" id=\"cb17\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb17-1\"><a href=\"#cb17-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> .\/bin\/httpd -V<\/span><\/code><\/pre><\/div>\n<div class=\"sourceCode\" id=\"cb18\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb18-1\"><a href=\"#cb18-1\" aria-hidden=\"true\"><\/a><span class=\"ex\">Server<\/span> version: Apache\/2.4.66 (Unix)<\/span>\n<span id=\"cb18-2\"><a href=\"#cb18-2\" aria-hidden=\"true\"><\/a><span class=\"ex\">Server<\/span> built:   March 10 2023 13:32:29<\/span>\n<span id=\"cb18-3\"><a href=\"#cb18-3\" aria-hidden=\"true\"><\/a><span class=\"ex\">Server<\/span><span class=\"st\">&#39;s Module Magic Number: 20120211:83<\/span><\/span>\n<span id=\"cb18-4\"><a href=\"#cb18-4\" aria-hidden=\"true\"><\/a><span class=\"st\">Server loaded:  APR 1.7.6, APR-UTIL 1.6.3<\/span><\/span>\n<span id=\"cb18-5\"><a href=\"#cb18-5\" aria-hidden=\"true\"><\/a><span class=\"st\">Compiled using: APR 1.7.6, APR-UTIL 1.6.3<\/span><\/span>\n<span id=\"cb18-6\"><a href=\"#cb18-6\" aria-hidden=\"true\"><\/a><span class=\"st\">Architecture:   64-bit<\/span><\/span>\n<span id=\"cb18-7\"><a href=\"#cb18-7\" aria-hidden=\"true\"><\/a><span class=\"st\">Server MPM<\/span><\/span>\n<span id=\"cb18-8\"><a href=\"#cb18-8\" aria-hidden=\"true\"><\/a><span class=\"st\">Server compiled with....<\/span><\/span>\n<span id=\"cb18-9\"><a href=\"#cb18-9\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D APR_HAS_SENDFILE<\/span><\/span>\n<span id=\"cb18-10\"><a href=\"#cb18-10\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D APR_HAS_MMAP<\/span><\/span>\n<span id=\"cb18-11\"><a href=\"#cb18-11\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)<\/span><\/span>\n<span id=\"cb18-12\"><a href=\"#cb18-12\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D APR_USE_SYSVSEM_SERIALIZE<\/span><\/span>\n<span id=\"cb18-13\"><a href=\"#cb18-13\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D APR_USE_PTHREAD_SERIALIZE<\/span><\/span>\n<span id=\"cb18-14\"><a href=\"#cb18-14\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT<\/span><\/span>\n<span id=\"cb18-15\"><a href=\"#cb18-15\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D APR_HAS_OTHER_CHILD<\/span><\/span>\n<span id=\"cb18-16\"><a href=\"#cb18-16\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D AP_HAVE_RELIABLE_PIPED_LOGS<\/span><\/span>\n<span id=\"cb18-17\"><a href=\"#cb18-17\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D DYNAMIC_MODULE_LIMIT=256<\/span><\/span>\n<span id=\"cb18-18\"><a href=\"#cb18-18\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D HTTPD_ROOT=&quot;\/opt\/apache-2.4.66&quot;<\/span><\/span>\n<span id=\"cb18-19\"><a href=\"#cb18-19\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D SUEXEC_BIN=&quot;\/opt\/apache-2.4.66\/bin\/suexec&quot;<\/span><\/span>\n<span id=\"cb18-20\"><a href=\"#cb18-20\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D DEFAULT_PIDLOG=&quot;logs\/httpd.pid&quot;<\/span><\/span>\n<span id=\"cb18-21\"><a href=\"#cb18-21\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D DEFAULT_SCOREBOARD=&quot;logs\/apache_runtime_status&quot;<\/span><\/span>\n<span id=\"cb18-22\"><a href=\"#cb18-22\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D DEFAULT_ERRORLOG=&quot;logs\/error_log&quot;<\/span><\/span>\n<span id=\"cb18-23\"><a href=\"#cb18-23\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D AP_TYPES_CONFIG_FILE=&quot;conf\/mime.types&quot;<\/span><\/span>\n<span id=\"cb18-24\"><a href=\"#cb18-24\" aria-hidden=\"true\"><\/a><span class=\"st\"> -D SERVER_CONFIG_FILE=&quot;conf\/httpd.conf&quot;<\/span><\/span><\/code><\/pre><\/div>\n<p>Because we specified the version when we compiled, <code>apr<\/code> is mentioned and the <code>event<\/code> <em>MPM<\/em> appears further below. Incidentally, at the very bottom we see a reference to the web server\u2019s default configuration file and a bit above this the path we can use to find the default <em>error-log<\/em>.<\/p>\n<p>You can however get even more information from the system and inquire about the modules compiled firmly into the server.<\/p>\n<div class=\"sourceCode\" id=\"cb19\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb19-1\"><a href=\"#cb19-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">sudo<\/span> .\/bin\/httpd -l<\/span><\/code><\/pre><\/div>\n<div class=\"sourceCode\" id=\"cb20\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb20-1\"><a href=\"#cb20-1\" aria-hidden=\"true\"><\/a><span class=\"ex\">Compiled<\/span> in modules:<\/span>\n<span id=\"cb20-2\"><a href=\"#cb20-2\" aria-hidden=\"true\"><\/a>  <span class=\"ex\">core.c<\/span><\/span>\n<span id=\"cb20-3\"><a href=\"#cb20-3\" aria-hidden=\"true\"><\/a>  <span class=\"ex\">mod_so.c<\/span><\/span>\n<span id=\"cb20-4\"><a href=\"#cb20-4\" aria-hidden=\"true\"><\/a>  <span class=\"ex\">http_core.c<\/span><\/span><\/code><\/pre><\/div>\n<p>This and the information above can be helpful for debugging and useful when submitting bug reports. These are typically the first questions that the developer asks.<\/p>\n<p>The binary itself (<code>\/apache\/bin\/httpd<\/code>) is approx. 2.0 MB in size and the list of modules appears as follows:<\/p>\n<div class=\"sourceCode\" id=\"cb21\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb21-1\"><a href=\"#cb21-1\" aria-hidden=\"true\"><\/a>$<span class=\"op\">&gt;<\/span> <span class=\"fu\">ls<\/span> -lh modules<\/span><\/code><\/pre><\/div>\n<div class=\"sourceCode\" id=\"cb22\"><pre class=\"sourceCode bash\"><code class=\"sourceCode bash\"><span id=\"cb22-1\"><a href=\"#cb22-1\" aria-hidden=\"true\"><\/a><span class=\"ex\">total<\/span> 8.8M<\/span>\n<span id=\"cb22-2\"><a href=\"#cb22-2\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rw-r--r--<\/span> 1 myuser root    14K Mar  5 21:09 httpd.exp<\/span>\n<span id=\"cb22-3\"><a href=\"#cb22-3\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    36K Mar  5 21:16 mod_access_compat.so<\/span>\n<span id=\"cb22-4\"><a href=\"#cb22-4\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    34K Mar  5 21:17 mod_actions.so<\/span>\n<span id=\"cb22-5\"><a href=\"#cb22-5\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    49K Mar  5 21:17 mod_alias.so<\/span>\n<span id=\"cb22-6\"><a href=\"#cb22-6\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    31K Mar  5 21:17 mod_allowmethods.so<\/span>\n<span id=\"cb22-7\"><a href=\"#cb22-7\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    30K Mar  5 21:17 mod_asis.so<\/span>\n<span id=\"cb22-8\"><a href=\"#cb22-8\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    47K Mar  5 21:16 mod_auth_basic.so<\/span>\n<span id=\"cb22-9\"><a href=\"#cb22-9\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   102K Mar  5 21:16 mod_auth_digest.so<\/span>\n<span id=\"cb22-10\"><a href=\"#cb22-10\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    79K Mar  5 21:16 mod_auth_form.so<\/span>\n<span id=\"cb22-11\"><a href=\"#cb22-11\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    30K Mar  5 21:16 mod_authn_anon.so<\/span>\n<span id=\"cb22-12\"><a href=\"#cb22-12\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    39K Mar  5 21:16 mod_authn_core.so<\/span>\n<span id=\"cb22-13\"><a href=\"#cb22-13\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    43K Mar  5 21:16 mod_authn_dbd.so<\/span>\n<span id=\"cb22-14\"><a href=\"#cb22-14\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    33K Mar  5 21:16 mod_authn_dbm.so<\/span>\n<span id=\"cb22-15\"><a href=\"#cb22-15\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    33K Mar  5 21:16 mod_authn_file.so<\/span>\n<span id=\"cb22-16\"><a href=\"#cb22-16\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    54K Mar  5 21:16 mod_authn_socache.so<\/span>\n<span id=\"cb22-17\"><a href=\"#cb22-17\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    70K Mar  5 21:16 mod_authz_core.so<\/span>\n<span id=\"cb22-18\"><a href=\"#cb22-18\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    46K Mar  5 21:16 mod_authz_dbd.so<\/span>\n<span id=\"cb22-19\"><a href=\"#cb22-19\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    37K Mar  5 21:16 mod_authz_dbm.so<\/span>\n<span id=\"cb22-20\"><a href=\"#cb22-20\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    41K Mar  5 21:16 mod_authz_groupfile.so<\/span>\n<span id=\"cb22-21\"><a href=\"#cb22-21\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    37K Mar  5 21:16 mod_authz_host.so<\/span>\n<span id=\"cb22-22\"><a href=\"#cb22-22\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    31K Mar  5 21:16 mod_authz_owner.so<\/span>\n<span id=\"cb22-23\"><a href=\"#cb22-23\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    31K Mar  5 21:16 mod_authz_user.so<\/span>\n<span id=\"cb22-24\"><a href=\"#cb22-24\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   129K Mar  5 21:17 mod_autoindex.so<\/span>\n<span id=\"cb22-25\"><a href=\"#cb22-25\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_buffer.so<\/span>\n<span id=\"cb22-26\"><a href=\"#cb22-26\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   103K Mar  5 21:17 mod_cache_disk.so<\/span>\n<span id=\"cb22-27\"><a href=\"#cb22-27\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   229K Mar  5 21:17 mod_cache.so<\/span>\n<span id=\"cb22-28\"><a href=\"#cb22-28\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   108K Mar  5 21:17 mod_cache_socache.so<\/span>\n<span id=\"cb22-29\"><a href=\"#cb22-29\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   118K Mar  5 21:17 mod_cgid.so<\/span>\n<span id=\"cb22-30\"><a href=\"#cb22-30\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    68K Mar  5 21:17 mod_charset_lite.so<\/span>\n<span id=\"cb22-31\"><a href=\"#cb22-31\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    33K Mar  5 21:17 mod_data.so<\/span>\n<span id=\"cb22-32\"><a href=\"#cb22-32\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   221K Mar  5 21:17 mod_dav_fs.so<\/span>\n<span id=\"cb22-33\"><a href=\"#cb22-33\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    83K Mar  5 21:17 mod_dav_lock.so<\/span>\n<span id=\"cb22-34\"><a href=\"#cb22-34\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   395K Mar  5 21:17 mod_dav.so<\/span>\n<span id=\"cb22-35\"><a href=\"#cb22-35\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    71K Mar  5 21:17 mod_dbd.so<\/span>\n<span id=\"cb22-36\"><a href=\"#cb22-36\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   100K Mar  5 21:17 mod_deflate.so<\/span>\n<span id=\"cb22-37\"><a href=\"#cb22-37\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    36K Mar  5 21:17 mod_dialup.so<\/span>\n<span id=\"cb22-38\"><a href=\"#cb22-38\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    37K Mar  5 21:17 mod_dir.so<\/span>\n<span id=\"cb22-39\"><a href=\"#cb22-39\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    33K Mar  5 21:17 mod_dumpio.so<\/span>\n<span id=\"cb22-40\"><a href=\"#cb22-40\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    34K Mar  5 21:17 mod_echo.so<\/span>\n<span id=\"cb22-41\"><a href=\"#cb22-41\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    32K Mar  5 21:17 mod_env.so<\/span>\n<span id=\"cb22-42\"><a href=\"#cb22-42\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    44K Mar  5 21:17 mod_expires.so<\/span>\n<span id=\"cb22-43\"><a href=\"#cb22-43\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    74K Mar  5 21:17 mod_ext_filter.so<\/span>\n<span id=\"cb22-44\"><a href=\"#cb22-44\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    42K Mar  5 21:17 mod_file_cache.so<\/span>\n<span id=\"cb22-45\"><a href=\"#cb22-45\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    62K Mar  5 21:17 mod_filter.so<\/span>\n<span id=\"cb22-46\"><a href=\"#cb22-46\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    73K Mar  5 21:17 mod_headers.so<\/span>\n<span id=\"cb22-47\"><a href=\"#cb22-47\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    30K Mar  5 21:17 mod_heartbeat.so<\/span>\n<span id=\"cb22-48\"><a href=\"#cb22-48\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    79K Mar  5 21:17 mod_heartmonitor.so<\/span>\n<span id=\"cb22-49\"><a href=\"#cb22-49\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   163K Mar  5 21:17 mod_include.so<\/span>\n<span id=\"cb22-50\"><a href=\"#cb22-50\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    85K Mar  5 21:17 mod_info.so<\/span>\n<span id=\"cb22-51\"><a href=\"#cb22-51\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_lbmethod_bybusyness.so<\/span>\n<span id=\"cb22-52\"><a href=\"#cb22-52\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_lbmethod_byrequests.so<\/span>\n<span id=\"cb22-53\"><a href=\"#cb22-53\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_lbmethod_bytraffic.so<\/span>\n<span id=\"cb22-54\"><a href=\"#cb22-54\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    52K Mar  5 21:17 mod_lbmethod_heartbeat.so<\/span>\n<span id=\"cb22-55\"><a href=\"#cb22-55\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   103K Mar  5 21:17 mod_log_config.so<\/span>\n<span id=\"cb22-56\"><a href=\"#cb22-56\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    43K Mar  5 21:17 mod_log_debug.so<\/span>\n<span id=\"cb22-57\"><a href=\"#cb22-57\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    37K Mar  5 21:17 mod_log_forensic.so<\/span>\n<span id=\"cb22-58\"><a href=\"#cb22-58\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_logio.so<\/span>\n<span id=\"cb22-59\"><a href=\"#cb22-59\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   467K Mar  5 21:17 mod_lua.so<\/span>\n<span id=\"cb22-60\"><a href=\"#cb22-60\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    56K Mar  5 21:17 mod_macro.so<\/span>\n<span id=\"cb22-61\"><a href=\"#cb22-61\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    88K Mar  5 21:17 mod_mime_magic.so<\/span>\n<span id=\"cb22-62\"><a href=\"#cb22-62\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    60K Mar  5 21:17 mod_mime.so<\/span>\n<span id=\"cb22-63\"><a href=\"#cb22-63\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   184K Mar  5 21:16 mod_mpm_event.so<\/span>\n<span id=\"cb22-64\"><a href=\"#cb22-64\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   136K Mar  5 21:16 mod_mpm_worker.so<\/span>\n<span id=\"cb22-65\"><a href=\"#cb22-65\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   117K Mar  5 21:17 mod_negotiation.so<\/span>\n<span id=\"cb22-66\"><a href=\"#cb22-66\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   198K Mar  5 21:17 mod_proxy_ajp.so<\/span>\n<span id=\"cb22-67\"><a href=\"#cb22-67\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   139K Mar  5 21:17 mod_proxy_balancer.so<\/span>\n<span id=\"cb22-68\"><a href=\"#cb22-68\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    59K Mar  5 21:17 mod_proxy_connect.so<\/span>\n<span id=\"cb22-69\"><a href=\"#cb22-69\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    40K Mar  5 21:17 mod_proxy_express.so<\/span>\n<span id=\"cb22-70\"><a href=\"#cb22-70\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    77K Mar  5 21:17 mod_proxy_fcgi.so<\/span>\n<span id=\"cb22-71\"><a href=\"#cb22-71\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    40K Mar  5 21:17 mod_proxy_fdpass.so<\/span>\n<span id=\"cb22-72\"><a href=\"#cb22-72\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   131K Mar  5 21:17 mod_proxy_ftp.so<\/span>\n<span id=\"cb22-73\"><a href=\"#cb22-73\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   114K Mar  5 21:17 mod_proxy_html.so<\/span>\n<span id=\"cb22-74\"><a href=\"#cb22-74\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   121K Mar  5 21:17 mod_proxy_http.so<\/span>\n<span id=\"cb22-75\"><a href=\"#cb22-75\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    66K Mar  5 21:17 mod_proxy_scgi.so<\/span>\n<span id=\"cb22-76\"><a href=\"#cb22-76\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   357K Mar  5 21:17 mod_proxy.so<\/span>\n<span id=\"cb22-77\"><a href=\"#cb22-77\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    59K Mar  5 21:17 mod_proxy_wstunnel.so<\/span>\n<span id=\"cb22-78\"><a href=\"#cb22-78\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    33K Mar  5 21:17 mod_ratelimit.so<\/span>\n<span id=\"cb22-79\"><a href=\"#cb22-79\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    34K Mar  5 21:17 mod_reflector.so<\/span>\n<span id=\"cb22-80\"><a href=\"#cb22-80\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    41K Mar  5 21:17 mod_remoteip.so<\/span>\n<span id=\"cb22-81\"><a href=\"#cb22-81\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    48K Mar  5 21:17 mod_reqtimeout.so<\/span>\n<span id=\"cb22-82\"><a href=\"#cb22-82\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    40K Mar  5 21:17 mod_request.so<\/span>\n<span id=\"cb22-83\"><a href=\"#cb22-83\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   210K Mar  5 21:17 mod_rewrite.so<\/span>\n<span id=\"cb22-84\"><a href=\"#cb22-84\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   144K Mar  5 21:17 mod_sed.so<\/span>\n<span id=\"cb22-85\"><a href=\"#cb22-85\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_session_cookie.so<\/span>\n<span id=\"cb22-86\"><a href=\"#cb22-86\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    53K Mar  5 21:17 mod_session_dbd.so<\/span>\n<span id=\"cb22-87\"><a href=\"#cb22-87\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    61K Mar  5 21:17 mod_session.so<\/span>\n<span id=\"cb22-88\"><a href=\"#cb22-88\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    47K Mar  5 21:17 mod_setenvif.so<\/span>\n<span id=\"cb22-89\"><a href=\"#cb22-89\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    32K Mar  5 21:17 mod_slotmem_plain.so<\/span>\n<span id=\"cb22-90\"><a href=\"#cb22-90\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    59K Mar  5 21:17 mod_slotmem_shm.so<\/span>\n<span id=\"cb22-91\"><a href=\"#cb22-91\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    52K Mar  5 21:17 mod_socache_dbm.so<\/span>\n<span id=\"cb22-92\"><a href=\"#cb22-92\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    40K Mar  5 21:17 mod_socache_memcache.so<\/span>\n<span id=\"cb22-93\"><a href=\"#cb22-93\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    82K Mar  5 21:17 mod_socache_shmcb.so<\/span>\n<span id=\"cb22-94\"><a href=\"#cb22-94\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    43K Mar  5 21:17 mod_speling.so<\/span>\n<span id=\"cb22-95\"><a href=\"#cb22-95\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root   897K Mar  5 21:17 mod_ssl.so<\/span>\n<span id=\"cb22-96\"><a href=\"#cb22-96\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    80K Mar  5 21:17 mod_status.so<\/span>\n<span id=\"cb22-97\"><a href=\"#cb22-97\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    48K Mar  5 21:17 mod_substitute.so<\/span>\n<span id=\"cb22-98\"><a href=\"#cb22-98\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    35K Mar  5 21:17 mod_unique_id.so<\/span>\n<span id=\"cb22-99\"><a href=\"#cb22-99\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    37K Mar  5 21:17 mod_unixd.so<\/span>\n<span id=\"cb22-100\"><a href=\"#cb22-100\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    34K Mar  5 21:17 mod_userdir.so<\/span>\n<span id=\"cb22-101\"><a href=\"#cb22-101\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    44K Mar  5 21:17 mod_usertrack.so<\/span>\n<span id=\"cb22-102\"><a href=\"#cb22-102\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    27K Mar  5 21:17 mod_version.so<\/span>\n<span id=\"cb22-103\"><a href=\"#cb22-103\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    40K Mar  5 21:17 mod_vhost_alias.so<\/span>\n<span id=\"cb22-104\"><a href=\"#cb22-104\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    54K Mar  5 21:17 mod_watchdog.so<\/span>\n<span id=\"cb22-105\"><a href=\"#cb22-105\" aria-hidden=\"true\"><\/a><span class=\"ex\">-rwxr-xr-x<\/span> 1 myuser root    69K Mar  5 21:17 mod_xml2enc.so<\/span><\/code><\/pre><\/div>\n<p>These are all of the modules distributed along with the server by Apache and we are well aware that we selected the <em>all<\/em> option for the modules to compile. Additional modules are available from third parties. We don\u2019t need all of these modules, but there are some you\u2019ll almost always want to have: They are ready to be included.<\/p>\n<h3 id=\"references\">References<\/h3>\n<ul>\n<li>Apache: <a href=\"https:\/\/httpd.apache.org\">https:\/\/httpd.apache.org<\/a><\/li>\n<li>File Hierarchy Standard: <a href=\"http:\/\/www.pathname.com\/fhs\/\">http:\/\/www.pathname.com\/fhs\/<\/a><\/li>\n<li>Apache .\/configure documentation: <a href=\"https:\/\/httpd.apache.org\/docs\/trunk\/programs\/configure.html\">https:\/\/httpd.apache.org\/docs\/trunk\/programs\/configure.html<\/a><\/li>\n<\/ul>\n<h3 id=\"license-copying-further-use\">License \/ Copying \/ Further use<\/h3>\n<p><a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/\"><img decoding=\"async\" alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https:\/\/i.creativecommons.org\/l\/by-nc-sa\/4.0\/80x15.png\" \/><\/a><br \/>This work is licensed under a <a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License<\/a>.<\/p>\n<h5 id=\"changelog\">Changelog<\/h5>\n<ul>\n<li>2026-01-16: Update Apache (2.4.66), apr (1.7.6)<\/li>\n<li>2024-11-06: Update Apache (2.4.62), apr (1.7.5)<\/li>\n<li>2023-09-30: Update Apache (2.4.57)<\/li>\n<li>2023-08-07: Added bzip2 to list of packages that have to be installed<\/li>\n<li>2023-03-08: Update Apache (2.4.56), apr-util (1.6.3)<\/li>\n<li>2022-11-17: Remove zlibc from list of dependencies<\/li>\n<li>2022-08-28: Update Apache (2.4.54)<\/li>\n<li>2021-11-05: Update Apache (2.4.51)<\/li>\n<li>2021-06-07: Added package uuid to pkg list, edited section title for step 4<\/li>\n<li>2021-06-02: Update Apache (2.4.48)<\/li>\n<li>2020-10-09: Updated Apache to version 2.4.46<\/li>\n<li>2020-06-28: Updated Apache to version 2.4.43<\/li>\n<li>2019-12-02: Updated Apache to version 2.4.41<\/li>\n<li>2019-05-17: Added ssl-cert to the list of paackages to be installed<\/li>\n<li>2019-05-16: Updated apr (1.7.0) and Apache (2.4.39), typo<\/li>\n<li>2019-05-12: Add nikto to the list of packages to be installed<\/li>\n<li>2019-03-31: Add ruby to the list of packages to be installed<\/li>\n<li>2019-03-05: Update apr (1.6.5), Apache (2.4.38), adopted sha256 checksums<\/li>\n<li>2018-04-13: Update title format (markdown) (Simon Studer)<\/li>\n<li>2017-12-17: Switch apache mirror (www-eu.apache.org), update apr (1.6.3), apr-util (1.6.1) and Apache (2.4.29); rearranged package installation, replaced screenshot<\/li>\n<li>2017-11-12: Typo<\/li>\n<li>2017-09-25: Update apr (1.6.2), apr-util (1.6.0) and Apache (2.4.27)<\/li>\n<li>2017-02-16: Reformatting<\/li>\n<li>2016-12-28: Added tar options prefix \u201c-\u201d, Apache 2.4.23 -&gt; 2.4.25<\/li>\n<li>2016-10-10: Fixing small issues<\/li>\n<li>2016-07-15: Apache 2.4.20 -&gt; 2.4.23<\/li>\n<li>2016-04-18: Fixing small issues<\/li>\n<li>2016-03-10: Translated to English<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Compiling an Apache web server What are we doing? We\u2019re compiling an Apache web server for a test system. This tutorial is also available as a video walk through. Why are we doing this? In professional use of the web server it\u2019s very often the case that special requirements (security, additional debugging messages, special features [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-940","page","type-page","status-publish","czr-hentry"],"_links":{"self":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/pages\/940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/comments?post=940"}],"version-history":[{"count":6,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/pages\/940\/revisions"}],"predecessor-version":[{"id":2141,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/pages\/940\/revisions\/2141"}],"wp:attachment":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/media?parent=940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}