dotjay.co.uk

20 March 2008 : Configuring PHP 5 with SOAP on Media Temple dv 3.5

I recently upgraded to a dv 3.5 from Media Temple for a project, but found that PHP was not configured with the SOAP extension needed for the site. With some help from the lovely Media Temple support people, here’s what I did to get it working without having to completely reinstall PHP.

Disclaimer: These instructions worked for me on a dv 3.5; it may not work for other dv packages.

Checking your current PHP installation

You can use phpinfo() to check your PHP installation and see whether or not the extension you need is already installed. If it's not listed, it's worth checking the PHP documentation to see how it suggests installing it. In my case, the SOAP extension is only available if PHP was configured with the --enable-soap option.

Getting SOAPy!

You will need to compile the SOAP shared module and add it to the existing PHP configuration. To do this, you’ll need to make sure you’ve installed the dv 3.5 Developer Tools. To do this, go to your Account Center, select your domain, find Root Access & Developer Tools and hit install.

Open up a terminal and SSH into your server. If you don’t know how to do this, read up on getting SSH access to your server.

  1. You'll need to grab the latest PHP source code. Download it to somewhere convenient, like the home directory:
    cd ~
    wget http://php.net/get/php-5.2.5.tar.gz/from/us.php.net/mirror
  2. Decompress the tarball:
    tar -zxf php-5.2.5.tar.gz
  3. Move into the source directory and configure PHP with SOAP enabled (this may take a few minutes):
    cd php-5.2.5
    ./configure --enable-soap=shared
  4. Run the build (again, this may take a few minutes):
    make
    When that's done, you can optionally test the build, which threw errors for me, but it all worked nonetheless:
    make test
  5. Copy the SOAP module into the existing PHP installation:
    cp modules/soap.so /usr/lib/php/modules/
  6. Add the SOAP module to the PHP configuration:
    echo "extension=soap.so" > /etc/php.d/soap.ini
  7. Restart Apache:
    /etc/init.d/httpd restart
  8. Tidy up by deleting the files we downloaded, e.g.:
    cd ~
    rm -rf php-5.2.5*

The SOAP module should now be loaded and ready to rock; you can check using phpinfo() again.

5 Comments

Comment 1

I actually came across the need to do this today. When you spoke to MT, did you discuss any impact this modification has on the UOP? I know they can drop support if you start messing around with PHP and just wanted to make sure there were no issues. I’ll def. contact them, but came across this first so just wanted to know. Thanks.

anon, 24 March 2008 at 2034

Comment 2

Hi – No, we didn’t specifically discuss the UOP (Update Option Program). It’s definitely worth asking them about that; I guess a fresh PHP install could wipe out the SOAP module.

dotjay, 24 March 2008 at 2206

Comment 3

Usually, neither your php.ini nor the modules directory are touched by a UOP update. You should be fine with this solution.

Alexander Graf, 26 March 2008 at 1523

Comment 4

According to Media Temple's Update Option Program FAQs, you should be able to make changes to php.ini, vhosts.conf and my.cnf without causing problems with the UOP. I'd expect that the same goes for the extension config files in /etc/php.d/. You just need to avoid using httpd.include as Plesk will often overwrite this file.

dotjay, 27 March 2008 at 1409

Comment 5

Excellent – thank you for this. I used this specifically for the php5 upgrade :-)

Mike, 15 April 2008 at 0221

Add your comment

Your name and e-mail address must be given when commenting, but I never publish e-mail addresses. I reserve the right to remove inappropriate comments.

About you
Your comment

Jon Gibbins is a web developer and accessibility geek; dotjay.co.uk is his online home.

Associating

Site Information

dotjay.co.uk is published with Textpattern. There are feeds.

Copyright

© 2004–2008 Jon Gibbins (dotjay). Some rights reserved.

Except where otherwise noted, content on this site has a Creative Commons License.