Georgia Tech Drupal News

Posted On:

Topics covered: Performance for Sitebuilders - Erik Webb.

I. HouseKeeping

    • Wilby Room in Library will be our meeting location for future Drupal meetings.

II. Erik Webb "Performance for Site Builders"

  • Link to &is-processed=1" allow="fullscreen" allowfullscreen>Screen Recording of Presentation.
  • Link to just the slides from the presentation.
    View more presentations from Erik Webb
  • Most "performance" presentations (like this recent webinar from Acquia) are designed for those developers that straddle the line between coder and sysadmin. In reality, many Drupal sites are built completely from the administrative interface by non-coders, non-sysadmins - we call "site builders." This unique role is often overlooked during in-depth, technical presentations and relegated to "Module XYZ 101" sessions.

  • This presentation is designed to give site builders the knowledge and tools to built high-performance web sites without even touching PHP or the command-line. The Drupal community is ripe with ready-built modules and best practices that can significantly improve the performance of any Drupal site. Use the rapid site building modules to get your site up and running, then learn how to cut those page load times!

  • In this session you will learn how to:

      • Apply general best practices to your development process.

      • Tune the most common slow-performing modules (e.g. Views, Panels).

      • Evaluate the performance of modules before installing them.

      • Optimize a site's performance using additional modules.

Meeting Attendees: 25.

Posted On:

Topics covered: DrupalCon Denver - Eric Huffman; QuickStart install profile for GT Drupal; Faculty profiles - Lew Lefton; OIT web hosting knowledge sharing - Peter White & Mike Mealing; Symlinks enable easier drupal update testing - Diego Remolina.

