Suggestions for LAMP Curriculum

5 views
Skip to first unread message

Ed Felt

unread,
Sep 18, 2014, 5:25:06 PM9/18/14
to oa...@googlegroups.com
I am looking for Suggestions for LAMP Curriculum for a sophomore level college class.  Please share any opinions/suggestions you have.  The goal of this class is to teach the major admin skills that are necessary to support the most popular services that run on Linux with major emphasis on managing and running production Linux servers and minor emphasis on performance/coding of the databases and web technologies.  It will be for students that have successfully completed a Linux Administration course: setup, bash skills, etc...
  1. Some are saying that PHP is dying or almost dead but what about sites like Yahoo and Facebook that still use it heavily?  Should PHP/MySQL be the main crux of a LAMP class?
  2. How important is MySQL currently?  Would MariaDB be better to teach in such a class?
  3. Should this not even be a LAMP class (with focus on MySQL/Maria and PHP/Python/Perl) but a class that just teaches the basics of the most popular and emerging database/web technologies that run on Linux like Hadoop, MongoDB, NodeJS, MySQL, MariaDB, PHP, Python, Ruby, Perl etc...?
The focus of the two year college I teach at is to prepare students as quickly and thoroughly as possible to go into the workforce, not just to do two years of college to transfer to a four year.  So the main focus is skills and experience as apposed to theory, (though it's important to have a little theory in there), enough to one could get an internship or entry level job by the time they graduate from the two year program.  Of course flame wars are welcome :)

Sincerely,

C. Ed Felt

Russ Hatch

unread,
Sep 18, 2014, 8:56:37 PM9/18/14
to oa...@googlegroups.com
Hi Ed,

I personally think LAMP has become a bit confusing as people swap in other DB's and occasionally use the 'P' to mean Python. I say forget about LAMP and teach a stack to show students some interesting tech. I don't think anyone here will dispute the Linux part. You may want to consider teaching about nginx instead of apache as it has become very popular over the last few years [1].

As for databases, I don't think it will make a great difference whether you choose MySQL or MariaDB, but it could be really cool to include something like Postgres (an open source DB with a lot of feature parity with Oracle), or a NoSQL DB like Apache Cassandra (disclaimer: I work for a DB company which sells tech based on Cassandra so I am biased). Finally, I think PHP is wildly popular for a reason but this could be a great opportunity to teach students some programming not exclusively tied to web templating. I think PHP might stifle the imagination of great future programmers. The hard part is finding something that students can learn to hack on as quickly as PHP -- I'd suggest something like Python/Flask or Ruby/Sinatra but these frameworks probably do have a steeper learning curve than PHP in terms of how long it takes to get "hello world!" happening.

Just for kicks it might be cool to throw in another layer like varnish http cache to get students thinking about the interesting and powerful ways technologies can be combined.

[1] http://www.infoworld.com/article/2608377/open-source-software/nginx-passes-apache-as-web-server-of-choice-among-top-sites.html

good luck!

Russ

--
--
Site: http://www.oalug.com
Mailing list: http://groups.google.com/group/oalug
IRC: #oalug on irc.freenode.net
---
You received this message because you are subscribed to the Google Groups "Ogden Area Linux Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to oalug+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ace Frahm

unread,
Nov 2, 2014, 8:34:17 AM11/2/14
to oa...@googlegroups.com, edf...@gmail.com
  1.  Buying a domain name --> Required for every student.  (Domain.com is the only registrar that told the NSA to come back with a real warrant, the others barfed up customer data on request.)
  2. Setting up Debian on a tiny Digital Ocean $5/month server --> Required for every student
  3. Logging in with Putty
  4. Using certificates with Putty for a secure login without sending cleartext passwords
  5. Install Apache
  6. Show them Lynx, the command line browser at "localhost" displays the "It Works!" page from Apache's default install
  7. Show where the /var/www/ root of the websites are at
  8. Explain Apache config files, what the "sites-available" & "sites-enabled" folders are for
  9. Show how to install/turn on additional Apache modules
  10. On Friday (Overnight at least) Point domain name at IP address of Debian on Digital Ocean.
  11. Install ProFTP on your DigitalOcean Debian server
  12. Install FileZilla to upload stuff to the /var/www/ folder
  13. Install MariaDB, explain that the creators of MySQL left to create MariaDB when Oracle bought MySQL, with agreement that MariaDB would always be able to be a drop-in replacement for MySQL with matching function calls, so that the new 'M' in LAMP is MariaDB.  (DO NOT SUBSTITUTE POSTGRES OR A NoSQL, they will cause students severe problems, and all LAMP learning will stop.)
  14. Install PHP, (NOT PYTHON, or anything else, you're trying to teach newbies LAMP, Not teach them a python class, which is what your class will devolve into if you try it.)
  15. Show how to edit the php config file to allow bigger uploads, etc., fix common pitfalls
  16. Show php.info in browser from their website
  17. Install phpMyAdmin, show them how to manipulate databases & tables with it
  18. Write some basic PHP pages, show them how to add, update & delete data to MariaDB
  19. Setup SSL on Apache so their sites can serve HTTPS, using http://www.cacert.org/
  20. Maybe show them how to configure Apache to serve more than just 1 site, more than just one domain name.
  21. Maybe install Drupal, so they can have a content manager that is more than just a crappy wordpress blog


Show the "Hello World" page of Apache is showing at their domain name in a browser.
Show the root

Ace Frahm

unread,
Nov 2, 2014, 8:35:18 AM11/2/14
to oa...@googlegroups.com, edf...@gmail.com
LAMP Curriculum

  1. Buying a domain name --> Required for every student.  (Domain.com is the only registrar that told the NSA to come back with a real warrant, the others barfed up customer data on request.)
  2. Setting up Debian on a tiny Digital Ocean $5/month server --> Required for every student
  3. Logging in with Putty
  4. Using certificates with Putty for a secure login without sending cleartext passwords
  5. Install Apache
  6. Show them Lynx, the command line browser at "localhost" displays the "It Works!" page from Apache's default install
  7. Show where the /var/www/ root of the websites are at
  8. Explain Apache config files, what the "sites-available" & "sites-enabled" folders are for
  9. Show how to install/turn on additional Apache modules
  10. On Friday (Overnight at least) Point domain name at IP address of Debian on Digital Ocean.
  11. Install ProFTP on your DigitalOcean Debian server
  12. Install FileZilla to upload stuff to the /var/www/ folder
  13. Install MariaDB, explain that the creators of MySQL left to create MariaDB when Oracle bought MySQL, with agreement that MariaDB would always be able to be a drop-in replacement for MySQL with matching function calls, so that the new 'M' in LAMP is MariaDB.  (DO NOT SUBSTITUTE POSTGRES OR A NoSQL, they will cause students severe problems, and all LAMP learning will stop.)
  14. Install PHP, (NOT PYTHON, or anything else, you're trying to teach newbies LAMP, Not teach them a python class, which is what your class will devolve into if you try it.)
  15. Show how to edit the php config file to allow bigger uploads, etc., fix common pitfalls
  16. Show php.info in browser from their website
  17. Install phpMyAdmin, show them how to manipulate databases & tables with it
  18. Write some basic PHP pages, show them how to add, update & delete data to MariaDB
  19. Setup SSL on Apache so their sites can serve HTTPS, using http://www.cacert.org/
  20. Maybe show them how to configure Apache to serve more than just 1 site, more than just one domain name.
  21. Maybe install Drupal, so they can have a content manager that is more than just a crappy wordpress blog

On 2014-09-18 17:25, Ed Felt wrote:
Reply all
Reply to author
Forward
0 new messages