Information Systems 337 Prof Harry Plantinga Development and

  • Slides: 13
Download presentation
Information Systems 337 Prof. Harry Plantinga Development and Deployment

Information Systems 337 Prof. Harry Plantinga Development and Deployment

Developing and Deploying � These lab VMs will be going away after the semester

Developing and Deploying � These lab VMs will be going away after the semester ends � How will you deploy the site? � How will you save the source code so that you or others can work on it later?

Site Maintenance � Your web site is up and running, and people are using

Site Maintenance � Your web site is up and running, and people are using it � You want to change a page � You edit the page. tpl. php file. Syntax error! Site goes down! � You can't remember how to fix it. Site stays down! � You have two people editing the same file. Site down! Work lost! � What to do?

Development Strategies � You will need live and development sites � Devel site on

Development Strategies � You will need live and development sites � Devel site on your own VM � Deploy site on calvincs. com � Live site on client’s dreamhost account � Ideally: one-button deployment

Deployment � Deployment means uploading your site (www directory, databases) to a host �

Deployment � Deployment means uploading your site (www directory, databases) to a host � Host must support PHP, My. SQL, etc. � Next lab: deployment on dreamhost (calvincs. com). Other hosts – same idea, different details � Load your database onto their server � Use FTP to load your /var/www/ directory onto their server � Adjust configuration… � Point your domain name to the new host � Turn on caching � Test � Deploying your term project…

Deploying to Dreamhost � Upload your database � Create a database on host �

Deploying to Dreamhost � Upload your database � Create a database on host � Export development Drupal database with mysqldump � Import your database into Dreamhost server � Upload your Web directory � Zip your /var/www directory � Copy to dreamhost server � Unzip in appropriate directory � Modify settings as needed � settings. php – for logging in to the dreamhost database �. htaccess – for finding your files

Revision Control: the problem… � Have you ever lost work while writing a term

Revision Control: the problem… � Have you ever lost work while writing a term paper? � How do you collaborate on writing projects? � Have you ever made changes to a computer program that caused it to stop working? � How would you collaborate on a development project like a website? � What if you have two versions of your website and need to manage merges and synchronization?

Revision Control � Revision control (or source control or version control) systems help you

Revision Control � Revision control (or source control or version control) systems help you � maintain old and new versions of code � view and reconcile difference between versions � check out and check in code � keep track of every change: who, why? � revert to previous versions of your code

Revision Control Systems � Popular revision control systems � CVS � old, stable �

Revision Control Systems � Popular revision control systems � CVS � old, stable � used by Drupal, sourceforge � Subversion (SVN) � newer, quite popular � Install on your own PC! � Git � Newer, maybe most popular? � Many others…

Drupal and CVS � Check out the latest version of a drupal release: �

Drupal and CVS � Check out the latest version of a drupal release: � cvs d: pserver: anonymous@cvs. drupal. org: /cvs/drupal checkout –r DRUPAL-5 drupal � See what releases are available: � cvs d: pserver: anonymous@cvs. drupal. org: /cvs/drupal status -v CHANGELOG. txt � Tags and Branches: � Each new version of Drupal is a new branch � Tags are snapshots at a point in time of a particular branch � Hint: use CVS to get code from drupal. org and use git or SVN to do revision control on your own code!

Git � Designed for speed � Originally designed and developed by Linus Torvalds for

Git � Designed for speed � Originally designed and developed by Linus Torvalds for Linux kernel development � Distributed (every working directory is a full respository) � Very popular � GUI support on various operating systems

Git Commands � git-init(1) to create a new repository. � git-show-branch(1) to see where

Git Commands � git-init(1) to create a new repository. � git-show-branch(1) to see where you are. � git-log(1) to see what happened. � git-checkout(1) and git-branch(1) to switch branches. � git-add(1) to manage the index file. � git-diff(1) and git-status(1) to see what you are in the middle of doing. � git-commit(1) to advance the current branch. � git-reset(1) and git-checkout(1) (with pathname parameters) to undo changes. � git-merge(1) to merge between local branches. � git-rebase(1) to maintain topic branches. � git-tag(1) to mark known point.

Sharing your Code � When you pass off the website to your client, they

Sharing your Code � When you pass off the website to your client, they will also need access to the source code. � They could download it from the host via FTP or scp � You could set up a repository on github. com � This would allow multiple people to work on the site � Free for open source projects � Dreamhost has git – use push or clone to upload or download your site � Or host on a site like github. com