php5-ldap upgrade troubles

All my php5-* packages are at version 5.3.2-1ubuntu4.19 apart from php5-ldap which is at 5.3.2-1ubuntu4.18.

Trying to update any package on the system with apt the server tries to sort out the unmet dependencies of php5-ldap, it says it needs php5-common 5.3.2-1ubuntu4.18 when I have 5.3.2-1ubuntu4.19 installed.

I don’t want to remove php5-common 5.3.2-1ubuntu4.19 and all of the things that depend on it. Can you tell what it’s moaning about in the errors or how to easily fix it? It’s Ubuntu 10.04.4.

root@host:~# apt-get -f install php5-ldap
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be upgraded:
php5-ldap
1 upgraded, 0 newly installed, 0 to remove and 61 not upgraded.
18 not fully installed or removed.
Need to get 0B/19.9kB of archives.
After this operation, 0B of additional disk space will be used.
(Reading database … 70664 files and directories currently installed.)
Preparing to replace php5-ldap 5.3.2-1ubuntu4.18 (using …/php5-ldap_5.3.2-1ubu                                                                             ntu4.19_amd64.deb) …
Unpacking replacement php5-ldap …
dpkg: error processing /var/cache/apt/archives/php5-ldap_5.3.2-1ubuntu4.19_amd64                                                                             .deb (–unpack):
unable to install new version of `./usr/share/doc/php5-ldap’: No such file or d                                                                             irectory
Errors were encountered while processing:
/var/cache/apt/archives/php5-ldap_5.3.2-1ubuntu4.19_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

‘ vzpkg update -q -p 513909 php5-ldap’ exec failed – dpkg: error processing /vz/template/ubuntu/10.04/x86_64/pm//archives/php5-ldap_5.3.2-1ubuntu4.19_amd64.vz.deb (–unpack):
unable to install new version of `/usr/share/doc/php5-ldap’: No such file or directory
No apport report written because the error message indicates an issue on the local system
Errors were encountered while processing:
/vz/template/ubuntu/10.04/x86_64/pm//archives/php5-ldap_5.3.2-1ubuntu4.19_amd64.vz.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Error: /usr/bin/apt-get failed, exitcode=100

 

The following packages have unmet dependencies:
php5-ldap: Depends: php5-common (= 5.3.2-1ubuntu4.18) but 5.3.2-1ubuntu4.19 is installed

 

