Web server
==========
Django manage runserver
-----------------------
Check if your server is working, test the *machado* server:
.. code-block:: bash
python manage.py runserver
Now, open your browser and go to http://127.0.0.1:8000
Use CTRL+C to stop the webserver.
Django Apache WSGI
------------------
Before starting, make sure you have Apache installed in your system. In Ubuntu 20.04,
do:
.. code-block:: bash
sudo apt install apache2
In order to have Apache2 hosting the Django applications, it's necessary to use WSGI.
By doing this it won't be necessary to run the runserver command anymore, Apache will
take care of this process. It will be necessary to install the following package:
.. code-block:: bash
sudo apt install libapache2-mod-wsgi-py3
Now configure Apache to use the WSGI module.
Here is the configuration file (/etc/apache2/sites-available/YOURPROJECT.conf)
.. code-block:: bash
Require all granted
Alias /YOURPROJECT/static/ /var/www/YOURPROJECT/WEBPROJECT/static/
Require all granted
WSGIDaemonProcess WEBPROJECT lang='en_US.UTF-8' locale='en_US.UTF-8'
WSGIPythonHome /var/www/YOURPROJECT
WSGIPythonPath /var/www/YOURPROJECT
WSGIScriptAlias /YOURPROJECT /var/www/YOURPROJECT/WEBPROJECT/wsgi.py
* In this example the whole project is in /var/www/YOURPROJECT, but it's not required to be there.
* This directory and sub-directories must have 755 permissions
There must be a symlink of your config file in the sites-enabled directory
.. code-block:: bash
sudo ln -s /etc/apache2/sites-available/YOURPROJECT.conf /etc/apache2/sites-enabled/YOURPROJECT.conf
* In the WEBPROJECT/settings.py file, set the following variables:
.. code-block:: bash
ALLOWED_HOSTS = ['*']
MACHADO_URL = 'http://localhost/YOURPROJECT'
MACHADO_EXAMPLE_TXT = "kinase"
MACHADO_EXAMPLE_AA_ACC = "AT1G01030.1"
MACHADO_EXAMPLE_AA = 1869098
MACHADO_EXAMPLE_NA = 1869093
MACHADO_VALID_TYPES = ['gene', 'mRNA', 'polypeptide']
STATIC_URL = '/YOURPROJECT/static/'
STATIC_ROOT = '/var/www/YOURPROJECT/WEBPROJECT/static'
Now, run collectstatic to gather the static files from all libraries to STATIC_ROOT.
.. code-block:: bash
python manage.py collectstatic
It's necessary to restart the Apache2 service everytime there are modifications on configuration files or source code updates.
.. code-block:: bash
sudo systemctl restart apache2.service
Now, open your browser and go to http://localhost/YOURPROJECT