Linux Web Server

Download Report

Transcript Linux Web Server

How to setup a Linux Web
Server and use it to
monitor your home
SPEAKER: JESSICA DEEN – SYSTEMS INTEGRATION ENGINEER – SPK AND ASSOCIATES, LLC.
@JLDEEN | JESSICADEEN.COM | [email protected]
About Me

3 Year Microsoft MVP

Current Systems Integration Engineer for SPK
and Associates, LLC.

Former Community Engagement Specialist
for Windows Client and Windows IT Pro

CompTIA A+, Network +, Security + Certified

Apple Certified Macintosh Technician,
Apple Certified Support Professional, Mac
Integration Basics Certified
Why Linux?

Cost – Free

Security – Some might argue it’s a stronger OS than Windows considering
most viruses are written for the Windows platform

Versatility – It can work on extremely old hardware and requires very little
computing power (Raspberry Pi)

Software – The vast majority of Linux software is open source and free. Not
only is there a zero cost associated, but you can also usually modify the
source code and add more features if you have programming experience

Speed – In many cases, Linux distributions are found to be faster and
snappier than Windows and Mac
Building a Web Server - Important
Considerations


Cost

Apache HTTP is free

Ubuntu is free
Physical or Virtual?


Is your web server going to be setup with physical infrastructure or using a virtual
solution such as VMware ESXi or Hyper-V?
What kind of web site will you be deploying?

PHP based

Python based (Django)

HTML

Microsoft .NET (IIS)
10 Most Popular Linux Distributions

Debian






Fedora doesn’t make its own desktop environment or
other software. Instead, the Fedora project uses
“upstream” software

Cent OS / RHEL (Red Hat Enterprise Linux)

Fork of Mandriva Linux created in 2011
Arch Linux

Lightweight, minimal

Uses a “rolling release” model
Slackware Linux

Comes with GNOME 3, by default
Community created; sponsored by Novell
Mageia / Mandriva

Fedora


Built on top of Ubuntu
openSUSE / SUSE Linux Enterprise

Debian-based
Linux Mint


Composed of only free, open sourced software
Ubuntu


Oldest distrio that’s still maintained
Puppy Linux

Commercial Linux Distribution

Latest version built on Slackware

Intended for servers and workstations

ISO file is only 161 MB
Desktop Environments

Desktop Environments

Think of them like GUIs

XFCE

Gnome

KDE

Unity


Installed by default in 14.04
Cinnamon
Terminal
Linux (UNIX) Basics Commands

man



ls

“List”

Equivalent to “dir” in CMD
pwd


“Print Working Directory”
sudo


“Manual”
Think of this as UAC – elevate current user to root permissions for specific commands
Text Editors:

nano

vim
Linux (UNIX) Basics Commands (Cont’d)

mv


cp



Copy
crontab

Cron Table

Think of it like scheduled tasks on Windows Server
history | grep “search string”


Move
Pipe = Sends data from one program to another
Recommend Code Academy’s “Learn the Command Line” course to
become more familiar with CLI
Software Repositories


What are software repositories?

Storage locations from which software
packages may be retrieved and installed on a
computer.

Each Linux distribution hosts their own software
repositories
Installing software on Linux involves package
managers and software repositories

Package manager – Think of it like an app store,
except they were the original app store.
Example: sudo apt-get update
Example: sudo apt-get upgrade
Example: sudo apt-get install git
Example: sudo apt-get install vim
Updates

sudo apt-get update


Downloads the package lists from the repositories and "updates" them to get
information on the newest versions of packages and their dependencies. It will
do this for all repositories and PPAs
sudo apt-get upgrade

Will fetch new versions of packages existing on the machine if APT knows about
these new versions by way of apt-get update
Media

You can get the media for Ubuntu 14.04 LTS (long term support) for free
direct from: http://www.ubuntu.com/download/desktop

You can either burn to a disk, create a bootable USB stick, or mount it on a
virtual machine
How to Install
LAMP Stack

