Question

How to configure Apache server with Django for deployment on Virtual Machine

im currently trying to deploy my django project to a web server hosted by a RHEL-8 VM. Im trying to set up the VM to utilize HTTPD (apache). However, i can’t seem to get the Virtual Host configuration files right. I am pretty new to django and web servers as this is my first time deploying a web server. As such, i have been trying to do this for quite some time now and nothing online seems to work. As of recently i have tried more or less following this tutorial https://computingforgeeks.com/deploy-python-3-django-application-on-centos-with-apache-and-mod-wsgi/ on getting it deployed. As such, here is the code i have added into /etc/httpd/conf.d/django.conf:

<VirtualHost *:80>
        ServerAdmin info@awesomedjango.com
        ServerName awesomedjango.com
        DocumentRoot /var/www/

        Alias /static /var/www/awesomedjango/static
        <Directory "/var/www/awesomedjango/static">
                Options FollowSymLinks
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>

        ErrorLog /var/www/awesomedjango/logs/apis_error.log
        CustomLog /var/www/awesomedjango/logs/apis_access.log combined

        WSGIPassAuthorization On
        WSGIDaemonProcess awesomedjango python-path=/var/www/awesomedjango:/var/www/awesomedjango/venv/lib/python3.6/site-packages
        WSGIProcessGroup awesomedjango
        WSGIScriptAlias / /var/www/awesomedjango/v/wsgi.py

        <Directory /var/www/awesomedjango/awesomedjango>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
</VirtualHost>

But when i try to restart apache to apply this via ‘’’ apachectl restart ‘’', i just receive these errors:

  • httpd.service: Main process exited, code=exited, status=1/FAILURE
  • httpd.service: Failed with result ‘exit-code’.
  • Failed to start The Apache HTTP Server.

Any help would be greatly appreciated as i cant seem to find a solution to my problem online. Thanks

Show comments

Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

SOLVED: Errors lied within SELinux. I had to give fix up selinux policies for my project. Have a look at this thread for more detail: https://unix.stackexchange.com/questions/50639/httpd-cant-write-to-folder-file-because-of-selinux

Bobby Iliev
Site Moderator
Site Moderator badge
May 2, 2020

Hi there @abartlett1206,

Usually, after making any changes to your Apache config, I would recommend first running Apache config test before restarting the service:

  1. apachectl -t

And then only if you get Syntax OK proceed with the Apache restart.

I think that the problem might be that the mod_wsgi enabled is not enabled.

I would recommend following the steps from this tutorial here on how to configure your Apache service:

https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos-7#configure-apache

If this still does not work, feel free to share the output of the config test command and the last few lines from your Apache error log.

Hope that this helps! Regards, Bobby

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel