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
Copy Code
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
Copy Code
3. After that, we need to restart Apache service to get mod_wsgi to work using the following command:
# /etc/init.d/apache2 restart
Copy Code
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
Copy Code
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
Copy Code
3. After that, we need to restart Apache service to get mod_wsgi to work using the following command:
# systemctl restart apache2
Copy Code
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
Copy Code
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
Copy Code
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
Copy Code
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
Copy Code
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
Copy Code
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