Drupal Deployment Troubles and Problems
Upcoming SlideShare
Loading in...5

Drupal Deployment Troubles and Problems



Drupal Camp Kyiv2010 (http://camp10.drupal.ua/) presentation about Troupbles and Problems during Deployment Drupal projects

Drupal Camp Kyiv2010 (http://camp10.drupal.ua/) presentation about Troupbles and Problems during Deployment Drupal projects



Total Views
Views on SlideShare
Embed Views



2 Embeds 6

http://www.linkedin.com 5
https://www.linkedin.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Drupal Deployment Troubles and Problems Drupal Deployment Troubles and Problems Presentation Transcript

    • Drupal DTP
      Troubles and Problems
      @landike (Andrii Lundiak)
    • Deployment steps
    • Steps level
    • What we have today to discuss
      Hosting environment worries
      First install steps
      Magic php.ini
      This very helpful .htaccess file
      We all like settings.php
      Strange unbelievable error messages
      Let find more Troubles and more Problems and Ways how to fix them.
    • Useful MySQL stuff
      • mysqlimport --password=mypass --user=myuserdbname dbname.sql;
      • mysql -h DBSERVER -p -u username dbname < dbname.sql
      • mysqldump-u username -p dbname > dbname.sql
      • mysql -h DBSERVER -p -u username dbname > dbname.sql
      Usemysql.cnffile to run easier
      user = myuser
      password = mypass
      host = DBSERVER
      database = dbname
      mysql< dbname.sql
    • Log Files
      It's good to know what we have on hosting server and especially where Log files are.
      To access the files directly on the server, on some Unix shells, you can type the following command:
      tail -f /var/log/apache2/error.log
      To check that you are looking at the right file, you may wish to type the following commands to find where the log files are.
      grep 'ErrorLog' /etc/apache2/*
      grep 'ErrorLog' /etc/apache2/*/*
    • Error Reporting
      If error reporting is turned off, you could be getting a fatal error but not seeing it. On a production site, it is common to have error reporting turned off.
      Take care to have in index.php:error_reporting(E_ALL);ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE);
      this will help in debug/test mode
    • Install and Go
      Create Database … and enjoy easy installation
      If some php settings are not in properly state, install process will tell you (about register_globals, mbstring.http_output, safe_mode, etc.)
    • php.ini magician
      How to override php settings:
      value of a configuration option in php.ini
      .htaccess directives
      using ini_set() in settings.php
      or use control panel on your hosting server
      or call to admin person
      or change hosting server 
    • Another way to override
      If you have access to php.ini it’s AWESOME, and It’s great if you have your own php.ini near by www
      On some hosting servers such kind of option is used to enable using local php.ini file:
      ssuPHP_ConfigPath /hsphere/local/home/sitelocation
      This setting must be located in .htaccess file
      And php.ini file must exists in /hsphere/local/home/sitelocation/php.ini
    • Allowed memory size …
      Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)...
      Increase PHP's memory limit, up to 16MB or 24M or 32MB or especially 96MB for a site with built-in image processing using ImageAPI GD
      memory_limit = 16M in your php.ini file.
      php_valuememory_limit 16Min your .htaccessfile
      ini_set('memory_limit', '16M'); in your settings.php file
    • Execution time of 30s exceeded
      “Fatal error: Maximum execution time of 30 seconds exceeded in ….includesdatabase.mysql.inc on line XXX”
      The default PHP timeout defined in php.ini is 30 seconds. This is too short for some activities like listing/enabling modules.
      max_execution_time 120; (php.ini)
      php_valuemax_execution_time 120 (.htaccess)
      ini_set(‘max_execution_time’, ‘120’) (settings.php)
      Set “max_execution_time “ = 3000 and Enjoy  (is very useful in testing stage)
    • Dear friend - .htaccess
      .htaccess was not uploaded (Access Denied message, Disabled Clean urls)
      • RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
      “PHP: Error parsing …” - () was in .htaccess comments
      http://example.com -> http://www.example.com
      • # RewriteCond %{HTTP_HOST} ^example.com$ [NC]
      • # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
      http://www.example.com -> http://example.com
      • # RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
      • # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
    • Lovely settings.php
      $cookie_domain = 'example.com';
      • Drupal automatically generates a unique session cookie name for each site, based on full domain name
      • This option is used in CKFinder configuring
      • Do not miss it, going from dev-server to production-server
      Take care about file permission and $db_url and $update_free_access
      Don’t forget, if you have $db_prefix, you should use {table} in SQL query build
    • WSOD (White Screen Of Death)
      "Invisible" Errors or Blank Pages, how to fix:
      SELECT * FROM watchdog LIMIT 20;
      Easy manual quick-fixing
      • rename couple of modules step-by-step
      • bench_chart.module, wsod_emergency.php, wsod.module
      Increase CPU limit on hosting server
      • With low level (3-5%) some heavy pages will be “blank”
    • Another silly mistakes
      Whitespace at the Begin and End of a PHP File
      • See more about <? and <?php in short_open_tag “php configuration option” information
      • God, bless IDEs, which remove trailing whitespace. Or you should take care with your coding 
      “You are not authorized to access this page”
      • browser multi tab access
      • block settings changes
      • admin/build/themes on slow hosting
      To fix this issue: call drupal_flush_all_caches(); anywhere
    • Disabling Modules
      Via the Module Administration Page in the UI
      Administer > Site Building > Modules … Uncheck and Save
      Via the Database
      If your WSOD is caused by a specific module and you cannot access the module admin page, go to system table, set status to 0 and then clear the cache table
    • You should have cron
      There are many ways to configure cron (curl, lynx, wget, even GET), but …
      Here is real “drupal” way:
      Change file permission for scripts/drupal.sh (chmoda+x scripts/drupal.sh)
      Use in crontab file (or in Hosting Control Panel) this command:
      /home/account/www/scripts/drupal.sh --root /home/account/www http://default/cron.php
      PS. Cron is used by many modules:
      Update, Event, Aggregator, Search, Notifications, Send, Image watermark, Watchdog and other which must run time-related tasks.
    • Suggestions Before Deployment
      Be afraid free hosting with additional ads
      • admin/build/[modules|menu] doesn’t run
      • admin/build/themes run with errors
      • JavaScript/AJAX/XMLHttpRequest errors
      These actions would be great to do before/during/after deployment:
      TRUNCATE TABLE watchdog;
      drupal_flush_all_caches(); or “Clear Cached Data”
      "Rebuild Permissions" in Post Settings page
      “Re-Index site”
    • Think at first || rapid development
      Masquarade module
      Devel/Themer module
      Drush module
      “TEASER break” button in rich editor an Node-System
      Use professional IDE
    • References
      Drupal Deployment Checklist (!!)
      • http://www.metaltoad.com/blog/drupal-deployment-checklist
      General information about cron with Drupal
      • http://drupal.org/getting-started/6/install/cron
      Advanced Cron Modules
      • http://groups.drupal.org/node/17072/edit +++ http://www.drupalcron.org/
      Dtools module (WSOD tablet)
      • http://drupal.org/project/dtools/cvs-instructions
      Advanced PHP Error Handling via htaccess (!!!)
      • http://perishablepress.com/press/2008/01/14/advanced-php-error-handling-via-htaccess/
      Stupid htaccess Tricks (!!!)
      • http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
      Drupal Tweaks (helping with allocation of php memory size)
      • http://drupal.org/project/drupal_tweaks
      Drush - Drupal Shell utility
      • http://drupal.org/project/drush || http://groups.drupal.org/drush || http://drupal.org/node/477684
      Automating Drupal Deployment with drush_make and Features (!!!)
      • http://drupalcampaustin.org/sessions/automating-drupal-deployment-drushmake-and-features
      Install with Drush (!!! – GREAT short list of command to install)
      • http://knol.google.com/k/michael-chelen/how-to-install-drupal-using-drush/gxxp1ckx8nad/5#
    • That’s all
      Send me email. I’m here landike@gmail.com
      Follow me in twitter @landike
      Call me via Skype – lan_researcher
      See my “media” updates on www.landike.mp
      drupal user – LAN_DRUPAL