Thursday, January 5, 2012

Setup Ubuntu server for PHP-MongoDB on Amazon AWS

This is a record of all the steps that I did to setup a Ubuntu server on Amazon AWS, primarily for PHP-Mongo setup with Apache2. I may consider nginx and fastcgi sometime later, but for now, will go ahead with Apache2.


AMI used is alestic-git-server-ubuntu-11.10-oneiric-amd64-20111017 (ami-dd73bfb4)

Packages Installed

Base Packages:

sudo apt-get -y install language-pack-en-base
sudo apt-get -y install unzip
sudo apt-get -y install python-setuptools
sudo apt-get install build-essential

PHP and Apache2:

sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5 php5-curl php5-gd php5-imap
sudo apt-get install php-pear php5-dev

MongoDB Install:

Steps as per

sudo apt-key adv --keyserver --recv 7F0CEB10

Append the following line to /etc/apt/sources.list:
deb dist 10gen

sudo apt-get update
sudo apt-get install mongodb-10gen

Update (April 28th 2014): This has changed slightly. The updated steps below:

Steps as per:

sudo apt-key adv --keyserver hkp:// --recv 7F0CEB10
echo 'deb dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

sudo apt-get update
sudo apt-get install mongodb-org

PHP and Python Drivers for MongoDB:

sudo pecl install mongo
Add "" in /etc/php5/apache2/php.ini and /etc/php5/cli/php.ini

Update (April 28th 2014): The above adding to php.ini is changed for Ubuntu 14.04

echo '' | sudo tee /etc/php5/mods-available/mongo.ini
sudo php5enmod mongo

sudo apt-get install python-dev
sudo easy_install pymongo

SunJava Install:

As per this link:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk

Update (April 28th 2014): The above has changed for Ubuntu 14.04

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

SVN and other Tools:

sudo apt-get install subversion
sudo apt-get install libapache2-svn
sudo apt-get install git
sudo apt-get install mpack              # For MIME Pack/unpack

Specific Packages/Modules for my App:

sudo a2enmod rewrite
sudo a2enmod actions
sudo pear install --alldeps Mail
sudo pear channel-discover
sudo pear install pearplex/PHPExcel

Install  including wkhtmltopdf, wkhtmltoimage and libwkhtmltox  to /usr/local/bin, /usr/local/lib and /usr/local/include

Also install on Ubuntu libxrender, needed for wkhtmltopdf

sudo apt-get install libxrender-dev

PHP and Python bindings for libwkhtmltox:
git clone git://   and follow README
git clone git://    and sudo python install


sudo apt-get -y install fontconfig xfs

sudo apt-get install libuuid1 uuid-dev uuid-runtime
sudo pecl install uuid

echo '' | sudo tee /etc/php5/mods-available/uuid.ini
sudo php5enmod uuid


sudo apt-get install memcached php5-memcached
sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt

sudo apt-get install sqlite3 php5-sqlite
sudo apt-get install mysql-server php5-mysql

sudo apt-get install imagemagick

# Install Font?
sudo mkdir /usr/share/fonts/truetype/customttf
sudo cp /home/live/ereceipts/server/fonts/MTCORSVA.TTF /usr/share/fonts/truetype/customttf
sudo fc-cache -f -v

Other Edits:

1. php.ini in /etc/php5/apache2/php.ini (and the cli version)

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
date.timezone = Asia/Kolkata
session.gc_maxlifetime = 86400

1 comment:

  1. I get a lot of great information here and this is what I am searching for. Thank you for your sharing. I have bookmark this page for my future reference. Search aws jobs in hyderabad.