Configuration¶
Pytonik
supports Common Gateway Interface (CGI) and Web Server Gateway Interface (WSGI), it requires configuration to be able to run on Apache or any python
CGI or WSGI enable environment. The Configuration step support both local and cloud server.
Note
Pytonik provides lite-server, that helps in deploying pytonik application faster with the use of, pytonik-start
and pytonik-server
command, this features was added to version 1.9.7, and will be improved in newer versions. You might intend using other technology such as WSGI
WAMP
, XAMPP
etc.
Local Server¶
Look into configuring WAMP
, XAMPP
, LAMP
and MAMP
,
if you are not using any of the listed local servers don’t worry, this process supports Apache,
both older and newer version, Although you might notice little difference between versions.
Note
If you keep encountering problems during setup or local machine is unable to run Common Gateway Interface CGI We reference pytonik video tutorials.
Apache
Locate httpd.conf in your local server open it with a text or code editor.
Find AddHandler cgi-script .cgi
add .py AddHandler cgi-script .cgi .py
.
Find Options None
change to Options ExecCGI
or find Options +Indexes
change to Options ExecCGI
or change to Options +Indexes FollowSymLinks +ExecCGI
or find AllowOverride None
change to AllowOverride All
.
Find DirectoryIndex index.html
add index.py DirectoryIndex index.html index.py
.
Find and uncomment #
if only is comment with #LoadModule rewrite_module modules/mod_rewrite.so
and #LoadModule alias_module modules/mod_alias.so
.
When all the changes are made, save httpd.conf
file, Restart Apache for changes to take effect.
Server is set and ready to run python CGI application which means you can deploy pytonik on it. Restart server and done.
Virtual Host (vhosts)
Setting up a virtual host is very important espicially when using a local server.
virtual host grant you access to own custom domain names within a local environment, instead of localhost/mypytonik
it uses mypytonik.test
as the domain name. This features is very important especially when deploying application. Softwares Like MAMP
and WAMP
provides GUI (graphic user interface) where you can add custom domain names, so you might not have to worry about how to set up vhosts, some other software’s do not have such features. If you are using XAMPP
then you will need to confirgure vhost in httpd-vhosts.conf
file, While LAMP
uses Terminal for most of its configurations but takes the same proccess. Check the configuration below.
Locate httpd-vhosts.conf File
<VirtualHost *:80>
DocumentRoot "c:/xampp/htdocs"
ServerName localhost
<Directory "c:/xampp/htdocs">
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/xampp/htdocs/mypytonik"
ServerName mypytonik.test
<Directory "c:/xampp/htdocs/mypytonik">
</Directory>
</VirtualHost>
Cloud Server¶
Some Cloud server requires CGI configuration while some have it already configured and enabled.
All depends on the company who’s offering the services. Look into CGI
configuration on CentOS
, Linux
, Ubuntu
and terminal will be used for configuration process.
CentOS
Install apache sudo yum install httpd
open the httpd.conf file sudo nana /etc/httpd/conf/httpd.conf
now set for editing.
Find AddHandler cgi-script .cgi
add .py AddHandler cgi-script .cgi .py
.
Find DirectoryIndex index.html
add index.py DirectoryIndex index.html index.py
When all the changes are made, save httpd.conf file, changes takes effect.
Server is set and ready to run python CGI application which means you can deploy pytonik on it.
Restart server sudo systemctl restart httpd
and done.
Ubuntu/Linux
Install apache sudo apt-get install apache2
open the httpd.conf file sudo nano /etc/httpd/conf/httpd.conf
or gksu gedit /etc/httpd/conf/httpd.conf
now set for editing.
Find AddHandler cgi-script .cgi
add .py AddHandler cgi-script .cgi .py
.
Find DirectoryIndex index.html
add index.py DirectoryIndex index.html index.py
When all the changes are made, save httpd.conf file, changes takes effect.
Server is set and ready to run python CGI application which means you can deploy pytonik on it.
Restart server sudo systemctl restart httpd
and done.