root@lvps217-199-163-74:/var/cache/apt/archives# dpkg –debug=777 -i php5-ldap_5.3.2-1ubuntu4.19_amd64.deb
D000010: ensure_pathname_nonexisting `/var/lib/dpkg/tmp.ci’
(Reading database … 70664 files and directories currently installed.)
Preparing to replace php5-ldap 5.3.2-1ubuntu4.18 (using php5-ldap_5.3.2-1ubuntu4.19_amd64.deb) …
D000200: process_archive conffile `/etc/php5/conf.d/ldap.ini’ in package php5-ldap – conff ?
D000020: process_archive conffile `/etc/php5/conf.d/ldap.ini’ package=php5-ldap same hash=2dbdb6d30c646b5eb6b76d1fd71abe4f
D000200: oldconffsetflags `/etc/php5/conf.d/ldap.ini’ namenode 0x25b90d0 flags 5
D000001: process_archive oldversionstatus=installed
D000002: maintainer_script_alternative nonexistent prerm `/var/lib/dpkg/info/php5-ldap.prerm’
D000002: maintainer_script_new nonexistent preinst `/var/lib/dpkg/tmp.ci/preinst’
Unpacking replacement php5-ldap …
D000010: tarobject ti->Name=`.’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/.’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/.’ tmp=`/..dpkg-tmp’ new=`/..dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./usr’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/usr’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr’ tmp=`/usr.dpkg-tmp’ new=`/usr.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./usr/lib’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/usr/lib’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/lib’ tmp=`/usr/lib.dpkg-tmp’ new=`/usr/lib.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./usr/lib/php5′ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/usr/lib/php5′ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/lib/php5′ tmp=`/usr/lib/php5.dpkg-tmp’ new=`/usr/lib/php5.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./usr/lib/php5/20090626′ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/usr/lib/php5/20090626′ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/lib/php5/20090626′ tmp=`/usr/lib/php5/20090626.dpkg-tmp’ new=`/usr/lib/php5/20090626.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./usr/lib/php5/20090626/ldap.so’ Mode=644 owner=0.0 Type=48(-) ti->LinkName=`’ namenode=`/usr/lib/php5/20090626/ldap.so’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/lib/php5/20090626/ldap.so’ tmp=`/usr/lib/php5/20090626/ldap.so.dpkg-tmp’ new=`/usr/lib/php5/20090626/ldap.so.dpkg-new’
D000100: tarobject already exists
D000010: ensure_pathname_nonexisting `/usr/lib/php5/20090626/ldap.so.dpkg-new’
D000010: ensure_pathname_nonexisting `/usr/lib/php5/20090626/ldap.so.dpkg-tmp’
D000100: tarobject NormalFile[01] open size=55416
D000100: tarobject nondirectory, `link’ backup
D000100: tarobject done and installation deferred
D000010: tarobject ti->Name=`./usr/share’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/usr/share’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/share’ tmp=`/usr/share.dpkg-tmp’ new=`/usr/share.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./usr/share/doc’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/usr/share/doc’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/share/doc’ tmp=`/usr/share/doc.dpkg-tmp’ new=`/usr/share/doc.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./etc’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/etc’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/etc’ tmp=`/etc.dpkg-tmp’ new=`/etc.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./etc/php5′ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/etc/php5′ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/etc/php5′ tmp=`/etc/php5.dpkg-tmp’ new=`/etc/php5.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./etc/php5/conf.d’ Mode=755 owner=0.0 Type=53(d) ti->LinkName=`’ namenode=`/etc/php5/conf.d’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/etc/php5/conf.d’ tmp=`/etc/php5/conf.d.dpkg-tmp’ new=`/etc/php5/conf.d.dpkg-new’
D000100: tarobject already exists
D000100: tarobject Directory exists
D000010: tarobject ti->Name=`./etc/php5/conf.d/ldap.ini’ Mode=644 owner=0.0 Type=48(-) ti->LinkName=`’ namenode=`/etc/php5/conf.d/ldap.ini’ flags=7 instead=`<none>’
D000200: conffderef in=’etc/php5/conf.d/ldap.ini’ current working=’/etc/php5/conf.d/ldap.ini’
D000020: conffderef in=’etc/php5/conf.d/ldap.ini’ result=’/etc/php5/conf.d/ldap.ini’
D000020: tarobject fnnf_new_conff deref=`etc/php5/conf.d/ldap.ini’
D000100: setupvnamevbs main=`/etc/php5/conf.d/ldap.ini’ tmp=`/etc/php5/conf.d/ldap.ini.dpkg-tmp’ new=`/etc/php5/conf.d/ldap.ini.dpkg-new’
D000100: tarobject already exists
D000010: ensure_pathname_nonexisting `/etc/php5/conf.d/ldap.ini.dpkg-new’
D000010: ensure_pathname_nonexisting `/etc/php5/conf.d/ldap.ini.dpkg-tmp’
D000100: tarobject NormalFile[01] open size=54
D000200: tarobject conffile extracted
D000010: tarobject ti->Name=`./usr/share/doc/php5-ldap’ Mode=777 owner=0.0 Type=50(l) ti->LinkName=`php5-common’ namenode=`/usr/share/doc/php5-ldap’ flags=2 instead=`<none>’
D000100: setupvnamevbs main=`/usr/share/doc/php5-ldap’ tmp=`/usr/share/doc/php5-ldap.dpkg-tmp’ new=`/usr/share/doc/php5-ldap.dpkg-new’
D000100: tarobject nonexistent
D000010: ensure_pathname_nonexisting `/usr/share/doc/php5-ldap.dpkg-new’
D000010: ensure_pathname_nonexisting `/usr/share/doc/php5-ldap.dpkg-tmp’
D000100: tarobject SymbolicLink creating
D000100: tarobject new – no backup
dpkg: error processing php5-ldap_5.3.2-1ubuntu4.19_amd64.deb (–install):
 unable to install new version of `./usr/share/doc/php5-ldap’: No such file or directory
D000010: cu_installnew `/usr/share/doc/php5-ldap’ flags=2
D000100: setupvnamevbs main=`//usr/share/doc/php5-ldap’ tmp=`//usr/share/doc/php5-ldap.dpkg-tmp’ new=`//usr/share/doc/php5-ldap.dpkg-new’
D000100: cu_installnew not restoring
D000100: unlinkorrmdir `//usr/share/doc/php5-ldap.dpkg-new’ unlink OK
D000010: cu_installnew `/etc/php5/conf.d/ldap.ini’ flags=217
D000100: setupvnamevbs main=`//etc/php5/conf.d/ldap.ini’ tmp=`//etc/php5/conf.d/ldap.ini.dpkg-tmp’ new=`//etc/php5/conf.d/ldap.ini.dpkg-new’
D000100: cu_installnew not restoring
D000100: unlinkorrmdir `//etc/php5/conf.d/ldap.ini.dpkg-new’ unlink OK
D000010: cu_installnew `/usr/lib/php5/20090626/ldap.so’ flags=602
D000100: setupvnamevbs main=`//usr/lib/php5/20090626/ldap.so’ tmp=`//usr/lib/php5/20090626/ldap.so.dpkg-tmp’ new=`//usr/lib/php5/20090626/ldap.so.dpkg-new’
D000100: cu_installnew restoring atomic
D000100: unlinkorrmdir `//usr/lib/php5/20090626/ldap.so.dpkg-new’ unlink OK
D000002: maintainer_script_new nonexistent postrm `/var/lib/dpkg/tmp.ci/postrm’
D000002: vmaintainer_script_installed nonexistent postinst
D000010: ensure_pathname_nonexisting `/var/lib/dpkg/tmp.ci’
D000010: ensure_pathname_nonexisting running rm -rf
D000010: ensure_pathname_nonexisting `/var/lib/dpkg/reassemble.deb’
Errors were encountered while processing:
php5-ldap_5.3.2-1ubuntu4.19_amd64.deb

