Installing Mono 3.x in Ubuntu/Debian

Here is the complete guide for installing mono 3.0.1

For Beginners who don’t know how to get the new Mono 3.0.1 version on Ubuntu 12.04
(Because i’m a beginner and i’ve been working on this for 3 days before making it work)

Getting root access to install and configure Mono 3.0.1

sudo -s
***type your root password***

Install vim editor

apt-get install vim

Install apache2

apt-get install apache2

Install tools for compiling mono

apt-get install autoconf automake libtool g++ gettext libglib2.0-dev libpng12-dev libfontconfig1-dev
apt-get install mono-gmcs
apt-get install git

Install apache2-threaded-dev (needed for compiling mod_mono)*

apt-get install apache2-threaded-dev

We will return to apache2 configuration later

Making the structure we need for getting the source code

cd /opt
mkdir mono-3.0

Move into that new folder before getting the source code

cd /opt/mono-3.0

Getting the source code from GitHub

git clone git://github.com/mono/mono.git
git clone git://github.com/mono/xsp.git
git clone git://github.com/mono/libgdiplus.git
git clone git://github.com/mono/mod_mono.git

Compile libgdiplus

cd /opt/mono-3.0/libgdiplus
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile mono

cd /opt/mono-3.0/mono/
make clean
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile xsp

cd /opt/mono-3.0/xsp
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile mod_mono

cd /opt/mono-3.0/mod_mono
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

After the installation of mod_mono, the file mod_mono.conf
*as been added to your apache2 folder(/etc/apache2)*

Configuring apache2

Configure the default site of apache ### (optional*)**

vim /etc/apache2/sites-available/default
Modify the line "DocumentRoot /var/www" by "DocumentRoot /var/www/YourFolder" (YourFolder is the folder where you publishing your website!)

Configure the rights to YourFolder (optional*)**

cd /var/www/YourFolder
sudo chown -R root:www-data .
sudo chmod -R 774 .
sudo usermod -a -G www-data <yourusername>

Adding the mod_mono include in apache2.conf

vim /etc/apache2/apache2.conf
Add "Include /etc/apache2/mod_mono.conf" at the end of the file (without quotes!)

Adding the pointer to ASP .NET 4.0 in mod_mono.conf

vim /etc/apache2/mod_mono.conf
Add "MonoServerPath /usr/bin/mod-mono-server4" (without quotes!) under the "If Modules condition"

Restart the apache2 server
/etc/init.d/apache2 restart

Leave a Comment