Your SlideShare is downloading. ×
Website releases made easy with the PEAR installer
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Website releases made easy with the PEAR installer


Published on

Published in: Technology, Self Improvement
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Website releases made easy with the PEAR installer
      • Helgi Þormar Þorbjörnsson
  • 2. Who Am I ?
    • An Icelandic guy with a weird name
    • iBuildings UK
    • PEAR Group member
    • PEAR Developer – among other things, the installer
    • maintainer
    • PEAR <insert-job-title> ;-)
    Tuesday, February 26, 2008
  • 3. How to pronounce my name
    • Þormar Þorbjörnsson being my last name
    • ASCII version being Thormar Thorbjoernsson
    • Þ = Th and pronounced like That or a Thorn
    • Now you are more enlightened about this Icelandic thing called Thorn
  • 4. Alternative, not a replacement
      • Deploying websites with the PEAR installer is an alternative, not a replacement for other approaches.
  • 5. Other alternatives
    • FTP Upload
    • SCP / rsync
    • Capistrano
    • SVN / CVS / <insert fancy version control> deployment
    • etc etc etc
  • 6. PEAR Installer features to the rescue
    • Easy upgrading
    • Custom tasks
    • Post installation tasks
  • 7. PEAR Installer features to the rescue
    • Custom file roles
    • Ability to depend on a PEAR installable packages
    • Easy to split websites into smaller parts and give each part their own release cycle
  • 8. Last but not least
      • Tasks, custom file roles and so on are done with something we are familiar with ....
  • 9.  
  • 10. What is required
    • The PEAR Installer
    • Knowledge how to package your code with the installer
    • A bit of know how and RTFM skills
    • And not being afraid to read the source ;-)
  • 11. Dismantling your site
    • Split your site into logical pieces
    • Do not split into as many packages as you can!
    • Micro management is bad, mmmmkay
  • 12. Dismantling your site
    • Each piece of site has its own package.xml file
    • The website it self (the core package) has its own package.xml which all the split off pieces will depend on
  • 13. Dismantling your site Web Services Backend Frontend Forum Website
  • 14. The packages we get
    • Website
    • Website_Frontend
    • Website_WebServices
    • Website_Backend
    • Website_Forum
  • 15. Custom file roles
    • This feature allows you to write your own file roles
    • PEAR supports php, test, data, www and src by default
    • People have written their own file roles for various whacky reasons:
      • In relation to templates
      • Custom handling of data files
      • Just to name few
  • 16. Post installation tasks
    • Handy feature for all the family
    • Write a simple PHP task that you can run after the installation
      • Clean up after the installation, temp dirs or similar
      • DB setup / upgrade tool
      • vhost adding / updating
      • Prime Caches
      • And just about anything you can dream up
  • 17. Need to know about post install We do not run post install script auto! Quick output what it looks like to have a post install script around pear/pearweb has post-install scripts: /usr/share/PEAR/pearweb.php pearweb: Use &quot;pear run-scripts pear/pearweb&quot; to finish setup. DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES
  • 18. Post install task <file name=&quot;postinstall.php&quot; role=&quot;php&quot;> <tasks:postinstallscript> <tasks:paramgroup> <tasks:id> askdb </tasks:id> <tasks:param> <tasks:name> yesno </tasks:name> <tasks:prompt> Install database? </tasks:prompt> <tasks:type> yesno </tasks:type> <tasks:default> y </tasks:default> </tasks:param> </tasks:paramgroup> </tasks:postinstallscript> </file>
  • 19. Post install task pear run-scripts pear/pearweb Including external post-installation script &quot;/usr/share/PEAR/pearweb.php&quot; - any errors are in this script Inclusion succeeded running post-install script &quot;pearweb_postinstall->init()&quot; init succeeded Update pearweb database? [y] :
  • 20. Post install task
    • Add more task:param to tasks:paramsgroup so the user gets more questions / prompts per task
    • Has the ability to skip a param group based on user input
    • task:type currently has 3 different types
      • string
      • password
      • yesno
  • 21. Update pearweb database? [y] : 1. Database driver : mysqli 2. Database User name : pear 3. Database password : pear 4. Database host : localhost 5. Database name : pear 1-5, 'all', 'abort', or Enter to continue:
  • 22. Real world example
    In package.xml look for pearweb.php and you see how we do it for Good place to study how things are built up
  • 23. Puzzling the pieces together
      • Now we run these pseudo packages and we want to install only part of our website structure
      • pear install –alldeps Website_WebServices Website_Frontend Website_Backend
      • This will install your only those 3 parts of your website along site all the deps which one of those is the Website.
  • 24. Puzzling the pieces together Web Services Backend Frontend Website
  • 25. Questions?
  • 26. (Look for my articles) [email_address] Resources