You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
<meta name="description" content="Full Stack Python explains each layer of the web application stack, from the server up through the rendering in a user's browser.">
<a href="http://www.virtualenv.org/en/latest/">virtualenvs</a> to isolate library
dependencies</p>
</li>
</ul>
<h3>Red Hat and CentOS</h3>
<p><a href="http://www.redhat.com/products/enterprise-linux/">Red Hat Enterprise Linux</a>
(RHEL) and <a href="http://www.centos.org/">Community ENTerprise Operating System</a>
(CentOS) are the same distribution. The primary difference between the two
is that CentOS is an open source, liberally licensed free derivative of RHEL.</p>
<p>RHEL and CentOS use a different package manager and command-line interface
from Debian-based Linux distributions: RPM Package Manager (RPM) and the
Yellowdog Updater, Modified (YUM). RPM has a specific .rpm file format
to handle the packaging and installation of libraries and applications. YUM
provides a command-line interface for interacting with the RPM system.</p>
<h2>Operating System Resources</h2>
<ul>
<li>
<p><a href="http://www.linux.org/threads/selecting-a-linux-distribution.4087/">What is a Linux distribution and how do I choose the right one?</a></p>
</li>
<li>
<p>Lifehacker's <a href="http://lifehacker.com/5889950/how-to-find-the-perfect-linux-distribution-for-you">guide to choosing a Linux distro</a>.</p>
</li>
<li>
<p><a href="http://www.rackspace.com/knowledge_center/article/choosing-a-linux-distribution">Choosing a Linux Distribution</a></p>
</li>
<li>
<p><a href="http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers">First 5 Minutes on a Server</a></p>
</li>
<li>
<p>Digital Ocean has a detailed
<a href="https://www.digitalocean.com/community/articles/how-to-set-up-ubuntu-cloud-servers-for-python-web-applications">walkthrough for setting up Python web applications on Ubuntu</a>.</p>
</li>
</ul>
<h2>Operating systems learning checklist</h2>
<p><i class="fa fa-check-square-o"></i>
Choose either a Debian-based Linux distribution such as Ubuntu or a
Fedora-based distribution like CentOS.</p>
<p><i class="fa fa-check-square-o"></i>
Harden the security through a few basic steps. Install basic security
packages such as <a href="http://www.fail2ban.org/wiki/index.php/Main_Page">fail2ban</a>
or its equivalent. Create a new user account with sudo privileges and disable
root logins. Disable password-only logins and use a public-private keypair
instead. Read more about hardening systems in the resources listed below.</p>
<p><i class="fa fa-check-square-o"></i>
Install Python-specific packages to prepare the environment for running a
Python application. Which packages you'll need to install depends on the
distribution you've selected.</p>
<p><i class="fa fa-check-square-o"></i>
Read up on <a href="/web-servers.html">web servers</a> as installing one will be the
next step in the deployment process.</p>
<h3>What topic do you need to learn to keep going?</h3>
<h4>Interested in a complete Full Stack Python book with detailed tutorials and example code? Sign up here and you'll get an alert email if a book is created. No other emails will be sent other than sign up confirmation.</h4>
var fnames = new Array();var ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';
try {
var jqueryLoaded=jQuery;
jqueryLoaded=true;
} catch(err) {
var jqueryLoaded=false;
}
var head= document.getElementsByTagName('head')[0];
var mce_validator = $("#mc-embedded-subscribe-form").validate(options);
$("#mc-embedded-subscribe-form").unbind('submit');//remove the validator so we can get into beforeSubmit on the ajaxform, which then calls the validator