I. DrupalCon Denver - Neat stuff we learned last month (Eric Huffman)

    • All video presentations are ONLINE (at session pages on http://denver2012.drupal.org/program/schedule)
    • Major theme = mobile.
    • Had interesting informal meetings with lots of other higher education groups there about multi-sites & how to roll out sustainable Drupal infrastructure
    • Particularly good presentations to watch:
      • If you don't mind adult language: morten's hilarious presentation on HTML4 "S" (in between HTML 4 & 5): http://denver2012.drupal.org/program/sessions/html-4-s-while-were-waiting-revolution
      • Founder's keynote (Dries) (where Drupal is heading): http://denver2012.drupal.org/keynote/dries-buytaert
      • LukeW keynote on mobile first: http://denver2012.drupal.org/keynote/luke-wroblewski
      • Presentation by Univ of Colorado: http://denver2012.drupal.org/program/sessions/cu-boulders-journey-drupal (check "Nonprofit, Government & Education" track on site for other video presentations on drupal in higher education)

II. Need for quickstart install of Drupal for GT

  • Kimsey Pollard and a number of other folks brought up the need at Tech to have a "turn key" installation for Drupal here.
  • Happily, a small group of themers, developers, and testers is working to get a minimalist GT drupal installation created for the community.
    • Interested members of the GT drupal community can contact Alfred Bacon in Professional Education if they want to help out in any way (don't worry, we all only have a TINY bit of time to work on this, so we're each contributing what little we can, sometimes just eyes on other people's code to give suggestions/hints!)
    • Our goal is to have a usable profile by the end of this summer (2012).
    • Matt Myskowski kindly volunteered a tiny bit of time to look over quickstart profiles, especially the theming (thanks, Matt!)
  • Especially-desired features for this GT quickstart profile mentioned were:
    • widespread need for easy CAS/LDAP management (as required to set drupal roles based on group permissions at GT)
      • some people have hacked the drupal LDAP module to make it work at Tech
      • [edit: LDAP works out of the box for me, BUT the DN is case sensitive. This DN worked for my ldap account:  ou=Accounts,ou=gtaccounts,ou=departments,DC=GTED,DC=GATECH,DC=EDU  --Derek DeRaps]
      • a major issue is how not to create all 20 groups from GTED in drupal as roles, when only want to translate a specific role, such as student
    • Joanie Chembars brought up WYSIWYG (as everyone needs rich text editing)
      • Derek DeRaps highlighted a SUPER helpful session video & page from DrupalCon Denver with a Google doc of notes as well and an example basic install profile on how to best do this (http://denver2012.drupal.org/program/sessions/what-you-see-not-always-what-you-get-it-can-be): key is to ignore default profiles and only create your own to use. Derek volunteered to work on WYSIWYG part of D6 quickstart install profile (and we'll copy what he does into D7 quick start - thanks, Derek!)
      • Some folks were exchanging details on how to get the CKeditor styled properly (so can use specific CSS options in drop down box) - I can't remember who had this solution, though [edit: see note below about patch --Derek DeRaps)
    • and aggregating data (as the Mercury events system so nicely does for our calendars)
      • Update from the brilliant Fletch in Comm & Marketing:
        • hgreader module for Drupal 7 is almost ready to be tested by community (hurrah!)
        • future Mercury functionality might include files/images in feed (still in requirements gathering phase) 

III. Faculty/project website prototypes (Lew Lefton et. al)

Individual faculty profiles/websites (in the works)

  •  Individual Faculty websites/profiles will eventually be automatically created (with no choices for users - because of resource constraints), in OpenScholar
  • Stay tuned for more updates on this Ivan Allen/OIT test project

Project/Research group sites (maybe)

  • Uses OpenScholar.
  • Please feel free to poke around if you want. You should be able to set up your own site through the 'Get your web site' link here http://scholar.iac.gatech.edu/
  • Requires CAS login, and currently only available from campus/vpn/lawn networks.
  • Contact steve.hodges@oit.gatech.edu for more details on this Drupal-based content tool (prototype).

School/College site (unlikely)

  • OpenAcademy is similar to OpenScholar but geared more towards a university school or college web site.
  • My guess is that OpenAcademy is less useful for us because our schools have pretty much worked out their web sites already. But I mention it here in case anyone is interested.
  • There's a totally vanilla installation here: http://openacademy.iac.gatech.edu/
    • If you want to log in and explore, info is:
      • admin
      • s3s@me123
  • Contact steve.hodges@oit.gatech.edu for more details on this Drupal-based content tool (prototype).

IV. Knowledge sharing by awesome OIT web hosting team (Peter White & Mike Mealing)

    • Mike Mealing and Peter White from the OIT web hosting team were at the meeting and gave great insight into how web hosting is working hard for our GT community.
      • The WH team currently provides a general web hosting platform. They want to make a turn key drupal solution (but, sadly, doesn't have the resources now to do so). Because of this resource limit, when requesting a web hosting site (at https://hosting.gatech.edu/request/), everyone has to sign an agreement that you understand that OIT does NOT offer support services for installing or maintaining your website and that these tasks are the responsibility of the site owner or its administrators.
      • Question: why not drush on web hosting? Answer: would have to put entire PHP inside chroot jail (which defeats security purpose). Don't want to do for all sites, or even all drupal sites (as lots of users won't use/need).  Might be able, are still exploring, to eventually put for drupal sites that really need it.
      • However, they are working to figure out if they could fit support for installatron (http://installatron.com/) into web hosting (as it allows for automatic security updates to drupal - neat!).
    • Gave tips on how you can install & configure modules using a profile, but turn them off at the end of the installation process, so that they are ready to spring into action if simpler sites later need more advanced features.
    • Question from team: Do non-GT users need WYSIWYG? Answer: yes, a number of people have growing industry partnerships and external constituents.
      •  Ask because Web Firewall Application sometimes thinks all rich text editing is attempted spam and so web hosting has made VPN and on campus network traffic only ignore this. So, to edit Drupal sites off campus, user MUST be able to login to VPN at: http://ssl.vpn.gatech.edu. This snazzy web hosting feature will:
        • ONLY tunnel your individual browser (without disturbing other connections you have on your computer at the same time) & you don't need to download any client - hurrah!).
        • Can even do smb shares (for mac shared directories).
        • Note SSH is still experimental with this VPN setup (not ready for prime time yet).
    • Brilliant tip for GT-newbies: you can easily create GTaccounts for external users (on http://passport.gatech.edu under "Sponsored Guests").
      • In this way, they can authenticate with CAS (or use VPN) for your drupal sites
      • Note for CAS setup - if using zimbra, all GTaccounts end in mail.gatech.edu on the backend (e.g. jdoe3@mail.gatech.edu), regardless of alias (e.g. jane.doe@oit.gatech.edu)
    • Derek heard lots of DrupalCon discussions on ways to get better performance from Drupal using memcache and varnish
      • We can already use memcache on web hosting: super exciting!
        • memcache offers perfomance gains for authenticated users; no improvement over Varnish for anonymous traffic.
      • Varnish is a longer term discussion, that needs investigation for web hosting.
        • HUGE performance gains for anonymous (unauthenticated) traffic - essentially serving static content - this is very good thing and should be a priority for all of us to get working.  --Derek DeRaps
      • APC is for caching PHP execution; another longer-term discussion for web hosting.
      • DrupalCon presentation: http://denver2012.drupal.org/program/sessions/real-world-performance-analysis-how-identify-performance-problems-your-own-sites
    • Is there interest in learning shell programming/bash?
      • See great example in next section by Diego!
      • If other people are interested, OIT might offer a small, informal class in how to do shell scripting for those of us who need to learn.
      • Contact Adelle Frank if you'd like to get in on this class.

V. Symlinks enable easier drupal update testing (Diego Remolina)

    • Diego Remolina got a great tip from Justin Filoseta in Math about using symlinks to enable easier update testing on drupal sites on web hosting. This is a direct copy of his how-to email to the drupal listserv:
    • Perhaps this could be turned into a "best practice" for running php apps in web hosting (pending the blessing of OIT and review by everyone)? CAUTION: not all php apps are done the same way and you can have some that will simply not work properly with this setup (e.g. Digital Signage app called concerto).

The Principle

Use symlinks.

How to set it up on Web Hosting

OIT Webhosting provides each site with a folder called private. By default, this folder has 700 permissions. In order for the symlinks to work, you will need to change the permissions:

bash-3.2$ chmod o+x /private
bash-3.2$ ls -ld /private
drwx-----x 4 cra root 4096 Apr 20 17:33 /private

Now, you create an apps folder and a drupal folder inside there as well.

mkdir -p /private/apps/drupal

Now you can go into that folder and download drupal there.

bash-3.2$ cd /private/apps/drupal
bash-3.2$ wget http://ftp.drupal.org/files/projects/drupal-6.25.tar.gz

You can extract the contents and you will also create a symlink

bash-3.2$ tar -xzf drupal-6.25
bash-3.2$ ln -s drupal-6.25 drupal

So you are basically making a link to drupal-6.25. When drupal 6.26 is released, you can simply get it downloaded and expanded, without any harm to your running site. At this point you should have something like this:

bash-3.2$ ls -l
total 1088
lrwxrwxrwx 1 cra psacln      11 Apr 18 12:20 drupal -> drupal-6.25
drwxr-xr-x 9 cra psacln    4096 Feb 29 16:55 drupal-6.25
-rw------- 1 cra psacln 1104514 Apr 18 12:17 drupal-6.25.tar.gz

The second step is to make symbolic links work for you. In this case, I am hosting a drupal website under a folder called cra in the httpsdocs folder.

bash-3.2$ mkdir /httpsdocs/cra
bash-3.2$ cd /httpsdocs/cra

Now we are going to create all the symbolic links back to the drupal code. At this point you create the links using the "drupal" symlink you had originally created as follows:

for i in `ls ../../private/apps/drupal/drupal | grep -v txt`; do ln -sf
../../private/apps/drupal/drupal/${i} . ; done

If you are doing this for a new site (for the first time), you will have a symlink to sites. So only for first time sites, you will have to delete that symlink and copy the contents of the sites folder.

WARNING: ONLY DO THIS ON A NEW SITE INSTALL.

bash-3.2$ pwd
/httpsdocs/cra
bash-3.2$ rm sites
bash-3.2$ cp -rp /private/apps/drupal/drupal/sites

(Line 3 will only work if sites is a symlink, otherwise will say it cannot delete an existing folder)

Now that "sites" is no longer a symlink, we have to fix one more thing for completeness. Just in case a new version of drupal has a different default.settings.php file, you need to go into the default folder, remove the file and symlink again, so

bash-3.2$ cd /httpsdocs/cra/sites/default/
bash-3.2$ rm default.settings.php
bash-3.2$ ln -s
../../../../private/apps/drupal/drupal/sites/default/default.settings.php

Now you can create new sites, e.g:

bash-3.2$ cd /httpsdocs/cra/sites/
bash-3.2$ mkdir www.cra.gatech.edu

bash-3.2$ cd www.cra.gatech.edu
bash-3.2$ cp ../default/default.settings.php settings.php

How an Update Would Work

In order to test a site update to a new drupal revision you would do the following:

  1. Backup your database
  2. Set your site to maintenance mode.
  3. Download and expand your drupal code (let's pretend drupal 6.26 is out).

bash-3.2$ cd /private/apps/drupal/
Expand
bash-3.2$ tar -xzf drupal-6.26.tar.gz

Now you should have a new folder called drupal-6.26 which you need to use as the target for your symlink

bash-3.2$ ln -sf drupal-6.26 drupal

Sometimes ln -sf(force link replacement) does not work, so the workaround is to remove the link and recreate it

bash-3.2$ rm drupal ; ln -s drupal-6.26 drupal

At this point, you can go and run update.php on your site. Hopefully things will be fine. If something is not working as expected, you can simply go and change the link back so that drupal points to 6.25 instead of 6.26.

If you have very old versions of drupal, you can simply change the link to those to "recreate" something you knew work with an older version in a matter of seconds.

Meeting Attendees: 15.