Skip to main content

PHP on Oracle Linux

I've had a long feud at work with business units who work with outside contractors who insist on writing web apps using the very latest version of PHP, Apache and MySQL. While I welcome the use of open source, state-of-the-art technology, the one thing these contractors often overlook is the need for stability and continuity in enterprise-grade applications. Even web applications.

It's useless to use the latest greatest feature set in PHP or MySQL, if the organizations you're targeting are all running RHEL 4u8, 5u2 or even RHEL3! And many do. The Enterprise Distributions for Linux lag behind public version for up to 18 months! And they won't easily upgrade just because you ask or because your application was built using the most recent version of an open source package. The company may be able to give you a special server in some DMZ but you may lack access to certain key servers, because the security status of your app and server have not (yet) been approved.

Instead, focus writing apps using a stable, common, proven API. Don't use a recent function just because it's there, but only if you need it or because it is simply very much more efficient in usage than using an older call, function or feature.

That being said, I have always limited our customers to whatever PHP or MySQL version was bundled into our releases. As an exception they could use Oracle's patches from a more recent but supported channel. But never a fresh version built from source off of the Internet. So I was pleasantly surprised to see that Oracle offers some pre-built - unsupported - RPMs for OEL4 and OEL5 in case you need a more recent version than those in the ULN channels: Oracle: PHP RPMs.
It may also be good to know that Oracle now also bundles Zend inside their ULN channels. Check that if you write heavy-use web application using a LAMP stack on Oracle Linux. In addition, Oracle has a PHP extension "PHP OCI8" that is ready to go for using an Oracle database instead of a MySQL database, and a howto on installing a LAOP stack (Linux, Apache, oracle db, PHP).

Comments

Popular posts from this blog

Tuning the nscd name cache daemon

I've been playing a bit with the nscd now and want to share some tips related to tuning the nscd.conf file. To see how the DNS cache is doing, use nscd -g. nscd configuration: 0 server debug level 26m 57s server runtime 5 current number of threads 32 maximum number of threads 0 number of times clients had to wait yes paranoia mode enabled 3600 restart internal passwd cache: no cache is enabled [other zero output removed] group cache: no cache is enabled [other zero output removed] hosts cache: yes cache is enabled yes cache is persistent yes cache is shared 211 suggested size <==== 216064 total data pool size 1144 used data pool size 3600 seconds time to live for positive entries <==== 20 seconds time to live for negative entries

Preventing PuTTY timeouts

Just found a great tip to prevent timeouts of PuTTY sessions. I'm fine with timeouts by the host, but in our case the firewall kills sessions after 30 minutes of inactivity... When using PuTTY to ssh to your Linux/Unix servers, be sure to use the feature to send NULL packets to prevent a timeout. I've set it to once every 900 seconds, i.e. 15 minutes... See screenshot on the right.

Setting up SR-IOV in RHEL6 on PowerEdge servers

Dell Community : "RHEL 6 provides SR-IOV functionality on supported hardware which provides near native performance for virtualized guests. Single-Root I/O Virtualization (SR-IOV) specification, introduced by PCI-SIG details how a single PCIe device can be shared between various virtualization guests. Devices capable of SR-IOV functionality support multiple virtual functions on top of the physical function. Virtual Function is enabled in hardware as a light weight PCIe function. Operating System cannot discover this function as it does not respond to the PCI bus scan and requires support in the host’s driver. As in PCIe pass-through, a Virtual function of a SR-IOV capable card can be directly assigned to the guest operating system. A virtual function driver running in the guest manages this device."