2.4. Configuration examples

The following examples provide real-world demonstrations of how SELinux complements the Apache HTTP Server and how full function of the Apache HTTP Server can be maintained.

2.4.1. Running a static site

To create a static website, label the .html files for that website with the httpd_sys_content_t type. By default, the Apache HTTP Server cannot write to files that are labeled with the httpd_sys_content_t type. The following example creates a new directory to store files for a read-only website:
  1. Run the mkdir /mywebsite command as the root user to create a top-level directory.
  2. As the root user, create a /mywebsite/index.html file. Copy and paste the following content into /mywebsite/index.html:
    <html>
    <h2>index.html from /mywebsite/</h2>
    </html>
    
  3. To allow the Apache HTTP Server read only access to /mywebsite/, as well as files and subdirectories under it, label /mywebsite/ with the httpd_sys_content_t type. Run the following command as the root user to add the label change to file-context configuration:
    ~]# semanage fcontext -a -t httpd_sys_content_t "/mywebsite(/.*)?"
  4. Run the restorecon -R -v /mywebsite command as the root user to make the label changes:
    ~]# restorecon -R -v /mywebsite
    restorecon reset /mywebsite context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
    restorecon reset /mywebsite/index.html context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
    
  5. For this example, edit /etc/httpd/conf/httpd.conf as the root user. Comment out the existing DocumentRoot option. Add a DocumentRoot "/mywebsite" option. After editing, these options should look as follows:
    #DocumentRoot "/var/www/html"
    DocumentRoot "/mywebsite"
    
  6. Run the service httpd status command as the root user to see the status of the Apache HTTP Server. If the server is stopped, run the service httpd start command as the root user to start it. If the server is running, run the service httpd restart command as the root user to restart the service (this also applies any changes made to httpd.conf).
  7. Use a web browser to navigate to http://localhost/index.html. The following is displayed:
    index.html from /mywebsite/
    
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.