Django Anonymous
Django Anonymous

Reputation: 3025

VirtualHost configuration doesn't allow second website to run

I have this in my /etc/apache2/sites-available/staginnx.com.conf

WSGIScriptAlias / /home/ubuntu/v1/staginnx-info/app/website/website/wsgi.py
WSGIPythonPath /home/ubuntu/v1/staginnx-info/app/website

<VirtualHost *:80>

        # Admin email, Server Name (domain name) and any aliases
        ServerAdmin [email protected]
        ServerName  staginnx.com
        ServerAlias www.staginnx.com

        <Directory /home/ubuntu/v1/staginnx-info/app/website/website>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>

        Alias /static/ /home/ubuntu/v1/staginnx-info/app/website/ui/static/

        <Directory /home/ubuntu/v1/staginnx-info/app/website/ui/static>
            Require all granted
        </Directory>

        Alias /favicon.ico /home/ubuntu/v1/staginnx-info/app/website/ui/static/images/favicon.ico

        ErrorLog /var/log/apache2/error.log

</VirtualHost>

<VirtualHost *:80>

  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin [email protected]
  ServerName  blog.staginnx.com
  ServerAlias blog.staginnx.com


  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.php
  DocumentRoot /var/www/html/blog/

  <Directory /var/www/html/blog>
   Require all granted
  </Directory>

  # Custom log file locations
  LogLevel warn
  ErrorLog  /var/www/html/blog/log/error.log
  CustomLog /var/www/html/blog/log/access.log combined

</VirtualHost>

Now the first one, the main website is working fine. The second one, BLOG is not working.

I have done sudo a2ensite staginnx.com.conf and a symlink is generated at sites-enabled. I have done reload apache and restart too.

Surfed around but no luck.

Want to install wordpress blog in my blog folder.

Upvotes: 0

Views: 130

Answers (1)

abhishekgarg
abhishekgarg

Reputation: 1473

In order to use your django application inside a virtual host you need to set the WSGIScriptAlias inside the virtualhost settings and also you can't use the WSGIPythonPath, you need to use WSGIDaemonProcess like in the following settings.

<VirtualHost *:80>
    WSGIScriptAlias / /home/ubuntu/v1/staginnx-info/app/website/website/wsgi.py
    WSGIDaemonProcess example.com python-path=/home/ubuntu/v1/staginnx-info/app/website

    # Admin email, Server Name (domain name) and any aliases
    ServerAdmin [email protected]
    ServerName  staginnx.com
    ServerAlias www.staginnx.com

    <Directory /home/ubuntu/v1/staginnx-info/app/website/website>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    Alias /static/ /home/ubuntu/v1/staginnx-info/app/website/ui/static/

    <Directory /home/ubuntu/v1/staginnx-info/app/website/ui/static>
        Require all granted
    </Directory>

    Alias /favicon.ico /home/ubuntu/v1/staginnx-info/app/website/ui/static/images/favicon.ico

    ErrorLog /var/log/apache2/error.log

</VirtualHost>

Also in case you want to host multiple application on the same host then you need to change a small setting in the wsgi.py file as well.

instead of using

os.environ.setdefault(DJANGO_SETTINGS_MODULE, "app.settings")

you should use

os.environ["DJANGO_SETTINGS_MODULE"] = "app.settings"

I hope this helps you.

For WSGIDaemonProcess setting

Upvotes: 1

Related Questions