How to Install and Configure Odoo with mod_wsgi

odoo with mod wsgi

In this tutorial, we will show you how to install Odoo 10 on an Ubuntu 16.04 VPS with Apache2 and mod_wsgi which is an Apache module that implements a WSGI compliant interface for hosting Python based web applications such as Odoo on top of the Apache web server. There are multiple ways to install Odoo, but in this tutorial, we will install the latest Odoo 10 from the source using a python virtual environment. This guide should work on other Linux VPS systems as well but was tested and written for an Ubuntu 16.04 VPS.

Odoo (previously OpenERP) is a suite of business applications for Sales, CRM, Websites, Human Resources, Project management, Warehouse management and many more. You can extend Odoo with thousands of modules.

Update the system and install necessary packages

sudo apt update 
apt -y upgrade
sudo apt-get install git python-pip python-dev \
    python-virtualenv libevent-dev gcc libjpeg-dev libxml2-dev \
    libssl-dev libsasl2-dev node-less libldap2-dev libxslt-dev

Install PostgreSQL

Installing PostgreSQL with apt is a quick and easy process.

sudo apt install postgresql-9.5 postgresql-server-dev-9.5
sudo systemctl enable postgresql.service
sudo systemctl start postgresql.service

Create Odoo user

Create an odoo system user with the following command:

sudo adduser --system --group odoo --home /opt/odoo

Create PostgreSQL database user with the following command:

su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser --no-password odoo"

Install Odoo

Switch to user odoo and clone the Odoo 10.0 branch from GitHub:

sudo su - odoo -s /bin/bash
git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/odoo

Create python virtual environment and install all requirements:

cd /opt/odoo
virtualenv ./venv
source ./venv/bin/activate
pip install -r requirements.txt

When the installation is complete switch back your sudo user:

exit

Create a configuration file by copying the default odoo-wsgi.example.py file:

sudo cp /opt/odoo/setup/odoo-wsgi.example.py /opt/odoo/setup/odoo-wsgi.py

Open the configuration file

sudo nano /opt/odoo/setup/odoo-wsgi.py

change the addon path to:

conf['addons_path'] = 'addons'

and set the master admin password:

conf['admin_passwd'] = 'my_secret_password'

If you want to print PDF reports in Odoo, you need to install the Wkhtmltopdf package:

sudo apt -y install wkhtmltopdf

Install Apache and mod_wsgi

If you don’t have Apache installed on your system, install it with the following command:

sudo apt update
sudo apt install apache2

To install and enable the mod_wsgi, run the following commands:

sudo apt install libapache2-mod-wsgi
sudo a2enmod wsgi

Create an Apache virtual host directive for your domain:

sudo nano /etc/apache2/sites-available/odoo.conf
<VirtualHost *:80>
    ServerName my-odoo-domain.com
    ServerAlias  www.my-odoo-domain.com

    ErrorLog ${APACHE_LOG_DIR}/odoo-error.log
    CustomLog ${APACHE_LOG_DIR}/odoo-access.log combined

    <Directory /opt/odoo/setup>
        <Files odoo-wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess odoo user=odoo group=odoo python-home=/opt/odoo/venv/ python-path=/opt/odoo
    WSGIProcessGroup odoo
    WSGIScriptAlias / /opt/odoo/setup/odoo-wsgi.py

</VirtualHost>

Activate the virtual host by creating a symbolic link and restart Apache.

sudo a2ensite odoo
sudo systemctl restart apache2

That’s it. You have successfully installed Odoo with Apache2 and mod_wsgi on your Ubuntu 16.04 VPS. Now open your browser, type the address of your website and create a database and admin user.
For more information about how to manage your Odoo installation, please refer to the Odoo documentation.


Of course, you don’t have to do any of this if you use one of our Odoo VPS Hosting services, in which case you can simply ask our expert Linux admins to setup this for you. They are available 24×7 and will take care of your request immediately.

PS. If you liked this post please share it with your friends on the social networks using the buttons below or simply leave a comment in the Comments Section. Thanks.

4 thoughts on “How to Install and Configure Odoo with mod_wsgi”

  1. You might consider including a brief description of odoo so the casual reader has at least a minimal understanding of why you might want to install it.

    Reply
    • Please check your Apache configuration. Remove the default Apache virtual host (e.g. /etc/apache2/sites-enabled/000-default.conf).

      Reply

Leave a Comment