Wondering how to enable WSGI module support in VestaCP? We can help you.
mod_wsgi is an Apache module that provides a standard and efficient method for dynamic web applications to communicate with Apache web servers.
We can also use it to host any Python web application that supports the Python WSGI specification.
Here at Bobcares, we get requests from our customers to enable the WSGI module in VestaCP as a part of our Server Management Services.
Today let’s see how our Support Engineers enable this for our customers.
Steps to Enable WSGI module support in VestaCP
We can use WSGI to deploy applications written with different tools such as Django, TurboGears, and Flask
Installing the mod_wsgi package can be done in two different ways depending on our requirements.
Following are the two ways:
1. Installing a traditional Apache module into an existing Apache installation. For following this path, we have to manually configure Apache to load mod_wsgi and pass through web requests to the WSGI application.
2. To install it from PyPi using the Python pip command. This approach does not require performing any configuration of Apache ourselves.
Now we will see the steps that our Support Engineers follow to enable WSGI support on various server types.
Enable WSGI support on RHEL/CentOS
1. Firstly, we can install wsgi apache module using the following command:
# yum install mod_wsgi
2. Then download wsgi template using the following commands:
# cd /usr/local/vesta/data/templates/web
# wget http://c.vestacp.com/0.9.8/rhel/wsgi/httpd.tar.gz
# tar -xzvf httpd.tar.gz
# rm -f httpd.tar.gz
3. After that, we need to restart Apache service to get mod_wsgi to work using the following command:
# /etc/init.d/apache2 restart
4. Next we have to create a new package or set wsgi as an apache template in the existing package.
5. After that, add a new user and assign a package with a WSGI template.
6. Finally, we can add a new domain and check the result.
Enable WSGI support on Debian/Ubuntu
1. Firstly, we can install wsgi apache module using the following command:
# apt-get install libapache2-mod-wsgi
# a2enmod wsgi
2. Then download wsgi template using the following commands:
# cd /usr/local/vesta/data/templates/web
# wget http://c.vestacp.com/0.9.8/ubuntu/wsgi/apache2.tar.gz
# tar -xzvf apache2.tar.gz
# rm -f apache2.tar.gz
3. After that, we need to restart Apache service to get mod_wsgi to work using the following command:
# systemctl restart apache2
4. Next we have to create a new package or set wsgi as an apache template in the existing package.
5. After that, add a new user and assign a package with a WSGI template.
6. Finally, we can add a new domain and check the result.
Enable WSGI support on FreeBSD
On FreeBSD, install mod_wsgi by compiling the www/mod_wsgi port or by using pkg_add:
$ pkg install ap24-py37-mod_wsgi
Next, we need to create a website for WSGI that will tell Apache the location of python file and setup the file accordingly.
We can use the following command:
$ sudo nano /etc/apache2/conf-available/wsgi.conf
And add the following line:
WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py
After that, we need to create a python test script which we set above.
$ sudo nano /var/www/html/test_wsgi.py
And add the following lines:
def application(environ,start_response): status = ‘200 OK’ html = ‘<html>\n’ \ ‘<body>\n’ \ ‘<div style=”width: 100%; font-size: 40px; font-weight: bold; text-align: center;”>\n’ \ ‘mod_wsgi Test Page\n’ \ ‘</div>\n’ \ ‘</body>\n’ \ ‘</html>\n’ response_header = [(‘Content-type’,’text/html’)] start_response(status,response_header) return [html]
Once we complete this, we can save and close the file.
Finally, we will enable the WSGI configuration and restart Apache using the following command:
$ sudo a2enconf wsgi
$ sudo /etc/init.d/apache2 restart
Common errors
ERROR: Module mod-wsgi does not exist!
While installing mod-wsgi using the following commands:
sudo apt-get install libapache2-mod-wsgi
sudo a2enmod mod-wsgi
We may receive the error message given below:
ERROR: Module mod-wsgi does not exist!
We can fix this issue by using sudo a2enmod wsgi. This will enable the module once we reload apache, as most modules do not need the mod_ prefix when enabling them.
[Need Assistance? We are happy to help you!]
Conclusion
In short, we saw how our Support Engineers enable WSGI module support in VestaCP for our customers.
0 Comments