Web Hosting Talk







View Full Version : Cpanel & PHP5 but no PDO


mcrilly
03-19-2008, 05:45 PM
Hi,

I'm trying to configure my VPS which has cpanel installed to enable PDO support for the PHP5 build on the machine. Whenever I use the /scripts/easyapache script I have no option to enable PDO anywhere. I've even modified the profiles.

I can see that "--disable-pdo" is being implemented somewhere, but I don't know where.

Can anyone suggest how I enable PDO support and maintain PHP version 5?

Thanks.

TonyB
03-19-2008, 05:58 PM
Try running the installer from the web interface. I know at least on the web one you have the option of pdo and pdo_mysql both of which say experimental.

mcrilly
03-19-2008, 06:02 PM
Where is this web-based installer interface?

mcrilly
03-19-2008, 06:05 PM
found it, sorry

mcrilly
03-19-2008, 06:08 PM
No wait, aint found it, sorry. I can't see anything in WHM 11 that allows me to upgrade PHP5 with PDO?

TonyB
03-19-2008, 06:09 PM
You want "Apache Update" which is found in the WHM menu.

mcrilly
03-20-2008, 06:28 AM
Thanks TonyB ;)

Saeven
03-20-2008, 11:10 AM
I've found the CPanel easyapache system to be problematic with many of our customer's machines though. Quite often, it claims a certain config line that when applied to source, doesn't even work.

Further, it builds in a very generalized manner, ignoring important flags that could really improve performance.

Here's something I could recommend:

1. Peel your config line from a phpinfo page or do the following:

# mkdir /devel
# cd /devel
# php -r "phpinfo(-1)" > phpcompile
# nano phpcompile

This will bring up an editor that lets you edit your php config line. Delete all lines but the one that contains the config line (one of the first few lines) with CTRL+K.

2. Remove all of the quotation marks from the config line. It will look something like this: ./configure '--with-abc' '--with-def' ...

Turn it into:

./configure --with-abc --with-def

All on a single line -- very important!

3. Still editing the "phpcompile" file, add the proper CFLAGS for your system's architecture above. So for example, on our 950D box, we have this line at the very top, and our php configure directive below it:


export CFLAGS="-march=x86-64 -O3 -pipe -msse2 -mfpmath=sse -mmmx -fomit-frame-pointer"

./configure --disable-debug --with-apxs --with-curl --with-gd --with-jpeg-dir=/usr/local/lib --with-mcrypt ....


You can find the proper line for your stepping if you google about a bit. This really helps the binary out! Note the -O3 flag as well, also very important. You can also consider adding the --enable-inline-optimization flag to your PHP configure directive. It makes for a fatter, yet faster binary. Nonetheless (digressing, sorry!) in this case you'll want to add the proper PDO directives in the config line at this step.

4. Save phpcompile, exit the editor.

5. Download the PHP source from php.net

6. Unpack the source tar.gz, and copy your phpcompile to its directory, and run it.. ie:

# cp phpcompile /devel/php-5.2.5/
# chmod 700 /devel/php-5.2.5/phpcompile
# cd php-5.2.5
# ./phpcompile

7. If your CPanel's configure directive was accurate (50/50 chance here it seems) then everything will go through without a hitch! You may have to install missing client headers or includes though. If you have yum this is a piece of cake, ex:

#yum install libpng-devel

8. # make && make install

After this you have recompiled PHP. May need to clean up your httpd.conf after the above is complete.

Source builds are better, faster, etc. Avoid easyapache like the plague.

Hope this post helps someone!
Alex