Presentation is loading. Please wait.

Presentation is loading. Please wait.

How to setup a Linux Web Server and use it to monitor your home SPEAKER: JESSICA DEEN – SYSTEMS INTEGRATION ENGINEER – SPK AND ASSOCIATES,

Similar presentations


Presentation on theme: "How to setup a Linux Web Server and use it to monitor your home SPEAKER: JESSICA DEEN – SYSTEMS INTEGRATION ENGINEER – SPK AND ASSOCIATES,"— Presentation transcript:

1 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 | JESSICA@JESSICADEEN.COM

2 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

3 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

4 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)

5 10 Most Popular Linux Distributions  Debian  Composed of only free, open sourced software  Ubuntu  Debian-based  Linux Mint  Built on top of Ubuntu  Fedora  Fedora doesn’t make its own desktop environment or other software. Instead, the Fedora project uses “upstream” software  Comes with GNOME 3, by default  Cent OS / RHEL (Red Hat Enterprise Linux)  Commercial Linux Distribution  Intended for servers and workstations  openSUSE / SUSE Linux Enterprise  Community created; sponsored by Novell  Mageia / Mandriva  Fork of Mandriva Linux created in 2011  Arch Linux  Lightweight, minimal  Uses a “rolling release” model  Slackware Linux  Oldest distrio that’s still maintained  Puppy Linux  Latest version built on Slackware  ISO file is only 161 MB

6 Desktop Environments  Desktop Environments  Think of them like GUIs  XFCE  Gnome  KDE  Unity  Installed by default in 14.04  Cinnamon

7 Terminal

8 Linux (UNIX) Basics Commands  Man  “Manual”  Ls  “List”  Equivalent to “dir” in CMD  Pwd  “Print Working Directory”  Sudo  Think of this as UAC – elevate current user to root permissions for specific commands  Text Editors:  Nano  vim

9 Linux (UNIX) Basics Commands (Cont’d)  Mv  Move  Cp  Copy  Crontab  Cron Table  Think of it like scheduled tasks on Windows Server  History | grep “search string”  Pipe = Sends data from one program to another  Recommend Code Academy’s “Learn the Command Line” course to become more familiar with CLI

10 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

11 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

12 Media  You can get the media for Ubuntu 14.04 LTS (long term support) for free direct from: http://www.ubuntu.com/download/desktophttp://www.ubuntu.com/download/desktop  You can either burn to a disk, create a bootable USB stick, or mount it on a virtual machine

13 How to Install

14 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

15 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

16 Nest Thermostat Web Based Monitoring  git clone https://github.com/f0rkz/Bootstrap-Nest-Administration-Tool  mv Bootstrap-Nest-Administration-Tool Nest_Admin

17 Proceeding with install  Activate mysql with this command:  sudo mysql_install_db  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:  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

18 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 ‘some- password’;  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:

19 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

20 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

21 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!

22 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/

23 Live Demo

24 Blog  http://www.jessicadeen.com/tech/setup-nest-bootstrap-control-panel/ 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  Renam shortcut to ‘ssh’  Right click properties, change target path to C:\cygwin64\mintty.exe /bin/ssh  Press OK

25 Questions?


Download ppt "How to setup a Linux Web Server and use it to monitor your home SPEAKER: JESSICA DEEN – SYSTEMS INTEGRATION ENGINEER – SPK AND ASSOCIATES,"

Similar presentations


Ads by Google