Home About

December 3rd, 2008

Setting up Ubuntu for Web development - 0

One of the pleasures of setting up a new machine for development is always the feeling of having a “clean” machine without a myriad of test projects and things under development laying around the place. This article is distilled from my notes as I installed Apache2, MySQL & PHP5 on my new machine. And of course I tuned PHP5 by compiling and installing eaccelerator.

Installing Apache2 , MySQL Server and PHP5

The above has become so easy under Ubuntu that its quite unbelievable. With just a few lines of typing you too can have a full LAMP (Linux, Apache, MySQL & PHP) system. There is no need for the hours previously spend on hunting for dependencies to download and compile.

sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install php5 php5-mysql php5-cli php5-dev
php -v

As a bonus: I also installed my favorite HTML editor: BlueFish

sudo apt-get install bluefish

And that is it really — everything works from here on. If you would like to get a bit more juice out of PHP5 you can also add the following:

Configure PHP5 with eaccelerator

PHP is a great language for building websites but it can be quite slow at times. Each time a script is run PHP needs to compile it and then execute it. You can gain speed by using a cache such as eaccelerator. This stores the compiled scripts in both memory and on disk so that frequently called scripts run much faster.

The following steps compile and install eacelerator 0.9.5.3, you can check for a newer version on the eacellerator website.

sudo apt-get install build-essential
cd /tmp
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
bzip2 -cd eaccelerator-0.9.5.3.tar.bz2 | tar xf -
cd eaccelerator-0.9.5.3
/usr/bin/phpize
./configure
make
sudo make install

After the above you should now have a file named eaccelerator.so in directory/usr/lib/php5/20060613+lfs/ (or whatever directory was printed when you did ‘make install’).

Now you need to configure php to include the eacelerator module on startup by editing the relevant php.ini file:

sudo gedit /etc/php5/apache2/php.ini

Add the following lines to the php.ini file:

; Installing the ZEND extension
zend_extension=”/usr/lib/php5/20060613+lfs/eaccelerator.so”
eaccelerator.shm_size=”0″
eaccelerator.cache_dir=”/var/local/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
eaccelerator.allowed_admin_path=”/var/www/apache2-default/control.php”

Finally we need to create the cache directory used by eaccelerator to store the compiled scripts:

cd /var/local
sudo mkdir eaccelerator
sudo chown root:www-data /var/local/eaccelerator/
sudo chmod u=rwx,g=rwx,o= /var/local/eaccelerator/

Restart Apache2 and see if it loads correctly:

sudo apache2ctl configtest
sudo apache2ctl graceful

Test the PHP5 installation

Create a small file in “/var/www/” to test your PHP5 installation

sudo gedit /var/www/php5.php

And add the following in this file:

Now load http://localhost/php5.html to see if your system is correctly configured. If eaccelerator is properly configured it should also be listed here.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google
  • Reddit

Tags: , , ,

Leave a Reply


Recent Comments
  • Ales: Hi, Thanks for the code… I must say I did not experience any errors decrypting any of my messages. I even...
  • JC: Thanks very useful and well explained
  • Thomas: This is a public static class written in the C# language that does not save state. You can call into the...
  • Simon: Thank you very much for this post! It helped me essentially to overcome obstacels to work with mono!
  • Graham: This is a good research for keyboard shortcuts! Some shortcuts are also compatible for Windows OS. I have...