Download presentation
Presentation is loading. Please wait.
1
Development and Deployment Information Systems 337 Prof. Harry Plantinga
2
Developing and Deploying These lab VMs will be going away after the semester ends These lab VMs will be going away after the semester ends How will you deploy the site? How will you deploy the site? How will you save the source code so that you or others can work on it later? How will you save the source code so that you or others can work on it later?
3
Site Maintenance Your web site is up and running, and people are using it Your web site is up and running, and people are using it You want to change a page You want to change a page You edit the page.tpl.php file. Syntax error! Site goes down! You edit the page.tpl.php file. Syntax error! Site goes down! You can't remember how to fix it. Site stays down! You can't remember how to fix it. Site stays down! You have two people editing the same file. Site down! Work lost! You have two people editing the same file. Site down! Work lost! What to do? What to do?
4
Development Strategies You will need live and development sites You will need live and development sites Devel site on your own VM Devel site on your own VM Deploy site on calvincs.com Deploy site on calvincs.com Live site on client’s dreamhost account Live site on client’s dreamhost account Ideally: one-button deployment Ideally: one-button deployment
5
Deployment Deployment means uploading your site (www directory, databases) to a host Deployment means uploading your site (www directory, databases) to a host Host must support PHP, MySQL, etc. Host must support PHP, MySQL, etc. Next lab: deployment on dreamhost (calvincs.com). Other hosts – same idea, different details Next lab: deployment on dreamhost (calvincs.com). Other hosts – same idea, different details Load your database onto their server Load your database onto their server Use FTP to load your /var/www/ directory onto their server Use FTP to load your /var/www/ directory onto their server Adjust configuration… Adjust configuration… Point your domain name to the new host Point your domain name to the new host Turn on caching Turn on caching Test Test Deploying your term project… Deploying your term project…
6
Deploying to Dreamhost Upload your database Upload your database Create a database on host Create a database on host Export development Drupal database with mysqldump Export development Drupal database with mysqldump Import your database into Dreamhost server Import your database into Dreamhost server Upload your Web directory Upload your Web directory Zip your /var/www directory Zip your /var/www directory Copy to dreamhost server Copy to dreamhost server Unzip in appropriate directory Unzip in appropriate directory Modify settings as needed Modify settings as needed settings.php – for logging in to the 1and1 database settings.php – for logging in to the 1and1 database.htaccess – for finding your files.htaccess – for finding your files
7
Revision Control: the problem… Have you ever lost work while writing a term paper? Have you ever lost work while writing a term paper? How do you collaborate on writing projects? How do you collaborate on writing projects? Have you ever made changes to a computer program that caused it to stop working? 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? 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? What if you have two versions of your website and need to manage merges and synchronization?
8
Revision Control Revision control (or source control or version control) systems help you Revision control (or source control or version control) systems help you maintain old and new versions of code maintain old and new versions of code view and reconcile difference between versions view and reconcile difference between versions check out and check in code check out and check in code keep track of every change: who, why? keep track of every change: who, why? revert to previous versions of your code revert to previous versions of your code
9
Revision Control Systems Popular revision control systems Popular revision control systems CVS CVS old, stable old, stable used by Drupal, sourceforge used by Drupal, sourceforge Subversion (SVN) Subversion (SVN) newer, quite popular newer, quite popular Install on your own PC! Install on your own PC! Git Git Newest, maybe becoming most popular? Newest, maybe becoming most popular? Many others… Many others…
10
Drupal and CVS Check out the latest version of a drupal release: Check out the latest version of a drupal release: cvs - d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout –r DRUPAL-5 drupal cvs - d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout –r DRUPAL-5 drupal See what releases are available: See what releases are available: cvs - d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal status -v CHANGELOG.txt cvs - d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal status -v CHANGELOG.txt Tags and Branches : Tags and Branches : Each new version of Drupal is a new branch Each new version of Drupal is a new branch Tags are snapshots at a point in time of a particular 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! Hint: use CVS to get code from drupal.org and use git or SVN to do revision control on your own code!
11
Git Designed for speed Designed for speed Originally designed and developed by Linus Torvalds for Linux kernel development Originally designed and developed by Linus Torvalds for Linux kernel development Distributed (every working directory is a full respository) Distributed (every working directory is a full respository) Very popular Very popular GUI support on various operating systems GUI support on various operating systems
12
Git Commands git-init(1) to create a new repository. git-init(1) to create a new repository. git-init(1) git-show-branch(1) to see where you are. git-show-branch(1) to see where you are. git-show-branch(1) git-log(1) to see what happened. git-log(1) to see what happened. git-log(1) git-checkout(1) and git-branch(1) to switch branches. git-checkout(1) and git-branch(1) to switch branches. git-checkout(1)git-branch(1) git-checkout(1)git-branch(1) git-add(1) to manage the index file. git-add(1) to manage the index file. git-add(1) git-diff(1) and git-status(1) to see what you are in the middle of doing. git-diff(1) and git-status(1) to see what you are in the middle of doing. git-diff(1)git-status(1) git-diff(1)git-status(1) git-commit(1) to advance the current branch. git-commit(1) to advance the current branch. git-commit(1) git-reset(1) and git-checkout(1) (with pathname parameters) to undo changes. git-reset(1) and git-checkout(1) (with pathname parameters) to undo changes. git-reset(1)git-checkout(1) git-reset(1)git-checkout(1) git-merge(1) to merge between local branches. git-merge(1) to merge between local branches. git-merge(1) git-rebase(1) to maintain topic branches. git-rebase(1) to maintain topic branches. git-rebase(1) git-tag(1) to mark known point. git-tag(1) to mark known point. git-tag(1)
13
Sharing your Code When you pass off the website to your client, they will also need access to the source 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 They could download it from the host via FTP or scp You could set up a repository on github.com You could set up a repository on github.com This would allow multiple people to work on the site This would allow multiple people to work on the site Free for open source projects Free for open source projects Dreamhost has git – use push or clone to upload or download your site Dreamhost has git – use push or clone to upload or download your sitehas githas git Or host on a site like Bitbucket.org Or host on a site like Bitbucket.org
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.