Trying to install the MongoDB PHP driver using Pecl (as per the documentation) on a Rackspace managed server running RHEL I ran into the following problem:
pecl install mongo
/usr/bin/phpize: /tmp/tmpNW0rIa/mongo-1.2.12/build/shtool: /bin/sh: bad interpreter: Permission denied
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
ERROR: `phpize' failed
It took me a while to remember and then search through old tickets, but the problem is that on Rackspace’s RHEL servers the /tmp partition is mounted without script execute permissions. (Is this standard for RHEL in general?)
Pecl uses the /tmp – and so therefore, the install fails.
The solution is to temporarily allow script execution in /tmp
[root@server ~]# mount | grep /tmp
/dev/sda2 on /tmp type ext3 (rw,noexec,nosuid,nodev)
[root@server ~]# mount -o remount,exec /tmp
[root@server ~]# mount | grep /tmp
/dev/sda2 on /tmp type ext3 (rw,nosuid,nodev)
Install the MongoDB driver with Pecl…
[root@server ~]# pecl install mongo
Revert the permissions on /tmp and then check the permissions are correct…
[root@server ~]# mount -o remount,noexec /tmp
[root@server ~]# mount | grep /tmp
/dev/sda2 on /tmp type ext3 (rw,noexec,nosuid,nodev)