502 Bad Gateway error

Yesterday I was configuring WordPress and Jetpack when I got a 502 Bad Gateway error error from Nginx.

It’s simple enough to fix but I’ve not used Nginx too much, here’s the problem and solution…

When you’re using Nginx as a reverse proxy to Apache sometimes the upstream server can send headers too big to fit in the Nginx buffer. We’re using Plesk Control Panel on our server, so I’m not sure if it’s to do with the defaults set for Nginx within that but to fix it do the following.

Open /etc/nginx/nginx.conf in your favourite editor

Add the following inside the http directive:

proxy_buffers 8 32k;
proxy_buffer_size 64k;

Save it, restart Nginx and Apache, ta da!

Your mileage may vary so play about with the number of buffers and their sizes.

Dropbox

I remember being at college and having to carry a plastic box full of 3.5″ floppy disks around with me. Every so often fluff from the deepest, darkest corners of the earth would infiltrate the shutter and… Abort, Retry, Fail? Shit, all my (hard) work consumed.

A few years pass and USB flash drives arrive on the scene, although they started out expensive, slow and lacking in any great capacity they we’re much more durable than floppy disks and as time went on physical size decreased, storage space and speed increased exponentially.

So for the last few years I’ve been carrying around a 16GB OCZ Rally2, it’s battered and I’ve lost the plastic cap that keeps the USB connector free from dust but it works and it’s quick. Then one day I was walking to work and I found a USB flash drive on the pavement, I picked it up and wondered if I could reunite it with its owner. Plugging it in to a virtual machine in a sandbox I tried to see if I could identify who it belonged to, it had a few Word documents on it but nothing that would help me identify the owner.

I started to think about all the personally identifiable information I had on my flash drive, my CV, letters to my bank, job applications, all things I wouldn’t really want people to read if for whatever reason I mislaid the drive. Looking around the Internet I decided upon the not so elegant solution of creating an encrypted partition on the drive using TrueCrypt, it did the job but I had to rely on being able to install TrueCrypt on any machine I needed to access the encrypted files from.

Recently I stumbled upon Dropbox, a web based file hosting service. They offer a freemium service that gives 2GB of storage which can be increased by referring users to the site and they’ll double the referral bonus space for users registering with an academic email address (this also works for .ac.uk addresses).

Once registered you download the client app, install it and choose a place on your computer to display a shared folder, anything you drop into the folder is synchronised to Dropbox and it appears on any other machine or device you have the software installed on.

What I really like about the service is just how many Operating Systems and devices are supported, I can share files between my Mac, my Windows 7 PC which dual boots to Ubuntu and my Android smart phone. The connection is over SSL and all the files stored on Dropbox are encrypted.

A few years ago, this type of service just wouldn’t have been practical, we’ve got a 20Mbit Internet connection at home and I’m lucky enough to be connected to an academic network at 155Mbit at work so moving files about is virtually seamless. I carry my smart phone with me everywhere so I can grab files on the go plus Dropbox can be accessed through any web browser if you don’t have the rights to install the client.

I don’t have to worry about losing my flash drive, damaging the USB connector or just how long the flash memory chips inside it are going to last, everything is stored on Amazon’s Simple Storage Service (S3) and it just works!

Not only does Dropbox let me keep private files, I can share any of my files with other people, I can create a Public folder that anyone can have access to and I can even upload images to galleries and give people access without them having to have a Dropbox account.