php open for business - seiden group
TRANSCRIPT
Community PHP is Open for Business AlanSeiden
Principal,SeidenGroupMentorsCIOs&developmentteamsDelivermoderntechnicalsolutions
OpenSourceAdvocateCo-developerofPHPToolkitforIBMiFounderofClubSeidencommunity
Host/Sponsor,CIOSummit
Alan Seiden
Developweb/mobileappsSupportPHP,includingCommunityPlus+
Traindevelopers:opensource&IBMi
PHPAPIsGitNode.jsDb2Python
Open Source Experts
seidengroup.com
w FreeCIOSummiteventsandconferencepresentations
w IBMiPHPToolkit
w ContributedtotheoriginalZendFramework
w AswemakefixestoPHPcomponents,wegivebacktothecommunityw Ibm_db2w PDO_IBMw Manyothersw Unittestsforhighquality(100%passwithibm_db2)
Giving back to the community
w “RPGFive”performingatRPG&Db2Summitconference
Seiden Group in the Community
w “IBMiFreshFaces”interviewvideo2017
Seiden Group Thought Leaders
w cu
International partnership
https://www.cscweb.jp/
Why PHP?
w PHP:bringingwebapplicationstoIBMisince2005-6
w Award-winningapplicationsacrossallindustriesw AccessyourDb2data,RPGcode,andmorew PHPToolkithelpedcompatibilityandintegration
w WebservicesandAPIsw FirsttasteofcallingexternalAPIsfromIBMi
w Creditcardpayments… Salesforce…manymorew Convertinggreenscreenstoweb
Web apps and APIs
w PHPcanbecalledfromCLandRPGtoo!w Softwaredevelopmentkits(SDKs)oftenwritteninPHPw ControlflowfromtraditionalRPGw UsePHPpowertoaccessAPIs,paymentgateways,createspreadsheets,
graphics
Use PHP from RPG, CL
w Communityandconferencesites
w Wordpress..beyondblogs..StarWarssite,more!
Wordpress and content management
w 2004AlanneededPHPon“i5”!w i5php.net—RobWard’ssite
w 2006ZendCore—IBMshippedinitsDVDsw ZendPlatformpaidadd-on
w 2008-9ZendServerw No-costOSS+adminpages+paidadd-onsbundledw Basic/Professional/Enterpriselicenses
w 2019RPM-basedopenPHPbegunw IncludesODBCagain,nowin64bits
PHP on IBM i timeline
w PHPisgoing“Open”withindustry-standardRPMformat,64-bit,installablewithYUMw InitiatedbyIBMandZendin2019w SeidenCommunityPlus+in2020
w ZendServer“Basic”licensewithdrawnbyJune2021w Professional/Enterprisestillavailableforpurchasew OpenPHP(e.g.CommunityPlus+)fillsthegap
PHP in 2020-21: What’s NEW
w Quicktoinstallandupgradew Lightweight—buthaswhatyouneed
w Db2connectivity:w Choiceofibm_db2,PDO_ODBC,PDO_IBM,andodbc
w SupportsallthePHPframeworksw Laminas(formerlyZendFramework)w Laravel,others
w Supportavailable
w “ThesePHPRPMsmakemyhearthappy.ThisPHPissimilartowhatI’musedtoinLinux.”—youngdeveloper
More about CommunityPlus+ PHP
• PHPandMySQLarefoundationsofWordPressandmanyinternetsites
• MariaDBisagoodsubstituteforMySQL
• Theserunonmostplatforms,includingIBMi
PHP and MySQL
• InTR3/TR9,IBMwilldeliverMariaDB(drop-inreplacementforMySQL)viaYum
• Seeannouncementhere:• https://www.ibm.com/support/pages/ibm-i-73-tr9-enhancements
Good news for MySQL users
w PublicsitebasedonWordPressonIBMithatcallsRPGstoredprocedures
w http://www.grar.com/
GRAR case study
• WPprovidesmarketingsite,themes,goodlook
• CustomPHPcodeincludedinkeypages
GRAR uses WP for portal
• Security/accesstopages
• CallingRPGstoredproceduresforheavylogic
• Livedemo(iftime)
Custom PHP used by GRAR
IBM’s Open Source Commitment
w IBMiChiefArchitectSteveWilloffersstrategicdirectiontoCIOSummitguestsin2018
Open source was in IBM’s plan
w Overthelastfewyears,fasterandbetter!
w Yumcommandforeasyinstallation
w RPMpackagemanagerw https://en.wikipedia.org/wiki/RPM_Package_Manager
w AccessClientSolutionstomanagewithaGUI
IBM built framework for open source
Why RPM your PHP?
w Minutesinsteadofhours
w NoFTP’ing,unzipping,SAVFs
w Industry-standardYumcommandw SameasothercurrentIBMiopensourcew StandardIBM/QOpenSys/pkgslocation
w Quickupgradesw yum update
w Gainevenmorespeedbyautomating/scriptingtheinstallationw Customizationforyourcountry/userbaseispossible
Quick installation
Flexible installation
w Chooseor
w ExistingApacheandFastCGIconfigsstillwork!
w Multiplewebserverinstancesfordifferentworkloads
w TestinparallelwithexistingZendServer
w Installmultipleversionsviachroot
w RPMPHPis64-bit,whilepreviousPHPwas32-bitw (asofOctober2020)
w Whatdoesthatmean?w Morememory,nomorememorydumperrors
w Good-bye,“LDR_CNTRL”memoryhack!
More bits = more data without errors
w PHP7.4andcounting
w SomecommunityPHPreposweremissingsomeoftheextensionsthatwerebundledinZendServer….“Werebuildthem!”
w SeidenGroupmaintains“missing”modulesw 64-bitIbm_db2,Ldap,Zip,Imagick,ssh2,intlw mail()withstandardsendmailAlso,CommunityPlus+…
w InstallsPHPToolkitw ProvidesdigitallysignedRPMs(security)w Setsoptimized.inisettingsforIBMi
This has what you want in PHP
w CompatiblewithothercommunityPHPofferings
w UseyumtoupdateandinstallfromCommunityPlus+orothers
w Weuseallstandard,opensourcecomponents.Nothingproprietary
w Givesyouoptions(nolock-in)
CommunityPlus+ Compatibility
Ready for Business
w SeidenCommunityPlus+packages:
w Digitallysignedforsecurityw https://www.seidengroup.com/2020/07/23/rpm-package-signing/
w Updatedfrequently,alongwithPHP’sownschedule
w Availableinmultiplemodernversions(7.3and7.4today)
w SupportedbySeidenGroup’sPHPexpertsw Quick,accurateadviceandfixes
Business-Ready Open Source
PHP 7 and CommunityPlus+
Performance Benchmarks
w SpurredbycompetitionwithFacebook’s“Hack”
w Noticeablespeeduponlargesites—pages“pop”
PHP 7 Faster than PHP 5.x
w Newfeaturesin7.x:w https://www.php.net/manual/en/migration70.new-features.php
w Yourcodeshould“justwork”withafewexceptionsw https://www.seidengroup.com/2017/07/24/resources-for-upgrading-to-php-7-on-ibm-i/w OldMySQLcodeusingthemysql_*functionsshouldbeupdatedto
mysqli_*(“IMySQLImproved”)orPDOw Oldregularexpressionsyntax“ereg()”wasremoved
w RPMupgradetoPHP7:usespath/QOpenSys/pkgs/bin/php
Upgrading from PHP 5.6 to PHP 7
w FasterthanPHP7.3outofthebox
w AgoodsteptowardPHP8.0
w Alsoanopcacheimprovementw Opcache.preloadw opcache_compile_file($path)pre-compilesscriptsw “Warmsup”theopcacheuponwebserverrestartw Tryitwithlargeframeworksw https://wiki.php.net/rfc/preload
w Languageupdates:w https://www.php.net/releases/7_4_0.php
PHP 7.4
w WHEN:w Targetedforlate2020w ReleaseCandidate3isavailable
w WHAT:w JustInTime(JIT)compilerw ExecutecompiledcodedirectlyonhardwareratherthaninVMw MayhelpCPU-boundapplicationsw Expectmodestperformanceimprovementsw https://thephp.website/en/issue/php-8-jit/
PHP 8.0
Benchmark performance test https://github.com/vanilla-php/benchmark-php
Performance results (first pass)
Withallextensionsturnedoff,forapples-to-applescomparisonNote:real-worldresultscanalwaysdifferfromsyntheticbenchmarks
Let’s Install PHP!
w Ifyouoptedinwhenyouregisteredforthiswebinar,wewillsendyoudetailedinstructionsandlinks
w WerecommendSSHtogetintoPASEw STRTCPSVR*SSHDw Industry-standard:youngerdeveloperswillthankyou(installthebashshellforthem!)
w OpensourcePASE-basedsoftwareworksbestinSSH
Install PHP using Yum and ACS
ACS Open Source Package Management
w IBMiSSHserverservicemustberunningonport22
Open Source Package Management (ACS)
w LoginwithaQSECOFRor*ALLOBJleveluser
Open Source Package Management
w Youmayreceivetheseprompts.JustsayYes!
Open Source Package Management
w Allisworkingifyouseealistofpackages!
w Theyumcommand:w yum install php-* w TIP:Youruserprofilemusthave*ALLOBJtoinstallviaYum
w SetupApachewebserverw CommunityPlus+hasautilitytosetupanewApacheserverautomaticallyw Youcancreatemorethanone!Dev/test/productionw RunsinparallelwithZendServerforeasytesting
w OrreuseexistingPHPApacheinstances
Install PHP using Yum (continued)
Configuration tips
w FastCGIprestartsPHPjobsforfastwebsites
w Minimalcontentsoffastcgi.conf(in/www/myserver/conf/):w Server type="application/x-httpd-php" CommandLine="/QOpenSys/pkgs/bin/php-cgi" StartProcesses="1”
w IpcDir /www/myweb/logs
w Additional/optionalkeys:w HowmanyPHPjobstostartw SetEnv="PHP_FCGI_CHILDREN=20"
w Howlongtowaitbeforea408timeoutw RequestTimeout="60"
FastCGI configuration
w nginxwebserverw FlexiblealternativetoApachew Allowsautomatedsetup,includingofSSL(noDCM)w NginxworkswellwithalternateFastCGIcalledphp-fpmw Advancedoptionforopensourcegurus(popularonLinux)
w Howtoinstallw ‘yuminstallnginx’orviaACS
Nginx alternative to Apache
w Php.inisettingsw Edit.INIsettingsdirectlywithoutmessinganythingupw /QOpenSys/etc/php.iniand/QOpenSys/etc/conf.d/w Editphp.inidirectlyusingEDTF/yourfavoriteeditor/vimJw Thenrestartwebserverandgo!
w Example:date.timezonew https://www.php.net/manual/en/timezones.phpw date.timezone = America/New_York
Simple editing of PHP INI settings
Update easily and often
w Usetheyumcommand:w yum update
w OrACS“Updatesavailable”tab
Easy updates using Yum
I would like security release PHP 7.4.11
“yum update” command provides!
New security update unlocked! <?php phpinfo() ?>
InstallingPHPcanbethiseasy!
Services and Support
w Installationandmigrationassistancew Makeiteasy!
w FreecommunityQ&Aw Ryver(https://ibmioss.ryver.com)w IBMiOSSmidrange.comlist(https://archive.midrange.com/opensource)
w SeidenGroupsupportSLAsforproductionbreak/fixanddevelopersupportw SeidenGroupexpertswithapassionforPHPandIBMi
We fully support CommunityPlus+
Migration to CommunityPlus+ PHP w WorkwithyourteamtoinstallfromSeidenrepositoryw Devandproductionserversw Configureandensureyouhaveallneededextensionsw Reviewcurrentsettings—timeoutsforcallingAPIsetc,optimizew Paralleltestingwithpreviousversion—includingperformance
w Codeconversionasneededw ibm_db2toODBCconversionifyoupreferODBCw AnyupdatesforcompatibilitywithPHP7.xw Ensuretoolkitcalls
w InstallationandconfigofODBContheIBMi,ifneeded
Production Support for CommunityPlus+ PHP
w UPTIME:Haveconfidenceinuptimewith24x7break/fixproductionsupportforPHP,Apache,toolkit,etc.onproductionIBMiserver
w Wehandleallissues,including:w Webserverwillnotstartw Issuesafterupgradesw Databaseortoolkitconnectivityissues
w Monitoring,proactivesupportandadvice,freeupgradeservicewithinaminorversionofPHP
Dev Server Support for IBM i PHP
w DevelopmentserversupportforPHPandenvironmentw Testinadvanceofgeneralrelease,orrequestspecialcomponents
w Regularbusinesshoursorbyarrangement
w Refinedeveloperenvironmentthatmaybehinderingproductivityw Usescreenshare,calls,teleconferencesw Configurationandsetupquestions
w Resellerpartnerarrangementsavailable
Linux and Windows Environment Support
w DeveloperSupport,businesshoursorbyarrangement
w “Call-a-friend”foradviceandguidance
w Someincludeddiscussiontopics:w Gitworkfloww Automationw Fasteronboardingofnewdevelopers
-centralizedconfigurationw Linuxadmincommandsandadvice
w Agrowingareafordevelopment-savetime,getbetterandbetterwithourLinuxandWindowsenvironmentexpertise
Consulting, Training, web/API Development
w APIstrategy--RPGandPHPw IntegrationwithSalesforce/Mulesoft/creditcardprocessingetc.
w Training/mentoringforIBMidevelopersinmodernPHPskillsandframeworks--ILEtoPHPinbabysteps
w Staffaugmentationandappdevelopment
w Performanceoptimizationandscalability
w ExecutiveITcoaching/businesssynergy
w IBMi,opensource,Db2,RPG…
Reseller Partnerships w Designedforsoftwaredevelopersandconsultantsw SeidenGroupsupportforyouandyourcustomers
w Choiceofbasicsupportor24/7ifyourclientneedsadditionalPHPorothersupportfortheirowndevelopmentinitiatives
w Specialbuildscustomizedforyourclientbase,softwarepackages,orregion
w Technicalsupportforyourteamw Youmayidentify/brandthesupportanddistributionsasyourownoralongwithSeidenGroupbranding(yourchoice)
w Specialpricingtomakethearrangementfeasibleandprofitableforyou
AlanSeidenSeidenGroupOpenSourceSupportandCommunityPlus+PHP
Ho-Ho-Kus,[email protected]:@alanseidenStayinTouch:seidengroup.com/tips
Contact | Stay in Touch