LAMP = Linux / Apache / MySQL / PHP

Apache HTTP



Around since 1995

Serves an estimated ~55% of all websites (as of June of 2013)

Can run on Windows, Linux, Mac
MySQL

Open source database

Free
PHP

Server side scripting language for web development

Can also be used as a general-purpose programming language
Install packages

To install all necessary tools for your new Web Server and the Nest Thermostat web
monitoring application, we can type everything we need to install in one single
command:


sudo apt-get install apache2 mysql-server libapache2-mod-auth-mysql php5 php5-mysql
php5-curl php5-json php5-mcrypt git
For Ubuntu 14, type:

sudo php5enmod mcrypt


Enables mcrypt
sudo service apache2 restart
Nest Thermostat Web Based
Monitoring

git clone https://github.com/f0rkz/Bootstrap-Nest-Administration-Tool

mv Bootstrap-Nest-Administration-Tool Nest_Admin
Proceeding with install

Activate mysql with this command:


After you have the pre-requisites installed, you will want to clone the repo
into your web directory.


git clone https://github.com/f0rkz/Bootstrap-Nest-Administration-Tool
I also renamed my Bootstrap-Nest-Administration-Tool by typing:


sudo mysql_install_db
mv Bootstrap-Nest-Administration-Tool Nest_Admin
Access MySQL

mysql -u root -p

You should be prompted for a password. This is the root password you created for your
MySQL installation
Proceeding with install (Cont’d)


Create the database for information to be stored

create database nest_stats;

grant all privileges on nest_stats.* to nest_stats@localhost identified by ‘somepassword’;

exit
mysql -unest_stats -p nest_stats < dbsetup.sql


Run the database query file as the user just created with the password just
specified
cp ./includes/nest.conf.php_EXAMPLE nest.conf.php

Note: Make sure the copied file is copied into the includes directory, or you will
experience an error later on. After the file is copied, you will edit it with the
necessary information and configure your crontab by typing:
Proceeding with install (Cont’d)

Reoccurring task

crontab –e

*/5 * * * * /bin/rm -f /tmp/nest_php_* ; cd /var/www/html/Nest_Admin/includes/scripts/;
/usr/bin/php /var/www/html/Nest_Admin/includes/scripts/collect-nest-data.php >
/dev/null
Mounting NFS / CIFS Shares

Mount an NFS directory from another machine


mount example.jessicadeen.com:/misc/export /misc/local
Mount a CIFS share

sudo apt-get install cifs-utils

mount -t cifs -o username=USERNAME,password=PASSWD //192.168.1.88/shares
/mnt/share
FSTAB

Mount the NFS or CIFS File System using FSTAB so the mount remains after
reboot

You must be root to modify the fstab

NFS Example:

Server:/usr/local/pub /pub nfs rszie=8192,wsize=8192,timeo=14,intr

CIFS Example:

//192.168.1.102/misc/export /location/goes/here cifs
credentials=/root.smbcredentials.iocharset.utf

//192.168.1.102/Location\040With\040Spaces /local/location/goes_here cifs
credentials=/root/.smbcredentials,iocharset=utf8

Store data in /root/.smbcredentials

Username=bob

Password=P@ssw0rd!
Vhost

Virtual hosting

Allows for hosting multiple domain names on a single server

Shared resources for multiple sites

Ubuntu specifically, vhost directory is /etc/apache2/sites-available/

Example:

ServerName democode.cloudapp.net

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html/Nest_Admin/web/
Live Demo
Blog

http://www.jessicadeen.com/tech/setup-nest-bootstrap-control-panel/

Deck and notes will be posted on the blog later today

Free trick and tip:

Shortcut to SSH on Windows

Install Cygwin64 with the openssh and client package (bin)

Locate C:\cygwin64\bin\mintty.exe

Create shortcut

Copy shortcut to c:\windows\system32

Rename shortcut to ‘ssh’

Right click properties, change target path to C:\cygwin64\mintty.exe /bin/ssh

Press OK
Questions?