Install Django on CyberPanel and Openlitespeed with WSGI



Install Django on CyberPanel and Openlitespeed with WSGI

  • Step 1 : Install LiteSpeed Implementation of WSGI
  • Step 2 : Create site:
  • Step 3: Create Virtual Environment
  • Step 4: Install Django
  • Step 5: Create Django Project
  • Step 6: Modify Django settings
  • Step 7: Create context in OpenLiteSpeed
  • Step 8: Verify Django Installation

The setup is with virtual environment.

Step 1 : Install LiteSpeed Implementation of WSGI

Install Python 3 libraries required for compilation

yum update
yum upgrade openlitespeed
yum install python3-devel 
yum install python3-pip
cd ~
curl -O http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-1.7.tgz

Output:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 48997  100 48997    0     0   130k      0 --:--:-- --:--:-- --:--:--  130k
[root@mail ~]# curl -O http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-1.7.tgz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 48997  100 48997    0     0   135k      0 --:--:-- --:--:-- --:--:--  135k

Extract tar

tar xf wsgi-lsapi-1.7.tgz
cd wsgi-lsapi-1.7

Configure with Python 3

python3 ./configure.py

Compile

make

Output:

gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE              =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64               -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O0 -g3 -I. -I/usr/include/python3.6m  -I. -I/usr/inc              lude/python3.6m  -c -o main.o main.c
In file included from /usr/include/inttypes.h:25:0,
                 from ./lsapidef.h:37,
                 from ./lsapilib.h:41,
                 from main.c:34:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimiz              ation (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE              =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64               -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O0 -g3 -I. -I/usr/include/python3.6m  -I. -I/usr/inc              lude/python3.6m  -c -o wsgi.o wsgi.c
In file included from /usr/include/limits.h:26:0,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:34,
                 from /usr/include/python3.6m/Python.h:11,
                 from wsgi.c:29:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimiz              ation (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE              =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64               -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O0 -g3 -I. -I/usr/include/python3.6m  -I. -I/usr/inc              lude/python3.6m  -c -o wsgiinput.o wsgiinput.c
In file included from /usr/include/limits.h:26:0,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:34,
                 from /usr/include/python3.6m/Python.h:11,
                 from wsgiinput.c:29:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimiz              ation (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE              =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64               -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O0 -g3 -I. -I/usr/include/python3.6m  -I. -I/usr/inc              lude/python3.6m  -c -o wsgiwrapper.o wsgiwrapper.c
In file included from /usr/include/limits.h:26:0,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:34,
                 from /usr/include/python3.6m/Python.h:11,
                 from wsgiwrapper.c:29:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimiz              ation (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE              =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64               -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O0 -g3 -I. -I/usr/include/python3.6m  -I. -I/usr/inc              lude/python3.6m  -c -o lsapilib.o lsapilib.c
In file included from /usr/include/ctype.h:26:0,
                 from lsapilib.c:35:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimiz              ation (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE              =2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64               -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -O0 -g3 -I. -I/usr/include/python3.6m  -I. -I/usr/inc              lude/python3.6m  -c -o lsapi-glue.o lsapi-glue.c
In file included from /usr/include/limits.h:26:0,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:34,
                 from /usr/include/python3.6m/Python.h:11,
                 from lsapi-glue.c:33:
/usr/include/features.h:330:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimiz              ation (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
gcc -pthread -Wl,-z,relro  -g -L/usr/lib64 -Xlinker -export-dynamic -o lswsgi main.o wsgi.o wsgi              input.o wsgiwrapper.o lsapilib.o lsapi-glue.o -L/usr/lib64/python3.6/config-3.6m-x86_64-linux-gn              u -lpython3.6m -lpthread -ldl  -lutil -lm

Copy lswsgi to fcgi-bin

cp lswsgi /usr/local/lsws/fcgi-bin/

if existing overwrite

cp: overwrite ‘/usr/local/lsws/fcgi-bin/lswsgi’? y

Step 2 : Create site:

Login to your CyberPanel Control Panel.




Create website, you can get a new hosting account with Openlitespeed here https://www.hostingbyalitech.com

Fill out :

Site package : default (or any other if you have)

Site owner : yourusername

Domain name : souqagora.tk (here I am using this site this will be referred throughout the tutorial.

E-mail: your e-mail

Select php : 7.3 (this will not affect but normally I choose 7.3 or as required)

and check all additional features i.e. SSL, DKIM Support, open_basedir protection, Create Mail Domain

Step 3: Create Virtual Environment

Move to your site root dir:

cd /home/souqagora.tk/public_html

Create virtual environment:

python3 -m virtualenv /home/souqagora.tk/public_html

Output :

Using base prefix '/usr'
  No LICENSE.txt / LICENSE found in source
New python executable in /home/souqagora.tk/public_html/bin/python3
Also creating executable in /home/souqagora.tk/public_html/bin/python
Installing setuptools, pip, wheel...
done.

Activate virtual environment:

source /home/souqagora.tk/public_html

check python directory

which python

It should reflect the directory of your virtual environment:

/home/souqagora.tk/public_html/bin/python

Step 4: Install Django

pip install django

Output:

Collecting django
  Using cached Django-3.1.6-py3-none-any.whl (7.8 MB)
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.4.1-py3-none-any.whl (42 kB)
Collecting pytz
  Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB)
Collecting asgiref=3.2.10
  Using cached asgiref-3.3.1-py3-none-any.whl (19 kB)
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.3.1 django-3.1.6 pytz-2021.1 sqlparse-0.4.1

Step 5: Create Django Project

python3 -m django startproject souq

Note: My project name is souq replace as required.

Step 6: Modify Django settings

cd souq
cd souq
nano settings.py

Change below 

ALLOWED_HOSTS = []

So that it should reflect as:

ALLOWED_HOSTS = ['*']

and add below at the end of the file settings.py

STATIC_ROOT = '/home/souqagora.tk/public_html/souq/public/static'

mentioning /public/static is required

cd..

make sure you are in the below folder:

/home/souqagora.tk/public_html/souq/

Use this command to make sure:

pwd

create directory

mkdir -p public/static

Collect static files:

python manage.py collectstatic

Make database migration

python manage.py migrate

Output:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

Create super user:

python manage.py createsuperuser

Output:

Username (leave blank to use 'root'): root
Email address:
Password:
Password (again):
Superuser created successfully.

Note: Here I am creating with root user because I was having difficulties creating other users at the moment. After you create first user with root you may create other users while in Django admin.

Change folder owner:

chown -R nobody:nobody /home/souqagora.tk/public_html/souq/

Step 7: Create context in OpenLiteSpeed

Login to your OpenLiteSpeed Control Panel, 7080 is the Openlitespeed Port for Control Panel:

https://hostingbyalitech.com:7080

Go to Virtual Hosts on side bar.

and open the virtual host configuration form above icon.

Click Context Tab.

Click ‘+’ sign and add new context, select App Server as shown below:

and click next.

Now fillout these details as shown:

URI * = /

Location * = /home/souqagora.tk/public_html/souq/

Binary Path = /usr/local/lsws/fcgi-bin/lswsgi

Application Type = WSGI

Startup File = souq/wsgi.py

Environment = PYTHONPATH=/home/souqagora.tk/public_html/lib/python3.6:/home/souqagora.tk/public_html/souq
LS_PYTHONBIN=/home/souqagora.tk/public_html/bin/python

Note: Make sure you have python version 3.6 otherwise check accordingly and modify above version in PYTHONPATH.

Step 8: Verify Django Installation

http://souqagora.tk/admin/

These links were of help but I had to struggle alot to reach to success which changes have been included in these guides:

https://openlitespeed.org/kb/python-wsgi-applications/

https://blog.cyberpanel.net/2019/01/10/how-to-setup-django-application-on-cyberpanel-openlitespeed/

Keywords:

Install, Django, on, CyberPanel, Openlitespeed, with WSGI, WSGI, Install Django, CyberPanel Django, OpenLitespeed with WSGI

Posted in Technical Solutions on Feb 02, 2021



Tips for Changing Python Django Superuser Password

Posted in Technical Solutions on Jun 07, 2024

Tips for Changing Python Django Superuser Password



OpenAI Bought the Web Domain Chat.com: Did OpenAI Just Spend More Than $10 Million on a URL?

Posted in News on Nov 07, 2024

OpenAI recently acquired Chat.com, which now redirects to ChatGPT, enhancing its brand visibility and accessibility. Previously owned by Dharmesh Shah, who bought it for $15.5 million, the domain likely sold to OpenAI for an even higher price. This strategic purchase underscores OpenAI’s commitment to making AI tools more accessible and reflects the growing importance of conversational AI in modern technology.



[SOLVED] MySQL / MariaDB Specified key was too long; max key length is 767 bytes

Posted in Technical Solutions on Jan 07, 2022

[حل شدہ] MySQL / MariaDB مخصوص کلید بہت لمبی تھی۔ کلید کی زیادہ سے زیادہ لمبائی 767 بائٹس ہے۔ خرابی: mariadb کی مخصوص کلید بہت لمبی تھی۔ مخصوص کلید بہت لمبی تھی؛ کلید کی زیادہ سے زیادہ لمبائی 767 بائٹس ہے۔



Meta's Fight Against Celebrity Investment Scam Ads with Facial Recognition Technology

Posted in News on Oct 23, 2024

Meta, the parent company of Facebook and Instagram, has taken significant steps in its ongoing battle against celebrity investment scam ads by leveraging facial recognition technology. These scam ads often involve deepfake images of celebrities like Gina Rinehart and Guy Sebastian, tricking users into believing false endorsements. This new initiative aims to quickly and accurately detect these fraudulent ads and remove them before they reach unsuspecting users.



Brazil Lifts Ban on X After Elon Musk Pays $5M Fine

Posted in News on Oct 09, 2024

In a major development in Brazil’s tech and social media landscape, the country’s Supreme Court recently lifted a ban on X, the platform formerly known as Twitter. This decision came after a long standoff between the platform, owned by billionaire entrepreneur Elon Musk, and the Brazilian government over issues of disinformation and legal compliance. Musk’s company, X, paid a hefty $5 million fine and complied with court orders, which has led to the platform’s reinstatement in the country. This article delves into the reasons behind the ban, Musk’s response, and how the situation has unfolded, ultimately leading to X’s return to one of its most significant markets.



Awesome Partners - Hosting by AliTech

Posted in Uncategorized on May 24, 2021

We are pleased to announce that CyberPanel has chosen us as their Awesome Partner!!! Along with other superb & awesome partners we are cordially welcoming CyberPanel. #hostingbyalitech #alitech #cyberpanel #litespeed #openlitespeed #partnership #partners #awesome #we #are #welcoming https://www.hostingbyalitech.com



[SOLVED/FIXED] Python Django - crbug non-JS module files deprecated.

Posted in Technical Solutions on Feb 28, 2022

[SOLVED/FIXED] Python Django - crbug/1173575, non-JS module files deprecated. ERROR: ERR_TOO_MANY_REDIRECTS SOLUTION:



[SOLVED / FIXED] dictionary update sequence element #0 has length 1; 2 is required

Posted in Technical Solutions on Aug 31, 2022

ERROR: ValueError at / dictionary update sequence element #0 has length 1; 2 is required SOLUTION: This has a simple solution.



[SOLVED / FIXED] Kubesphere request to http //ks-apiserver/oauth/token failed

Posted in Technical Solutions on Jul 17, 2022

[SOLVED / FIXED] Kubesphere request to http //ks-apiserver/oauth/token failed



[Tips] Change Python Django Superuser password

Posted in Technical Solutions on May 06, 2022

[Tips] Change Python Django Superuser password



Cloud Platform - Add Swap File on CentOS 7

Posted in Technical Solutions on Feb 28, 2021

Cloud Platform - Add Swap File on CentOS 7, I will start with adding 4GB of swapfile, to check 4GB equivalent to KB I will use below site.



Tips For Minimizing Website Downtime

Posted in Technical Solutions on Jul 02, 2024

Learn effective strategies to minimize website downtime and ensure continuous online presence.



Automated Backup to GoogleDrive - CyberPanel - HostingbyAliTech

Posted in About Hosting by AliTech, Technical Solutions on Jul 18, 2021

Automated Backup to GoogleDrive - CyberPanel All the Hosting by AliTech customers have access to GoogleDrive Backups, here is what you need..



[SOLVED / FIXED] DataError: (1406, "Data too long for column 'name' at row 1")

Posted in Technical Solutions on Sep 14, 2022

DataError: (1406, "Data too long for column 'name' at row 1") Error: DataError: (1406, "Data too long for column 'name' at row 1") Problem Statement: When creating a Slug in Django Model with Slugify this error populates. Solution:



The Future of AI and Cloud Computing: A Global Perspective

Posted on Oct 03, 2024

Cloud computing and artificial intelligence (AI) are transforming the technological landscape at an unprecedented pace. These two forces have become vital for businesses aiming to scale, innovate, and stay competitive in a digital-first world. As major corporations like Microsoft, Google, and Oracle make significant investments in cloud infrastructure and AI capabilities, it's clear that these technologies will shape the future of industries worldwide. In this article, we'll dive deep into the latest developments in AI and cloud computing, with a focus on global investments, emerging technologies, and the impact on businesses across different regions.



Litespeed performance comparison

Posted in News on Sep 08, 2022

Our server supports Lite Speed webserver: With the power of LiteSpeed server your websites will have outclass performance see the difference. The benchmark shows the difference of Magneto performance on LiteSpeed server, Nginx & Apache.



Hosting by AliTech User & Reseller Portal - 2021

Posted in About Hosting by AliTech, News on Oct 17, 2021

Hosting by AliTech User & Reseller Portal coming soon stay tuned. https://bit.ly/3tm3kZ3 https://www.hostingbyalitech.com #hostingbyalitech #alitechsolutions #userportal #resellerportal #coming #soon



AI Wins Another Nobel: DeepMind’s Hassabis and Jumper Awarded for AlphaFold Breakthrough in Chemistry

Posted on Oct 10, 2024

The 2024 Nobel Prize in Chemistry marked a groundbreaking moment, as artificial intelligence once again took center stage. This time, the honor went to Demis Hassabis, co-founder of Google DeepMind, and John Jumper, Senior Research Scientist at the same institution, for their revolutionary AI system, AlphaFold. Alongside them was David Baker from the University of Washington, whose work in protein design complemented the AI-driven breakthroughs. This prestigious award recognized their joint contributions to predicting and developing new proteins, a breakthrough that is already changing the world of biology and chemistry.




Other Blogs


Tips for Changing Python Django Superuser Password

Posted in Technical Solutions on Jun 07, 2024 and updated on Jun 07, 2024

Brazil Lifts Ban on X After Elon Musk Pays $5M Fine

Posted in News on Oct 09, 2024 and updated on Oct 09, 2024

Awesome Partners - Hosting by AliTech

Posted in Uncategorized on May 24, 2021 and updated on May 28, 2021

[Tips] Change Python Django Superuser password

Posted in Technical Solutions on May 06, 2022 and updated on May 07, 2022

Cloud Platform - Add Swap File on CentOS 7

Posted in Technical Solutions on Feb 28, 2021 and updated on Aug 26, 2022

Tips For Minimizing Website Downtime

Posted in Technical Solutions on Jul 02, 2024 and updated on Jul 02, 2024

The Future of AI and Cloud Computing: A Global Perspective

Posted on Oct 03, 2024 and updated on Oct 03, 2024

Litespeed performance comparison

Posted in News on Sep 08, 2022 and updated on Sep 07, 2022

Hosting by AliTech User & Reseller Portal - 2021

Posted in About Hosting by AliTech, News on Oct 17, 2021 and updated on Mar 14, 2022

Litespeed performance comparison

Posted in News on Sep 08, 2022

Litespeed performance comparison

Posted in News on Sep 08, 2022







Comments

Please sign in to comment!






Subscribe To Our Newsletter

Stay in touch with us to get latest news and discount coupons