Closed (fixed)
Project:
Documentation
Component:
Missing documentation
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
2 Jan 2010 at 09:33 UTC
Updated:
2 Nov 2011 at 17:30 UTC
I think it would be a great addition to the documentation to have a section "now i have made my site and ready to go live what do I need to do"
This should be a simple check list that covers, security, performance etc.
It seems to be really hard to get this information.
Comments
Comment #1
jhodgdonThis seems like a good idea to me.
Comment #2
arianek commentedagreed, there are some posted on blogs, we should see if we can adopt and rework one of them.
Comment #3
gecko001 commentedIdeas for the list:
Comment #4
jhodgdonOne basic site building checklist is here: http://poplarware.com/drupalcheatsheet.html#checklist
Some of the steps are no longer necessary (I need to update the article -- for instance, clean URLs are now set up during installation). But it should give at least a basic outline.
RE: turning off Views UI - I wouldn't mention that specifically. I would just say "turn off any modules that your site isn't actively using, for efficiency".
Comment #5
shyamala commentedComment #6
jhodgdonThis doesn't look like a totally generic list to me, but there are some good thoughts.
Things I would remove: most people on shared hosting (the vast majority of Drupal users) cannot use a PHP accelerator, and how do you configure auto log out and session time? Also, I personally don't use the statistics module ever (most of my clients use Google Analytics or some other method of tracking).
I'm not sure it's a complete list either...
Comment #7
shyamala commentedDrupal Configuration
Email configuration with details pertaining to the live server to be configured for
Site SMTP settings
Contact module settings
Organic Group Notification email settings
Or any such Email settings
GMAP, Google Adsense, Google Webmaster, Facebook/Twitter integrations or any other such external integrations: Ensure details pertaining to the live server for these functionalities are updated.
Performance:
Enable HTML caching for anonymous users. In scenarios where the content is dynamic and needs to be refreshed on every page load we can not enable the same.
Enable CSS and JS aggregator are enabled
Secure Master admin password
Turn off PHP errors
Upgrade Drupal and the Contirb module to the Latest Version
Server and Infrastructure
Schedule Cron
Schedule Back up of Database
Plan for Server availability, and Maintenance
Content / User
Clear all test Content or Users if any
Make sure all static content pages like FAQs, About Us, etc. has been updated
Analytics
Use Drupal's Statistic modules only for low traffic site
Configure Google Analytics and disable statistics for a high traffic site
Comment #8
arianek commentedNot necessarily very generic, but I've been working on one at work as well:
- Turn on CSS and JS aggregation for the production site, and set it to on in the settings.php file as well so it doesn't get disabled on rebuilds.
- For sites using install profile + .make file, set variables with the install profile's name: 1) Drupal variable install_profile (set in db) with variable_set (-'install_profile', $value) or drush set install_profile .
- Check core + modules are up to date.
- Configure and enable Mollom or spam filtering.
- Configure and enable Google Analytics.
- Double check user registration settings.
- Double check all permissions.
- Delete any test content.
- Change the email address for the site mail on the Site Info admin page.
- Run a link checker if it's an old/migrated site.
- Make sure cron is set up
- Make sure search is working (especially if it's a separate search server like Solr/Searchlight).
- Test the Unfuddle > Feedback setup is working if it's being used.
- Update any necessary API keys if they were used on the dev/stage sites (Google Analytics, Mollom, GMaps, Flickr, etc.)
- Install Nagios (status monitoring) module and file an internal ticket to have its monitoring set up.
Comment #9
arianek commentedoops status
Comment #11
pfrenssenHere's are some additional checks that were not mentioned before. I reference some modules as examples, so it is not completely generic.
- Check the status report: admin/reports/status
- Remove unused modules and all modules that are not needed in production (such as the Devel module)
- Make sure errors are logged and not shown on the screen: admin/settings/error-reporting
- Check the watchdog for errors and warnings, and fix these. Check for missing files and URLs.
- Optimize all images with tools such as optipng, jpegoptim, Smush.it, ...
- Check if one of the domain redirect options is enabled in the .htaccess file. Either redirect URLs without www. or vice versa.
- Remove test files (in addition to the test content as mentioned before)
- Verify that the site email address in /admin/settings/site-information is not a test address. Also verify email addresses in modules (such as Rules, Actions, Webform, ...).
Comment #12
skesslerOne of thing the things that I think something like this could help with is helping beginning users with site planning. If this document starts with planning and then moves into topics like server infrastructure and then things that are easy to miss like making sure cron is configured.
Key topics for planning should include.
Of course there are many more questions. Also it would be good to help provide answers.
-Steve
Comment #13
arianek commentedanyone feel like amalgamating the more generally applicable points into a single list that we can post?
Comment #14
Carolyn commentedI took a stab at an amalgamated list. Where would this page go? I think the list could be generic, but also give specific examples for common use cases. It could outline a general approach for building a custom launch checklist.
What about something like this?
When your site goes live, there are a variety of concerns that as a development site, your site has not had to face. These include Performance, User interaction, Security, Maintenance, and Quality Assurance concerns. Every site is different. This checklist will get you started with common tasks needed before a site launch, and get you thinking about the kind of tasks that may be needed for your specific site needs.
Performance
- Go to site Configuration > Performance, and turn on caching and CSS and Javascript aggregation
- Turn off unnecessary modules, such as Devel
User Interaction
- Protect your forms against spam and attacks
-- What kind of forms are anonymous and authenticated users able to access on your site?
-- Have you enabled captcha, recaptcha, or a spam service such as Mollom?
- Email: Verify that the site email address in /admin/settings/site-information is not a test address. Also verify email addresses in other modules that send notifications.
- Index your site for search at search settings and test
- Check if one of the domain redirect options is enabled in the .htaccess file. Either redirect URLs without www. or vice versa.
Web Services
- Update API keys, such as Mollum, Twitter, or Google Apps
Security
- Check your site permissions
- Check that your admin passwords are secure
- Upgrade Drupal Core and Contrib modules to the latest version
- Turn off error reporting at admin/settings/error-reporting
Backups and Maintenance
- Cron - If cron is not running, your database will get bloated.
- Backups - At least one backup of your site is a good idea. Check out the Backup and Migrate module for easy database backups.
- Statistics - You'll want to monitor your site going forward. Do you plan to use Drupal core statistics, or have you set up another service such as Google Analytics?
- Check the watchdog for errors and warnings, such as missing files or URLs
Quality Assurance
- Remove test content, such as "lorim ipsum" text, dummy users, or devel generated content
Comment #15
arianek commentedgreat - let's get some reviews!
Comment #16
jhodgdonGood start at a list! A few comments:
a) I would add this to the Security section:
-- On the Permissions page, verify what permissions anonymous and authenticated users have been given
-- On the User Settings page, verify that account creation settings are as you intend (can users create accounts? do they need approval?)
b) In the User Interaction section, maybe the Email sub-section should also mention verifying the text of the email messages your site generates?
c) I wouldn't say "at least one database backup is a good idea", but rather would say "regular database backups are essential".
d) watchdog -> ... whatever that report is actually called in the UI, which I think is "Recent log entries". I would also suggest people go to the Status Report and make sure there are no red flags.
Comment #17
Carolyn commentedHere's a new version. It's probably good enough to be posted. Where should this page go - maybe there could be a section called "Launching a site" in the Administration Guide?
When your site goes live, there are a variety of concerns that as a development site, your site has not had to face. These include Performance, User interaction, Security, Maintenance, and Quality Assurance concerns. Every site is different. This checklist will get you started with common tasks needed before a site launch, and get you thinking about the kind of tasks that may be needed for your specific site needs.
Performance
- Go to site Configuration > Performance, and turn on caching and CSS and Javascript aggregation
- Turn off unnecessary modules, such as Devel
User Interaction
- Protect your forms against spam and attacks
-- What kind of forms are anonymous and authenticated users able to access on your site?
-- Have you enabled captcha, recaptcha, or a spam service such as Mollom?
- Email: Verify that the site email address in /admin/settings/site-information is not a test address. Also verify email addresses in other modules that send notifications, and verify the text of email messages your site generates.
- Index your site for search at search settings and test
Domain
- Check if one of the domain redirect options is enabled in the .htaccess file. Either redirect URLs without www. or vice versa.
- Web Services
-- Update API keys, such as Mollum, Twitter, or Google Apps
Security
- Check that your admin passwords are secure
- Upgrade Drupal Core and Contrib modules to the latest version
- Turn off error reporting at admin/settings/error-reporting
- On the Permissions page, verify what permissions anonymous and authenticated users have been given
- On the User Settings page, verify that account creation settings are as you intend (can users create their own accounts, and do they need approval?)
Backups and Maintenance
- Cron - If cron is not running, your database will get bloated.
- Backups - Regular database backups are essential. Check out the Backup and Migrate module for easy database backups.
- Statistics - You'll want to monitor your site going forward. Do you plan to use Drupal core statistics, or have you set up another service such as Google Analytics?
- Check the Watchdog > Recent log entries for errors and warnings, such as missing files or URLs. Check that there are no red flags in Status Report.
Quality Assurance
- Remove test content, such as "lorim ipsum" text, dummy users, or devel generated content
Comment #18
Carolyn commentedI went ahead and made a page for this, here: http://drupal.org/node/1076460
I think it should be moved to be under "Backing up and migrating a site"
Comment #19
jhodgdonI've adjusted the weight so it falls after Backing up and migrating, as you suggested.
Great work Carolyn! I made a few very minor edits, and I think we can mark this Fixed now.
Comment #20
arianek commentedThanks all, I love coming back to an issue and seeing it already done!
Comment #22
arianek commentedJust adding my updated version in case anyone comes to this (or if someone wants to go through and incorporate into the page):
Configuration
- Review ALL config settings.
- Double check all user permissions. 7: /admin/people/permissions, 6: /admin/user/permissions
- Double check all user registration settings. 7: /admin/config/people/accounts; 6: /admin/user/settings
- Double check all content type settings defaults. 7: /admin/structure/types; 6: /admin/content/types
- Change the email address for the site mail on the Site Info admin page. 7: /admin/config/system/site-information 6: /admin/settings/site-information
- Be sure any fields just used for teasers are set as "hidden" in the RSS field display settings (if enabled). 7: /admin/structure/types/manage/[content-type]/display/rss 6: /admin/content/node-type/[content type]/display/rss
- Check input format 7: /admin/config/content/formats; 6: /admin/settings/filters and text editor/wysiwyg settings 7: /admin/config/content/wysiwyg; 6: /admin/settings/wysiwyg/profile
- Check RSS settings 7: /admin/config/services/rss-publishing; 6: /admin/content/rss-publishing and post settings 7: ???; 6: /admin/content/node-settings
- Review pathauto defaults and settings 7: /admin/config/search/path/patterns and /admin/config/search/path/settings; 6: /admin/build/path/pathauto
- Review file system/upload settings 7: /admin/config/media/file-system and ???; 6: /admin/settings/file-system and /admin/settings/uploads and per user file upload settings (IMCE if used 7: ???; 6: /admin/settings/imce)
- Make sure breadcrumbs have been customized appropriately (using http://drupal.org/project/custom_breadcrumbs)
- Check Google Analytics is enabled and key has been added /admin/settings/googleanalytics
- Review Mollom config and make sure module is on and keys have been added /admin/settings/mollom
- Turn on CSS and JS aggregation for the production site, and set it to on in the settings.php file as well so it doesn't get disabled on rebuilds.
- Delete any test content.
- Update any necessary API keys if they were used on the dev/stage sites (Google Analytics, Mollom, GMaps, Flickr, etc.)
- Look at the status report page (7: /admin/reports/status) and make sure it is a sea of green!
Server setup
- Double check cron is set up + running.
- Double check settings.php and files folder have appropriate perms.
- Make sure search is working (especially if it's a separate search server like Solr/Searchlight).
Code
- For sites using install profile + .make file, set variables with the install profile's name: 1) Drupal variable install_profile (set in db) with variable_set ('install_profile', $value) or drush set install_profile .
- Check core + modules are up to date.
- Run a link checker if it's an old/migrated site.
- Test the Unfuddle > Feedback setup is working if it's being used.
- Install Nagios module and file an internal ticket to have its monitoring set up.