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

983

Published on

Published in: Technology, Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
983
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
    • pear.php.net 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
    • http://cvs.php.net/pearweb/package.xml
    • http://cvs.php.net/pearweb/package-pepr.xml
    • http://cvs.php.net/pearweb/pearweb.php
    In package.xml look for pearweb.php and you see how we do it for pear.php.net 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. http://c7y.phparch.com (Look for my articles) http://pear.php.net/manual/en/ http://www.packtpub.com/PEAR-Installer/book [email_address] Resources

×