Adding SSH support to PHP on Ubuntu

I have previously written a post on how to add SSH support to PHP, but that post is old, and it has now become even easier to get it up and running. And therefore making it much easier to auto upgrade WordPress via SSH. (automatic, yay!)

As root, do the following:

1: apt-get install libssh2-1-dev libssh2-php

2: Check that is installed: php -m |grep ssh2

3: Restart apache: service apache2 restart

And you should now have SSH support in PHP.

PHP GeoIP: Required database not available at /usr/share/GeoIP/GeoIP.dat

This error is most likely caused by you missing the GeoIP.dat file. Simply download it from Maxmind.com and place it in /usr/share/GeoIP/ (or another path if that is the case)

cd /usr/share/GeoIP/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip  GeoIP.dat.gz

And that should be enough, no restart of any service is needed 🙂

sh: phpize: not found

When using pecl, or something else that require phpize, you may get a warning saying that phpize is not found, even when you have PHP installed on your server.  In order to use phpize you need to install the PHP development packages, normally named php-devel.

For Debian/Ubuntu, you can fix this by running:

sudo apt-get install php5-dev

A lesson in PHP stupidity

1:  post_max_size >= 2GB makes PHP overflow, resulting in a negative post_max_size:
“POST Content-Length of 0 bytes exceeds the limit of -2147483648 bytes”

2: defining post_max_size (etc) with MB instead of M causes PHP to only read the last character, in other words 10MB becomes 10 bytes . How hard can it be to either use the first character or even better, both?

(note 1: this can be avoided by actually reading the manual, but this should have been handled better from PHP`s side IMO)

(Note 2: This experience come from the latest stable PHP version in SLES 10SP2, hopefully this has been fixed in later releases.)

Display clock each 10 minutes x times forward in PHP

Here is a simple code PHP snippet to display the clock each 10 minutes x times in the format of:

php5 test.php
20:40
20:50
21:00
21:10
21:20
21:30
21:40

Etc.

<?php

$j = 0;
for($i=0;$i<10;$i+=1) {
        $j += (10*60);
        $hour = date("H", (time()+$j));
        $min  = ceil((date("i", (time()+$j))/10))*10;
        if($min > 50) {
                $min = "00";
                $hour++;
        }
        echo $hour.":".$min."n";
}

?>