SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Agile Technology Architects LLC
                 Architects,
Achieving Business Results from the Edge of Chaos


    Jim Oberholtzer
    CEO/Chief Technical Architect



Securely Deploying Websites in PHP
                          on IBM i
                  Zend Webinar – October 5, 2011
Jim Oberholtzer, MSE, CCBCP
Agile Technology Architects, LLC
         31 years experience rising to VP/CIO
         IBM Subject Matter Expert, IBM I
     Agile provides services:
       g p
         IBM POWER Systems infrastructure and performance
              Architect configurations and provide second opinion services
              Installation d implementation
               I t ll ti and i l         t ti
              Performance and system management services
         Agile development techniques
              Get your IT department moving as fast as the business
              Mix hierarchical management techniques with Agile techniques



    © Agile Technology Architects
            www.atallc.net
Agenda
     IBM i web serving
     Configuring the IBM i Apache Server
     IBM i Work Management for Web Serving
     Networking
     Wrap up

     Note: We will not discuss PHP security/Networking since
      that is covered in other webinars etc.




    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving
     Two web servers for IBM i
         WebSphere Application Server
              Express edition ships with every IBM i instance
              Full server is a chargeable feature
              Main servers for Java 2 and Enterprise Edition Java environments
         Apache Web server
              Tomcat removed as of 6.1
              Integrated Web Application Server (IAS) replaced it
              IAS includes most of the Java function that might be needed.
     Zend S
      Z d Server Utilizes the Apache Server
                 U ili     h A h S



    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving
     Primary Web server is Apache
         Licensed Program product xxxx-DG1
              5770-DG1 at V7R1
              Apache level 2.2.11 at V6      (V5R4 at 2.0.63, another reason to upgrade)

                  Apache Software Foundation Server project at 2.2.21
                  Apache 2.3.14 beta is out
                  IBM very carefully tests apache updates
         Free Additional Software with the OS
         PTF groups
              V7:       SF99368 / Level 10 (10/3/11)
              V6:       SF99115 / Level 22 (10/3/11)
              Tend to come out about every other month
              Order the Java PTF Group at same time (comes with HTTP group)
                  V7:        SF99572 / 6 (10/3/11)
                  V6:        SF99562 / 17 (10/3/11)

    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving
     Odds are fairly strong xxxx-DG1 is installed
         V7: 5770-DG1 *BASE
              Located on media: B_GROUPx_04
              English 2924 is in Group 1, 2, and 3
         V6R1: 5761-DG1 *BASE and option 1
                                    p
              *BASE is IBM HTTP Server for i5/OS
              Option 1 is Triggered Cache Manager
              Located on media B29xx_02:
                  B2924_02 for US English (2924)
     Java is required along with Apache
         V7: 5761-JV1: *BASE, options 8, 9, 11, 12, 13
              576 JV :       S , opt o s           , , 3
         Located on B_GROUPx_05
         Group rules same as DG1
         Option 8 is the 32 bit J2SE (it’s really the one you want)
                                      (it s

    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving
     Of course the Zend Server requires DG1 and:
                                                   -V6R1--      -V7R1--
     Portable App Solutions Environment   33      5761SS1      5770SS1
     Qshell                               30      5761SS1      5770SS1
     IBM Portable Utilities for I5/OS     *base   5733SC1      5733SC1
     OpenSSH, OpenSST, Zlib               1       5733SC1      5733SC1

     It’s rare to find installations without all of these
     There are no PTF groups available for these products
         PTFs come with the other groups
         A search of the registered knowledge base did not reveal any
          PTFs issued specifically for these products




    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration
     The default IBM i Admin web instance is at port 2001
         http://your.serveraddress.com:2001
          http://your serveraddress com:2001




                                    Click here to get to the HTTP
                                    Configuration options
                                    C f

    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration
     Web administration is found in the first link on this page




    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration
     An alternative method of getting to the web
      administration panels




                                        Click here to get to the HTTP
                                        Configuration options
                                        C f

    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration
     The default IBM i Admin web instance is at port 2001
         http://your.serveraddress.com:2001
          http://your serveraddress com:2001




    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration
   Web Administration for i
   Select the “Manage” tab
                Manage




    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration




     Manage all HTTP servers
       a age a        se ve s
         The panel will remember you and where you were last
         Each server is hyperlink to its configuration
         Notice have only one server running at port 80
          N i Ih           l                   i
    © Agile Technology Architects
            www.atallc.net
IBM i Web Configuration
   Here’s the main
    p g
    page to administer
    the site
   Notice Tools near
    bottom.
    bottom
       Config Editor
       Statistics
       Web Log monitor
   If you have SSHD
    running
       Install VIM in PASE
       Use PuTTY

        © Agile Technology Architects
                www.atallc.net
IBM i Web Configuration
   Default location for Zend Server is /www/zendsvr
   Directories for configuration, htdocs (the web site) and
    logs default here

   This is fine for production
      What about Dev?
      I like /home/userprofile




    © Agile Technology Architects
            www.atallc.net
Create Development Web Site…
     Premise:
         Each developer will have a library directory and web address
                                       library, directory,
         Security is your call, but separating the developers makes sense
         Production runs on Port 80/443 as a Virtual Host
         A test version of the instance runs on port 10088
              Notes:
                  Zend does not as yet support running multiple copies of the Zend Server
                   on one system. Reasons are valid, but way beyond the scope of this session
                  I have tested and made it work, but in a very lightly loaded system
         The site at port 10088 will be integration testing
         URL, DNS, etc are up to date
         Firewalls are set up properly

    © Agile Technology Architects
            www.atallc.net
Development Web Site…
   Step one: Create the base configuration
        Each developer needs a home directory
             /home/iusr0001
             Authority looks like:
             QTMHHTP1
             QTMHHTTP
                 Too much authority             for a
                  production system
                 Integration should look
                  like production does
             *PUBLIC could be *USE
                         ld b




        © Agile Technology Architects
                www.atallc.net
Development Web Site…
     Copy the htdocs directory from the Zend Install
         We modified this to have a couple of examples in it
              DB2 SQL example
              PhPinfo.php etc…..
         The hidden file .htaccess (note the “.” in the first p
                                    (                          position)
                                                                       )
              Required for Zend Routing to work
                           ************Beginning of data**************
                           SetEnv APPLICATION_ENV development             This is important for the Zend Framework!
                           RewriteEngine On
                           RewriteCond %{REQUEST FILENAME} -s [OR]
                                         %{REQUEST_FILENAME}
                           RewriteCond %{REQUEST_FILENAME} -l [OR]
                           RewriteCond %{REQUEST_FILENAME} -d
                           RewriteRule ^.*$ - [NC,L]
                           RewriteRule ^.*$ index.php [NC,L]
                            ************End of Data********************

              Unless specified, forces all the pathnames “-s”, Symbolic Links “-l” and
               Directories “-d” into one place.
              This is really part of Apache rewrite rules. See web for too much
               information…..
               information

    © Agile Technology Architects
            www.atallc.net
Development Web Site…
     Now a CLP that creates each users web container:
CHGVAR     &NEWPRF       VALUE('iusr' *CAT &USRNBR)
CHGVAR     &USRDIR        VALUE('/home/' *TCAT &NEWPRF)
CHGVAR     &USRDIR1      VALUE(&USRDIR *TCAT '/htdocs')
CRTLIB     LIB(&NEWPRF) TYPE(*TEST) TEXT(&USRTEXT) AUT(*EXCLUDE)
MKDIR      DIR(&USRDIR) DTAAUT(*EXCLUDE) OBJAUT(*NONE)
CHGVAR     &USRDIR1      VALUE(&USRDIR *TCAT '*')
CPY        OBJ('/home/iusr0000/htdocs/') TODIR(&USRDIR) SUBTREE(*ALL)              +
                REPLACE(*YES) OWNER(*KEEP)
                       (*    )      (*    )
    CHGAUT OBJ(&USRDIR1) USER(QTMHHTP1) DTAAUT(*RWX)      OBJAUT(*ALL) SUBTREE(*ALL)
    CHGAUT OBJ(&USRDIR1) USER(QTMHHTTP) DTAAUT(*RWX)      OBJAUT(*ALL) SUBTREE(*ALL)
    CHGAUT OBJ(&USRDIR1) USER(*PUBLIC) DTAAUT(*EXCLUDE) OBJAUT(*NONE) SUBTREE(*ALL)

    CRTUSRPRF      USRPRF(&NEWPRF)    PASSWORD(PASSW0RD)                               +
                   PWDEXP(*YES)       USRCLS(*PGMR)                                    +
                   CURLIB(&NEWPRF)    TEXT(&USRTEXT)                                   +
                   SPCAUT(*NONE)      PWDEXPITV(30)                                    +
                   GRPPRF(IUSR)       HOMEDIR(&USRDIR)                                 +
                   MAXSTG(10240000)   GRPAUTTYP(*PGP)

    CHGOWN         OBJ(&USRDIR) NEWOWN(&NEWPRF) SUBTREE(*ALL)
    CHGOBJOWN      OBJ(&NEWPRF) OBJTYPE(*LIB)   NEWOWN(&NEWPRF)

      Only the executable code shown.
      Contact me if you want the full program with error handling
                     y                 p g                       g


    © Agile Technology Architects
            www.atallc.net
Development Web Site…
     Now the APACHE set up
         httpd.conf
          httpd conf holds the Apache configuration
         You can use Systems Director Navigator for IBM i




         You could also use:
              http://yoursystemaddress:2001/HTTPAdmin
    © Agile Technology Architects
            www.atallc.net
Development Web Site…
          Click on: Manage, then, HTTP Servers, and in the drop
           down, Zendsvr – Apache

   This is where you manage
    the server instance
   Set up virtual hosts for:
       Developers
       Test sites
       Different applications
   Go to General Server
    Configuration
   Open up tools
   Edit Configuration File


         © Agile Technology Architects
                 www.atallc.net
Development Web Site…
   The directive: “UserDir /home/*/htdocs” is what you need
   Apache then uses: http://common1.idevcloud.com:10088/~userprofile
   Once you
    press “apply”,
    then “OK”
          OK
                                                       Note
   Restart the                                       the location
    server by                                          of the file

    using the
    button
   You can of
    course use
    any editor
    you wish



     © Agile Technology Architects
             www.atallc.net
Virtual Host set up
     Apache can do virtual web sites by name or IP address
     Here I set up two virtual sites both on port 80
         One is for the public web site, one for a customer interface




    © Agile Technology Architects
            www.atallc.net
Development Web Site..
     Lets consider some other APACHE directives
         Why does this work?
          http://common1.idevcloud.com:10088/phpmyadmin
         And:
             http://common1.idevcloud.com:10088/editor
             h //             1 id l d        10088/ di
         does not? (hint, if you add the .php suffix it will….)




    © Agile Technology Architects
            www.atallc.net
Development Web Site
     Lets consider some other APACHE directives
         Why does this work?
          http://common1.idevcloud.com:10088/phpmyadmin
         And:
             http://common1.idevcloud.com:10088/adminer
             h //             1 id l d        10088/ d i
         does not? (hint, if you add the .php suffix it will….)
         Answer: alias directives.
                        directives
            Alias /phpmyadmin /usr/local/zendsvr/phpMyAdmin
            …..
            <Directory /usr/local/zendsvr/phpMyAdmin>
               Options FollowSymLinks
               AllowOverride None
               Order allow,deny
               Allow from 127.0.0.1
            </Directory>

    © Agile Technology Architects
            www.atallc.net
Work Management
     Often forgotten portion of managing a web site
     Zend has at least two, sets of distinct jobs that run
                        two
         Subsystem QHTTPSVR shipped with *BASE
              Add a second memory pool to the subsystem
              Change the routing entry to point to the new memory
              Consider a bit of tuning in the shared pools
         Zendsvr subsystem also shipped with *BASE
                                               BASE
     MySQL has a subsystem and may also use QUSRWRK
         Depends on how started
            p
              Menu ZSMENU will start in ZMYSQL subsystem
              MySQL started manually (shown earlier) will start in QUSRWRK
         Memory management critical for performance
          M                   ii lf         f
    © Agile Technology Architects
            www.atallc.net
Work Management
     Three portions of performance to consider
         Zend Server Settings
              Several parameters in the server can directly affect Zend Performance
              Zend Server Performance is not MySQL or DB/2 performance
              Beyond the scope of this presentation
         DB/2 Performance
              Index strategy / QAQQINI settings extremely important
              Know which query Engine your query is using CQE/SQE
              Index advisor / Job Watcher
              Beyond scope of this presentation
         Work management of several objects
                   g                   j
              Zend Server subsystem
              Zend Apache Instance (subsystem QHTTPSVR)
              Data Access jobs (
                           j    (QZDASOINIT and QSQSRVR) )


    © Agile Technology Architects
            www.atallc.net
Work Management
     Change QHTTPSVR subsystem to have 2nd memory pool
         Change Shared Pool to reflect change
               g                            g
         Add storage pool to subsystem
         Change routing entry on subsystem
         Restart subsystem jobs
     Change Zend Subsystem
         Same procedure as QHTTPSVR
               p            Q
     After changes, watch it for a day or so
         Make sure active/wait transitions are zero
         Watch f l i
          W h faulting
              May have to add memory
              Activity Level critical since multi threaded jobs are running


    © Agile Technology Architects
            www.atallc.net
   WRKSHRPOOL
   Size depends
   Activity needs to
    be high enough
    for LOTS of
    threads
   Smart Paging



                                       Use F11 to change text
                                       Most under used part of
                                        Shared
                                        Sh d pools l
                                       Leave tuning alone for
                                        now



    © Agile Technology Architects
            www.atallc.net
Work Management
   Change the subsystem description
CHGSBSD SBSD(QHTTPSVR/QHTTPSVR) POOLS((2 *SHRPOOL1))
                                          SHRPOOL1))
   Change the Routing Entry on the subsystem
        Routing entry determine which pool of memory will be used
        Most common mistake made when tuning (not changing it)
   QHTTPSVR only has one routing entry
        Use:
          CHGRTGE SBSD(QHTTPSVR) SEQNBR(10) POOLID(2)
        Need to restart all of the jobs in the subsystem
        Use:
          STRTCPSVR SERVER(*HTTP) RESTART(*HTTP) HTTPSVR(ZENDSVR)



        © Agile Technology Architects
                www.atallc.net
Work Management
   Zend Subsystem gets same treatment as QHTTPSVR
       Determine which memory to use
           Is there already a shared pool set up that’s usable
           Like jobs go in like memory
       Change the subsystem description to add memory pool
            g          y           p                 yp
        CHGSBSD SBSD(ZENDSVR/ZENDSVR) POOLS((2 *SHRPOOL1))
       Change routing entry


                                                                  Communications

                                                                  Server Jobs


       Note that Multiple changes are needed….
       Two different classes are used


    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving Networks
     TCP/IP Magic can be used to separate the LANs
     Even on the one network cable
         Can be used to manage TCP/IP traffic from/to the production web
          server
              Keeps web serving traffic away from the internal LAN
                  p            g            y
              Example:
                  Web traffic from firewall comes in on 10.10.10.2 / 255.255.255.252
                      Allows Two addresses: 10.10.10.1, 10.10.10.2
                      Subnet: 10.10.10.0 Broadcast: 10.10.10.3
                       S b t 10 10 10 0 B d t 10 10 10 3
                      The Web Server is 10.10.10.2
                      The firewall is 10.10.10.1
                  Corporate LAN is 10.2.2.x Subnet is 255.255.240.0
                      There could be as many as 4094 computers/printers/etc on the network
                      From 10.2.2.1 to 10.2.15.254
              Traffic on the 10.10.10.x network will not cross over to 10.2.2.x without
               a router


    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving Network
   Firewall uses
    NAT to
    translate                  10.2.2.x
                               10 2 2 x                                 Internet
    internet to
    internal
    address                                                 65.32.51.115
                                                                                   65.32.51.110
   IBM I is set to
    not route
    between
    networks                                                 10.2.2.1
                                                                             10.10.10.1
   Networking                   Subnet
    purists would                                                                           Subnet
                                 255.255.240.0
    have two                                                                                255.255.255.252
    firewalls and
    two interface
    cards                                        10.2.2.2                                10.10.10.2


       © Agile Technology Architects
               www.atallc.net
IBM i Web Serving Networking
     Setting up packet filter rules
         Need to use System I Navigator
         Found at Network / IP Policies / Packet Rules
         Right click and bring up Packet Rules Configuration:




    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving Network
     Set the interfaces alias names:
      ADDRESS MyInternalIPAddress      IP = 10.10.10.1 TYPE = TRUSTED
      ADDRESS MyProdIPAdress IP = 10.2.2.1     TYPE=TRUSTED
      ADDRESS MyPublicIPAddress      IP = 65.32.51.110 TYPE = BORDER

     Now set the filter rule to allow any outbound but only
                                         y                 y
      port 80 inbound
FILTER SET Set4InternalInterface ACTION = PERMIT DIRECTION = OUTBOUND SRCADDR =
    MyInternalIPAddress DSTADDR = * PROTOCOL = * DSTPORT = * SRCPORT = * JRN = OFF
FILTER SET Set4InternalInterface ACTION = PERMIT DIRECTION = INBOUND SRCADDR = *
    DSTADDR = MyInternalIPAddress PROTOCOL = TCP DSTPORT = 80 SRCPORT = * JRN = OFF

     If you wanted to assign line names to an interface names,
      do it like this:
FILTER_INTERFACE            LINE = MYWEBLINE   SET = Set4InternalInterface
FILTER_INTERFACE            LINE = MYETHLINE   SET = Set4InternalInterface



    © Agile Technology Architects
            www.atallc.net
IBM i Web Serving Network
        To stop FTP at the packet level:
            Define the service, create the filter assign it to an interface
                        service             filter,
SERVICE FTPControl PROTOCOL = TCP DSTPORT = 21 SRCPORT = *
SERVICE FTPData PROTOCOL = TCP DSTPORT = 20 SRCPORT = *

#
FILTER SET DenyFTP ACTION = DENY DIRECTION = OUTBOUND SRCADDR = * DSTADDR = * SERVICE = FTPControl
JRN = OFF
FILTER SET AllowMeFTP ACTION = DENY DIRECTION = OUTBOUND SRCADDR = 10.2.2.110 DSTADDR = * SERVICE =
FTPControl JRN = OFF


#
FILTER_INTERFACE      LINE = MYETHLINE   SET = AllowMeFTP
FILTER_INTERFACE      LINE = MYWEBLINE   SET = DenyFTP
FILTER_INTERFACE      LINE = MYETHLINE   SET = DenyFTP



            Now you have allowed yourself FTP from your workstation
             (10.2.2.110) and denied everyone else
            You have stopped FTP on both the internal and web interface
       © Agile Technology Architects
               www.atallc.net
IBM i Web Serving
     Whew!! That was a lot of information in a short time
     We:
         Made sure we had all the parts installed
         Set up individual developers web sites
               p                  p
         Set up some work management
         Put some security on the network




    © Agile Technology Architects
            www.atallc.net
Where do you find me?

                 Agile Technology A hit t LLC
                 A il T h l       Architects,
                 Achieving Business Results from the Edge of Chaos


                                 Jim Oberholtzer
                           Jim.oberholtzer@atallc.net
                         Agile Technology Architects, LLC
                              21305 W. Glengarry Rd
                                            g y
                              New Berlin, WI 53146
                                   414/433-4363

© Agile Technology Architects
        www.atallc.net

Contenu connexe

Tendances

AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...WASdev Community
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudMigrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudJohn Donaldson
 
The app server, web server and everything in between
The app server, web server and everything in betweenThe app server, web server and everything in between
The app server, web server and everything in betweenColdFusionConference
 
BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012marekgoldmann
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesDavid Currie
 
Cloud Foundry and OpenStack
Cloud Foundry and OpenStackCloud Foundry and OpenStack
Cloud Foundry and OpenStackvadimspivak
 
Don't touch that server
Don't touch that serverDon't touch that server
Don't touch that servercrdant
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?Tim Ellison
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerMatthias Einig
 
Web Logic Jboss Final
Web Logic Jboss FinalWeb Logic Jboss Final
Web Logic Jboss FinalMohamed Atef
 
BoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 TempeBoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 Tempemarekgoldmann
 
Auto scaling and dynamic routing for was liberty collectives
Auto scaling and dynamic routing for was liberty collectivesAuto scaling and dynamic routing for was liberty collectives
Auto scaling and dynamic routing for was liberty collectivessflynn073
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellMatthias Einig
 
20180607 master your vms with vagrant
20180607 master your vms with vagrant20180607 master your vms with vagrant
20180607 master your vms with vagrantmakker_nl
 
Ibm db2 10.5 for linux, unix, and windows developing perl, php, python, and...
Ibm db2 10.5 for linux, unix, and windows   developing perl, php, python, and...Ibm db2 10.5 for linux, unix, and windows   developing perl, php, python, and...
Ibm db2 10.5 for linux, unix, and windows developing perl, php, python, and...bupbechanhgmail
 
AAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE DeploymentsAAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE DeploymentsWASdev Community
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and DockerDavid Currie
 
Virtualization aware Java VM
Virtualization aware Java VMVirtualization aware Java VM
Virtualization aware Java VMTim Ellison
 

Tendances (20)

AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudMigrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
 
The app server, web server and everything in between
The app server, web server and everything in betweenThe app server, web server and everything in between
The app server, web server and everything in between
 
BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012
 
ICX Campus Demo
ICX Campus DemoICX Campus Demo
ICX Campus Demo
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
 
Cloud Foundry and OpenStack
Cloud Foundry and OpenStackCloud Foundry and OpenStack
Cloud Foundry and OpenStack
 
Don't touch that server
Don't touch that serverDon't touch that server
Don't touch that server
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution Deployer
 
Web Logic Jboss Final
Web Logic Jboss FinalWeb Logic Jboss Final
Web Logic Jboss Final
 
BoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 TempeBoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 Tempe
 
Auto scaling and dynamic routing for was liberty collectives
Auto scaling and dynamic routing for was liberty collectivesAuto scaling and dynamic routing for was liberty collectives
Auto scaling and dynamic routing for was liberty collectives
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShell
 
20180607 master your vms with vagrant
20180607 master your vms with vagrant20180607 master your vms with vagrant
20180607 master your vms with vagrant
 
Ibm db2 10.5 for linux, unix, and windows developing perl, php, python, and...
Ibm db2 10.5 for linux, unix, and windows   developing perl, php, python, and...Ibm db2 10.5 for linux, unix, and windows   developing perl, php, python, and...
Ibm db2 10.5 for linux, unix, and windows developing perl, php, python, and...
 
AAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE DeploymentsAAI-1305 Choosing WebSphere Liberty for Java EE Deployments
AAI-1305 Choosing WebSphere Liberty for Java EE Deployments
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
Virtualization aware Java VM
Virtualization aware Java VMVirtualization aware Java VM
Virtualization aware Java VM
 

En vedette (6)

Dev & Prod - PHP Applications in the Cloud
Dev & Prod - PHP Applications in the CloudDev & Prod - PHP Applications in the Cloud
Dev & Prod - PHP Applications in the Cloud
 
Zend framework: Toma el control
Zend framework: Toma el controlZend framework: Toma el control
Zend framework: Toma el control
 
Il testing con zend framework
Il testing con zend frameworkIl testing con zend framework
Il testing con zend framework
 
Application Deployment on IBM i
Application Deployment on IBM iApplication Deployment on IBM i
Application Deployment on IBM i
 
Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!
Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!
Code Tracing with Zend Server 5: A Flight Recorder for your PHP Applications!
 
Resolving problems & high availability
Resolving problems & high availabilityResolving problems & high availability
Resolving problems & high availability
 

Similaire à How do I securely deploy Internet websites in PHP on my IBMi?

Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success StoryUpgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success StoryRevelation Technologies
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Red Hat for IBM System z IBM Enterprise2014 Las Vegas Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Red Hat for IBM System z IBM Enterprise2014 Las Vegas Filipe Miranda
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackNTT Communications Technology Development
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2vasuballa
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi Shlomo Vanunu
 
Windows Loves Drupal
Windows Loves DrupalWindows Loves Drupal
Windows Loves DrupalAcquia
 
Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2
Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2
Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2pasalapudi
 
OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...
OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...
OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...vasuballa
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite
2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite
2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN SatelliteShawn Wells
 
SHARE.ORG Orlando 2015
SHARE.ORG Orlando 2015SHARE.ORG Orlando 2015
SHARE.ORG Orlando 2015Filipe Miranda
 
NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkNFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkMichelle Holley
 
Red Hat for Power Systems IBM Enterprise2014 Las Vegas
Red Hat for Power Systems IBM Enterprise2014 Las VegasRed Hat for Power Systems IBM Enterprise2014 Las Vegas
Red Hat for Power Systems IBM Enterprise2014 Las VegasFilipe Miranda
 
OFC418 Advanced MOSS Administration
OFC418 Advanced MOSS AdministrationOFC418 Advanced MOSS Administration
OFC418 Advanced MOSS AdministrationChandima Kulathilake
 
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...Kuralamudhan Ramakrishnan
 
WebSphere Portal Technical Overview
WebSphere Portal Technical OverviewWebSphere Portal Technical Overview
WebSphere Portal Technical OverviewVincent Perrin
 

Similaire à How do I securely deploy Internet websites in PHP on my IBMi? (20)

Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success StoryUpgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Red Hat for IBM System z IBM Enterprise2014 Las Vegas Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
 
Windows Loves drupal
Windows Loves drupalWindows Loves drupal
Windows Loves drupal
 
Windows Loves Drupal
Windows Loves DrupalWindows Loves Drupal
Windows Loves Drupal
 
Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2
Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2
Aioug2017 deploying-ebs-on-prem-and-on-oracle-cloud v2
 
OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...
OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...
OOW16 - Deploying Oracle E-Business Suite for On-Premises Cloud and Oracle Cl...
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite
2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite
2009-08-24 Managing your Red Hat Enterprise Linux Guests with RHN Satellite
 
SHARE.ORG Orlando 2015
SHARE.ORG Orlando 2015SHARE.ORG Orlando 2015
SHARE.ORG Orlando 2015
 
NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkNFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function Framework
 
Red Hat for Power Systems IBM Enterprise2014 Las Vegas
Red Hat for Power Systems IBM Enterprise2014 Las VegasRed Hat for Power Systems IBM Enterprise2014 Las Vegas
Red Hat for Power Systems IBM Enterprise2014 Las Vegas
 
OFC418 Advanced MOSS Administration
OFC418 Advanced MOSS AdministrationOFC418 Advanced MOSS Administration
OFC418 Advanced MOSS Administration
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
 
WebSphere Portal Technical Overview
WebSphere Portal Technical OverviewWebSphere Portal Technical Overview
WebSphere Portal Technical Overview
 

Plus de Zend by Rogue Wave Software

Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM iZend by Rogue Wave Software
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Zend by Rogue Wave Software
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)Zend by Rogue Wave Software
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Zend by Rogue Wave Software
 

Plus de Zend by Rogue Wave Software (20)

Develop microservices in php
Develop microservices in phpDevelop microservices in php
Develop microservices in php
 
Speed and security for your PHP application
Speed and security for your PHP applicationSpeed and security for your PHP application
Speed and security for your PHP application
 
Building and managing applications fast for IBM i
Building and managing applications fast for IBM iBuilding and managing applications fast for IBM i
Building and managing applications fast for IBM i
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
To PHP 7 and beyond
To PHP 7 and beyondTo PHP 7 and beyond
To PHP 7 and beyond
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)The Sodium crypto library of PHP 7.2 (PHP Day 2018)
The Sodium crypto library of PHP 7.2 (PHP Day 2018)
 
Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)Develop web APIs in PHP using middleware with Expressive (Code Europe)
Develop web APIs in PHP using middleware with Expressive (Code Europe)
 
Middleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.xMiddleware web APIs in PHP 7.x
Middleware web APIs in PHP 7.x
 
Ongoing management of your PHP 7 application
Ongoing management of your PHP 7 applicationOngoing management of your PHP 7 application
Ongoing management of your PHP 7 application
 
Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7Developing web APIs using middleware in PHP 7
Developing web APIs using middleware in PHP 7
 
The Docker development template for PHP
The Docker development template for PHPThe Docker development template for PHP
The Docker development template for PHP
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
The new features of PHP 7
The new features of PHP 7The new features of PHP 7
The new features of PHP 7
 
Deploying PHP apps on the cloud
Deploying PHP apps on the cloudDeploying PHP apps on the cloud
Deploying PHP apps on the cloud
 
Data is dead. Long live data!
Data is dead. Long live data! Data is dead. Long live data!
Data is dead. Long live data!
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 
Keeping up with PHP
Keeping up with PHPKeeping up with PHP
Keeping up with PHP
 

Dernier

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Dernier (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

How do I securely deploy Internet websites in PHP on my IBMi?

  • 1. Agile Technology Architects LLC Architects, Achieving Business Results from the Edge of Chaos Jim Oberholtzer CEO/Chief Technical Architect Securely Deploying Websites in PHP on IBM i Zend Webinar – October 5, 2011
  • 2. Jim Oberholtzer, MSE, CCBCP Agile Technology Architects, LLC  31 years experience rising to VP/CIO  IBM Subject Matter Expert, IBM I  Agile provides services: g p  IBM POWER Systems infrastructure and performance  Architect configurations and provide second opinion services  Installation d implementation I t ll ti and i l t ti  Performance and system management services  Agile development techniques  Get your IT department moving as fast as the business  Mix hierarchical management techniques with Agile techniques © Agile Technology Architects www.atallc.net
  • 3. Agenda  IBM i web serving  Configuring the IBM i Apache Server  IBM i Work Management for Web Serving  Networking  Wrap up  Note: We will not discuss PHP security/Networking since that is covered in other webinars etc. © Agile Technology Architects www.atallc.net
  • 4. IBM i Web Serving  Two web servers for IBM i  WebSphere Application Server  Express edition ships with every IBM i instance  Full server is a chargeable feature  Main servers for Java 2 and Enterprise Edition Java environments  Apache Web server  Tomcat removed as of 6.1  Integrated Web Application Server (IAS) replaced it  IAS includes most of the Java function that might be needed.  Zend S Z d Server Utilizes the Apache Server U ili h A h S © Agile Technology Architects www.atallc.net
  • 5. IBM i Web Serving  Primary Web server is Apache  Licensed Program product xxxx-DG1  5770-DG1 at V7R1  Apache level 2.2.11 at V6 (V5R4 at 2.0.63, another reason to upgrade)  Apache Software Foundation Server project at 2.2.21  Apache 2.3.14 beta is out  IBM very carefully tests apache updates  Free Additional Software with the OS  PTF groups  V7: SF99368 / Level 10 (10/3/11)  V6: SF99115 / Level 22 (10/3/11)  Tend to come out about every other month  Order the Java PTF Group at same time (comes with HTTP group)  V7: SF99572 / 6 (10/3/11)  V6: SF99562 / 17 (10/3/11) © Agile Technology Architects www.atallc.net
  • 6. IBM i Web Serving  Odds are fairly strong xxxx-DG1 is installed  V7: 5770-DG1 *BASE  Located on media: B_GROUPx_04  English 2924 is in Group 1, 2, and 3  V6R1: 5761-DG1 *BASE and option 1 p  *BASE is IBM HTTP Server for i5/OS  Option 1 is Triggered Cache Manager  Located on media B29xx_02:  B2924_02 for US English (2924)  Java is required along with Apache  V7: 5761-JV1: *BASE, options 8, 9, 11, 12, 13 576 JV : S , opt o s , , 3  Located on B_GROUPx_05  Group rules same as DG1  Option 8 is the 32 bit J2SE (it’s really the one you want) (it s © Agile Technology Architects www.atallc.net
  • 7. IBM i Web Serving  Of course the Zend Server requires DG1 and: -V6R1-- -V7R1--  Portable App Solutions Environment 33 5761SS1 5770SS1  Qshell 30 5761SS1 5770SS1  IBM Portable Utilities for I5/OS *base 5733SC1 5733SC1  OpenSSH, OpenSST, Zlib 1 5733SC1 5733SC1  It’s rare to find installations without all of these  There are no PTF groups available for these products  PTFs come with the other groups  A search of the registered knowledge base did not reveal any PTFs issued specifically for these products © Agile Technology Architects www.atallc.net
  • 8. IBM i Web Configuration  The default IBM i Admin web instance is at port 2001  http://your.serveraddress.com:2001 http://your serveraddress com:2001 Click here to get to the HTTP Configuration options C f © Agile Technology Architects www.atallc.net
  • 9. IBM i Web Configuration  Web administration is found in the first link on this page © Agile Technology Architects www.atallc.net
  • 10. IBM i Web Configuration  An alternative method of getting to the web administration panels Click here to get to the HTTP Configuration options C f © Agile Technology Architects www.atallc.net
  • 11. IBM i Web Configuration  The default IBM i Admin web instance is at port 2001  http://your.serveraddress.com:2001 http://your serveraddress com:2001 © Agile Technology Architects www.atallc.net
  • 12. IBM i Web Configuration  Web Administration for i  Select the “Manage” tab Manage © Agile Technology Architects www.atallc.net
  • 13. IBM i Web Configuration  Manage all HTTP servers a age a se ve s  The panel will remember you and where you were last  Each server is hyperlink to its configuration  Notice have only one server running at port 80 N i Ih l i © Agile Technology Architects www.atallc.net
  • 14. IBM i Web Configuration  Here’s the main p g page to administer the site  Notice Tools near bottom. bottom  Config Editor  Statistics  Web Log monitor  If you have SSHD running  Install VIM in PASE  Use PuTTY © Agile Technology Architects www.atallc.net
  • 15. IBM i Web Configuration  Default location for Zend Server is /www/zendsvr  Directories for configuration, htdocs (the web site) and logs default here  This is fine for production  What about Dev?  I like /home/userprofile © Agile Technology Architects www.atallc.net
  • 16. Create Development Web Site…  Premise:  Each developer will have a library directory and web address library, directory,  Security is your call, but separating the developers makes sense  Production runs on Port 80/443 as a Virtual Host  A test version of the instance runs on port 10088  Notes:  Zend does not as yet support running multiple copies of the Zend Server on one system. Reasons are valid, but way beyond the scope of this session  I have tested and made it work, but in a very lightly loaded system  The site at port 10088 will be integration testing  URL, DNS, etc are up to date  Firewalls are set up properly © Agile Technology Architects www.atallc.net
  • 17. Development Web Site…  Step one: Create the base configuration  Each developer needs a home directory  /home/iusr0001  Authority looks like:  QTMHHTP1  QTMHHTTP  Too much authority for a production system  Integration should look like production does  *PUBLIC could be *USE ld b © Agile Technology Architects www.atallc.net
  • 18. Development Web Site…  Copy the htdocs directory from the Zend Install  We modified this to have a couple of examples in it  DB2 SQL example  PhPinfo.php etc…..  The hidden file .htaccess (note the “.” in the first p ( position) )  Required for Zend Routing to work ************Beginning of data************** SetEnv APPLICATION_ENV development This is important for the Zend Framework! RewriteEngine On RewriteCond %{REQUEST FILENAME} -s [OR] %{REQUEST_FILENAME} RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] ************End of Data********************  Unless specified, forces all the pathnames “-s”, Symbolic Links “-l” and Directories “-d” into one place.  This is really part of Apache rewrite rules. See web for too much information….. information © Agile Technology Architects www.atallc.net
  • 19. Development Web Site…  Now a CLP that creates each users web container: CHGVAR &NEWPRF VALUE('iusr' *CAT &USRNBR) CHGVAR &USRDIR VALUE('/home/' *TCAT &NEWPRF) CHGVAR &USRDIR1 VALUE(&USRDIR *TCAT '/htdocs') CRTLIB LIB(&NEWPRF) TYPE(*TEST) TEXT(&USRTEXT) AUT(*EXCLUDE) MKDIR DIR(&USRDIR) DTAAUT(*EXCLUDE) OBJAUT(*NONE) CHGVAR &USRDIR1 VALUE(&USRDIR *TCAT '*') CPY OBJ('/home/iusr0000/htdocs/') TODIR(&USRDIR) SUBTREE(*ALL) + REPLACE(*YES) OWNER(*KEEP) (* ) (* ) CHGAUT OBJ(&USRDIR1) USER(QTMHHTP1) DTAAUT(*RWX) OBJAUT(*ALL) SUBTREE(*ALL) CHGAUT OBJ(&USRDIR1) USER(QTMHHTTP) DTAAUT(*RWX) OBJAUT(*ALL) SUBTREE(*ALL) CHGAUT OBJ(&USRDIR1) USER(*PUBLIC) DTAAUT(*EXCLUDE) OBJAUT(*NONE) SUBTREE(*ALL) CRTUSRPRF USRPRF(&NEWPRF) PASSWORD(PASSW0RD) + PWDEXP(*YES) USRCLS(*PGMR) + CURLIB(&NEWPRF) TEXT(&USRTEXT) + SPCAUT(*NONE) PWDEXPITV(30) + GRPPRF(IUSR) HOMEDIR(&USRDIR) + MAXSTG(10240000) GRPAUTTYP(*PGP) CHGOWN OBJ(&USRDIR) NEWOWN(&NEWPRF) SUBTREE(*ALL) CHGOBJOWN OBJ(&NEWPRF) OBJTYPE(*LIB) NEWOWN(&NEWPRF)  Only the executable code shown.  Contact me if you want the full program with error handling y p g g © Agile Technology Architects www.atallc.net
  • 20. Development Web Site…  Now the APACHE set up  httpd.conf httpd conf holds the Apache configuration  You can use Systems Director Navigator for IBM i  You could also use:  http://yoursystemaddress:2001/HTTPAdmin © Agile Technology Architects www.atallc.net
  • 21. Development Web Site…  Click on: Manage, then, HTTP Servers, and in the drop down, Zendsvr – Apache  This is where you manage the server instance  Set up virtual hosts for:  Developers  Test sites  Different applications  Go to General Server Configuration  Open up tools  Edit Configuration File © Agile Technology Architects www.atallc.net
  • 22. Development Web Site…  The directive: “UserDir /home/*/htdocs” is what you need  Apache then uses: http://common1.idevcloud.com:10088/~userprofile  Once you press “apply”, then “OK” OK Note  Restart the the location server by of the file using the button  You can of course use any editor you wish © Agile Technology Architects www.atallc.net
  • 23. Virtual Host set up  Apache can do virtual web sites by name or IP address  Here I set up two virtual sites both on port 80  One is for the public web site, one for a customer interface © Agile Technology Architects www.atallc.net
  • 24. Development Web Site..  Lets consider some other APACHE directives  Why does this work? http://common1.idevcloud.com:10088/phpmyadmin  And: http://common1.idevcloud.com:10088/editor h // 1 id l d 10088/ di  does not? (hint, if you add the .php suffix it will….) © Agile Technology Architects www.atallc.net
  • 25. Development Web Site  Lets consider some other APACHE directives  Why does this work? http://common1.idevcloud.com:10088/phpmyadmin  And: http://common1.idevcloud.com:10088/adminer h // 1 id l d 10088/ d i  does not? (hint, if you add the .php suffix it will….)  Answer: alias directives. directives Alias /phpmyadmin /usr/local/zendsvr/phpMyAdmin ….. <Directory /usr/local/zendsvr/phpMyAdmin> Options FollowSymLinks AllowOverride None Order allow,deny Allow from 127.0.0.1 </Directory> © Agile Technology Architects www.atallc.net
  • 26. Work Management  Often forgotten portion of managing a web site  Zend has at least two, sets of distinct jobs that run two  Subsystem QHTTPSVR shipped with *BASE  Add a second memory pool to the subsystem  Change the routing entry to point to the new memory  Consider a bit of tuning in the shared pools  Zendsvr subsystem also shipped with *BASE BASE  MySQL has a subsystem and may also use QUSRWRK  Depends on how started p  Menu ZSMENU will start in ZMYSQL subsystem  MySQL started manually (shown earlier) will start in QUSRWRK  Memory management critical for performance M ii lf f © Agile Technology Architects www.atallc.net
  • 27. Work Management  Three portions of performance to consider  Zend Server Settings  Several parameters in the server can directly affect Zend Performance  Zend Server Performance is not MySQL or DB/2 performance  Beyond the scope of this presentation  DB/2 Performance  Index strategy / QAQQINI settings extremely important  Know which query Engine your query is using CQE/SQE  Index advisor / Job Watcher  Beyond scope of this presentation  Work management of several objects g j  Zend Server subsystem  Zend Apache Instance (subsystem QHTTPSVR)  Data Access jobs ( j (QZDASOINIT and QSQSRVR) ) © Agile Technology Architects www.atallc.net
  • 28. Work Management  Change QHTTPSVR subsystem to have 2nd memory pool  Change Shared Pool to reflect change g g  Add storage pool to subsystem  Change routing entry on subsystem  Restart subsystem jobs  Change Zend Subsystem  Same procedure as QHTTPSVR p Q  After changes, watch it for a day or so  Make sure active/wait transitions are zero  Watch f l i W h faulting  May have to add memory  Activity Level critical since multi threaded jobs are running © Agile Technology Architects www.atallc.net
  • 29. WRKSHRPOOL  Size depends  Activity needs to be high enough for LOTS of threads  Smart Paging  Use F11 to change text  Most under used part of Shared Sh d pools l  Leave tuning alone for now © Agile Technology Architects www.atallc.net
  • 30. Work Management  Change the subsystem description CHGSBSD SBSD(QHTTPSVR/QHTTPSVR) POOLS((2 *SHRPOOL1)) SHRPOOL1))  Change the Routing Entry on the subsystem  Routing entry determine which pool of memory will be used  Most common mistake made when tuning (not changing it)  QHTTPSVR only has one routing entry  Use: CHGRTGE SBSD(QHTTPSVR) SEQNBR(10) POOLID(2)  Need to restart all of the jobs in the subsystem  Use: STRTCPSVR SERVER(*HTTP) RESTART(*HTTP) HTTPSVR(ZENDSVR) © Agile Technology Architects www.atallc.net
  • 31. Work Management  Zend Subsystem gets same treatment as QHTTPSVR  Determine which memory to use  Is there already a shared pool set up that’s usable  Like jobs go in like memory  Change the subsystem description to add memory pool g y p yp CHGSBSD SBSD(ZENDSVR/ZENDSVR) POOLS((2 *SHRPOOL1))  Change routing entry Communications Server Jobs  Note that Multiple changes are needed….  Two different classes are used © Agile Technology Architects www.atallc.net
  • 32. IBM i Web Serving Networks  TCP/IP Magic can be used to separate the LANs  Even on the one network cable  Can be used to manage TCP/IP traffic from/to the production web server  Keeps web serving traffic away from the internal LAN p g y  Example:  Web traffic from firewall comes in on 10.10.10.2 / 255.255.255.252  Allows Two addresses: 10.10.10.1, 10.10.10.2  Subnet: 10.10.10.0 Broadcast: 10.10.10.3 S b t 10 10 10 0 B d t 10 10 10 3  The Web Server is 10.10.10.2  The firewall is 10.10.10.1  Corporate LAN is 10.2.2.x Subnet is 255.255.240.0  There could be as many as 4094 computers/printers/etc on the network  From 10.2.2.1 to 10.2.15.254  Traffic on the 10.10.10.x network will not cross over to 10.2.2.x without a router © Agile Technology Architects www.atallc.net
  • 33. IBM i Web Serving Network  Firewall uses NAT to translate 10.2.2.x 10 2 2 x Internet internet to internal address 65.32.51.115 65.32.51.110  IBM I is set to not route between networks 10.2.2.1 10.10.10.1  Networking Subnet purists would Subnet 255.255.240.0 have two 255.255.255.252 firewalls and two interface cards 10.2.2.2 10.10.10.2 © Agile Technology Architects www.atallc.net
  • 34. IBM i Web Serving Networking  Setting up packet filter rules  Need to use System I Navigator  Found at Network / IP Policies / Packet Rules  Right click and bring up Packet Rules Configuration: © Agile Technology Architects www.atallc.net
  • 35. IBM i Web Serving Network  Set the interfaces alias names: ADDRESS MyInternalIPAddress IP = 10.10.10.1 TYPE = TRUSTED ADDRESS MyProdIPAdress IP = 10.2.2.1 TYPE=TRUSTED ADDRESS MyPublicIPAddress IP = 65.32.51.110 TYPE = BORDER  Now set the filter rule to allow any outbound but only y y port 80 inbound FILTER SET Set4InternalInterface ACTION = PERMIT DIRECTION = OUTBOUND SRCADDR = MyInternalIPAddress DSTADDR = * PROTOCOL = * DSTPORT = * SRCPORT = * JRN = OFF FILTER SET Set4InternalInterface ACTION = PERMIT DIRECTION = INBOUND SRCADDR = * DSTADDR = MyInternalIPAddress PROTOCOL = TCP DSTPORT = 80 SRCPORT = * JRN = OFF  If you wanted to assign line names to an interface names, do it like this: FILTER_INTERFACE LINE = MYWEBLINE SET = Set4InternalInterface FILTER_INTERFACE LINE = MYETHLINE SET = Set4InternalInterface © Agile Technology Architects www.atallc.net
  • 36. IBM i Web Serving Network  To stop FTP at the packet level:  Define the service, create the filter assign it to an interface service filter, SERVICE FTPControl PROTOCOL = TCP DSTPORT = 21 SRCPORT = * SERVICE FTPData PROTOCOL = TCP DSTPORT = 20 SRCPORT = * # FILTER SET DenyFTP ACTION = DENY DIRECTION = OUTBOUND SRCADDR = * DSTADDR = * SERVICE = FTPControl JRN = OFF FILTER SET AllowMeFTP ACTION = DENY DIRECTION = OUTBOUND SRCADDR = 10.2.2.110 DSTADDR = * SERVICE = FTPControl JRN = OFF # FILTER_INTERFACE LINE = MYETHLINE SET = AllowMeFTP FILTER_INTERFACE LINE = MYWEBLINE SET = DenyFTP FILTER_INTERFACE LINE = MYETHLINE SET = DenyFTP  Now you have allowed yourself FTP from your workstation (10.2.2.110) and denied everyone else  You have stopped FTP on both the internal and web interface © Agile Technology Architects www.atallc.net
  • 37. IBM i Web Serving  Whew!! That was a lot of information in a short time  We:  Made sure we had all the parts installed  Set up individual developers web sites p p  Set up some work management  Put some security on the network © Agile Technology Architects www.atallc.net
  • 38. Where do you find me? Agile Technology A hit t LLC A il T h l Architects, Achieving Business Results from the Edge of Chaos Jim Oberholtzer Jim.oberholtzer@atallc.net Agile Technology Architects, LLC 21305 W. Glengarry Rd g y New Berlin, WI 53146 414/433-4363 © Agile Technology Architects www.atallc.net