Here are the steps I've used for installing the Zend Server PE version of php on the redhat el 5.3/5.4 machines... For the curious, more info about Zend Server at: http://www.zend.com/en/products/server/editions ::::::::::::::::::::::::::::::::::::::: :: STEP 1 (optional) :: if php has been installed already, remove (yum erase) all php-related packages e.g. standard php installation: # yum erase `yum list | grep php | grep installed | cut -f1 -d. | tr '\n' ' '` e.g. upgrading from zend server 4: # zendctl.sh stop; yum erase `rpm -qa | grep zend | xargs` # for i in `ipcs -m |grep -v Shared | grep -v shmid | awk -F " " '{print $2}'` ; do ipcrm -m $i; done # rm `find /tmp -user apache | xargs` # rm -r /usr/local/zend :: STEP 2 :: set up Zend package repository # vi /etc/yum.repos.d/zend.repo [Zend] name=Zend Server baseurl=http://repos.zend.com/zend-server/rpm/$basearch enabled=1 gpgcheck=0 [Zend_noarch] name=Zend Server - noarch baseurl=http://repos.zend.com/zend-server/rpm/noarch enabled=1 gpgcheck=0 :: STEP 3 :: install ZS PE basics, extras (note: if you don't have apache installed, this will install the stock redhat apache as a prereq) To install Zend Server with PHP 5.2 run: # yum install zend-server-php-5.2 # yum install php-5.2-extra-extensions-zend-server php-5.2-source-zend-server # yum clean all To install Zend Server with PHP 5.3 run: # yum install zend-server-php-5.3 # yum install php-5.3-extra-extensions-zend-server php-5.3-source-zend-server # yum clean all :: STEP 4 :: make sure the php binaries and apache module can find the ZS PE libraries # vi /etc/ld.so.conf.d/zend-platform.conf /usr/local/zend/lib # ldconfig You can ignore a warning of: "ldconfig: /usr/local/zend/lib/libming.so.0 is not a symbolic link" :: STEP 5 :: set up log rotation for ZS PE logs # vi /etc/logrotate.d/zendserver /usr/local/zend/var/log/*.log { size 5M missingok rotate 10 compress delaycompress copytruncate } :: STEP 6a (optional) :: If ldaps connectivity is needed (e.g. GTED), you have to manually fix the ldap module that ships with ZS. Fortunately this is simple... # yum install openldap-devel # cd /usr/local/zend/share/php-source/ext/ldap # /usr/local/zend/bin/phpize # ./configure --with-php-config=/usr/local/zend/bin/php-config --with-ldap-sasl # make # make install :: STEP 6b (optional) :: If ssl connectivity to postgreSQL databases is needed (e.g. to MAGE), you have to manually fix the pgsql and/ or the pdo_pgsql modules as well... # yum install postgresql-devel openssl-devel # cd /usr/local/zend/share/php-source/ext/pgsql # /usr/local/zend/bin/phpize # ./configure --with-php-config=/usr/local/zend/bin/php-config # make # make install # cd /usr/local/zend/share/php-source/ext/pdo_pgsql # /usr/local/zend/bin/phpize # ./configure --with-php-config=/usr/local/zend/bin/php-config --with-pdo-pgsql=/usr/bin/pg_config # make # make install :: STEP 6c (optional) :: If ssl connectivity with curl is needed, you have to manually fix the curl module as well... # yum install libidn libidn-devel curl curl-devel # cd /usr/local/zend/share/php-source/ext/curl # /usr/local/zend/bin/phpize # ./configure --with-ssl # make # make install :: STEP 7 :: restart ZS PE... the first time it starts after install, it doesn't load all the modules # /usr/local/zend/bin/zendctl.sh restart :: STEP 8 (optional) :: Reset ZS PE admin password # /usr/local/zend/bin/gui_passwd.sh :: STEP 9 (optional) :: further configuration of ZS PE can be done via web browser at http://host:10081/ or https://host:10082/ ... though the default should be find for most sites. Notable things I change/fix: shell on the box: mkdir /var/run/php-sessions chown apache:apache /var/run/php-sessions in the admin interface: - correct path to sendmail ( /usr/lib/sendmail -t -i ) - sessions settings: http only, session save path (stop polluting /tmp) session.cookie_httponly On session.cookie_secure On (only if no http sessions will be used) session.hash_function SHA-1 (160 bits) session.save_path /var/run/php-sessions/ session.use_only_cookies On :: STEP 10 (optional) :: if you are big into configuring ZS PE in step 9 and want to use your own cert for the :10082 server instead of a self-signed one, you can 1) create a pem file of your server's key and cert file (just concatenate them) 2) edit /usr/local/zend/gui/lighttpd/etc/lighttpd.conf ... here the example is for faux.oit.gatech.edu, which has a GTCA signed cert (thus the need for the ssl.ca-file line): $SERVER["socket"] == ":10082" { ssl.engine = "enable" ssl.pemfile="/etc/pki/tls/private/faux.oit/server.pem" ssl.ca-file="/etc/pki/tls/certs/gtroot.pem" server.name="faux.oit.gatech.edu" } 3) make sure to restart (as in step 7 above) :::::::::::::::::::::::::::::::::::::::