Table of Contents
Introduction
Web2py is a free and open source Python framework for developing web applications. You can develop fast, scalable and secure web-based applications rapidly using web2py. Web2py allows you to easily program dynamic web content using the Python programming language. You can perform many tasks, such as development, testing, debugging, and database administration via a web interface. Web2py supports various operating systems like Windows, Mac, and Linux. It readily integrates with Apache, Nginx, Lighttpd and other web servers. Web2py is designed to help secure your server from various kinds of attacks like Cross Site Scripting, Malicious File Execution, and Injection Flaws.
In this tutorial we will explain how to install the Web2py framework on a CentOS 7 server.
Requirements
- A server running CentOS 7.
- A non-root user with
sudo
privilege.
Getting Started
To get started we will install some required packages and update our system by running the following commands:
sudo yum clean all
sudo yum update -y
sudo yum install git -y
Once your system is updated, you can proceed to the next step.
Install Web2py
Create a directory for the web2py
installation and clone the web2py
repository to it.
sudo mkdir /opt/web2py
cd /opt/web2py/
sudo git clone --recursive https://github.com/web2py/web2py.git /opt/web2py
Next you will need to use openssl
to generate a SSL key and certificate which will be used to secure access to the Web2py web interface.
Create a directory to store the key and certificate:
sudo mkdir /opt/web2py_cert
Create a RSA key and certificate pair with the following commands:
cd /opt/web2py_cert/
sudo openssl req -x509 -new -newkey rsa:4096 -days 365 -nodes -keyout web2py.key -out web2py.crt
Answer all the questions:
Generating a 4096 bit RSA private key
.........................................................++
...........................................................................................++
writing new private key to 'web2py.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:GUJ
Locality Name (eg, city) [Default City]:JND
Organization Name (eg, company) [Default Company Ltd]: Your Company Name
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:web2py
Email Address []:username@domain.tld
You should now have a web2py.key
and web2py.crt
file in your /opt/web2py_cert
directory.
Set some restrictive permissions for the SSL key and certificate:
sudo chmod -R 600 /opt/web2py_cert/*
Access the Web2py Web Admin Interface
You are now ready to start python application server.
sudo python /opt/web2py/web2py.py -a '[ADMIN_PASSWORD]' -k /opt/web2py_cert/web2py.key -c /opt/web2py_cert/web2py.crt -i 0.0.0.0 -p 8000 &
Note: You should substitute a strong password after the -a
flag in place of [ADMIN_PASSWORD].
Your Python application server is now running on port 8000
. Before accessing web interface, you will need to allow port 8000
through the firewall. (firewalld)
You can do this with the following commands:
sudo firewall-cmd --permanent --zone=public --add-port=8000/tcp
sudo firewall-cmd --reload
Open a web browser and point it to the URL https://your-server-ip:8000
, you should see the following "welcome" page:
Click on the blue ADMIN
button and sign in with the password you just specified when starting the server.
Web2py Dashboard
Summary
You should now have a basic knowledge of installing and running the Web2py web framework. You are welcome to leave feedback in the comments section below if you have any questions related to web2py.
Hai Hitjethva,
Thank you for sharing the information.
Regards NicoleWells