With the release of all Ubuntu 14.04 flavors on April 17 2014 including Ubuntu for Phone and Tablet products, Canonical, the company behind Ubuntu, had also released Server, Cloud and Server Core Editions with a five years long term support guaranteed on software and updates until April 2019.
One of the most significant things about this Trusty Tahr codename release is that the Server Edition in now available only for x64 bit computer architecture processors.
The other important things concerning this release are presented in Ubuntu Official Wiki page:
- Linux kernel 3.13 based on the v3.13.9 upstream stable Linux kernel witch include better networking experience on interface bonding, bridge, TCP connection management and Open vSwitch 2.0.1 support.
- A better virtualization support ( XEN, KVM, WMware and also Microsoft Hyper-V hypervisor), general performance on Filesystems, ARM support and a lot of others improvements.
- Python 3.4
- AppArmor new features
- Upstart 1.12.1
- OpenStack (Icehouse) 2014.1
- Puppet 3
- Xen 4.4 ( only x86 and x64)
- Ceph 0.79
- Qemu 2.0.0 hardware emulator
- Open vSwitch 2.0.1
- Libvirt 1.2.2
- LXC 1.0
- MAAS 1.5
- Juju 1.18.1
- StrongSwan IPSec
- MySQL (community alternatives MariaDB 5.5 , Percona XtraDB Cluster 5.5, MySQL 5.6 also )
- Apache 2.4
- PHP 5.5
Download Ubuntu 14.04 Server ISO Images
The installation ISO image can be downloaded using following link for x64 bit system only.
The scope of this tutorial is to present a classic installation of Ubuntu 14.04 Server made from a CD media or an USB bootable stick and also, a basic installation of LAMP (Linux, Apache, MySQL and PHP) packages stack with basic configurations.
Step 1: Installing Ubuntu 14.04 Server
1. Create a bootable CD/USB image. After system booting sequence choose your media bootable type from BIOS options ( CD/DVD or USB drive ). On the first prompt choose your Language end hit Enter.
2. On next screen choose Install Ubuntu Server and hit Enter.
3. Next select your System default Language and also Installation process Language.
4. If your country is nor listed in default Location options choose Other, select your Continent and then your Country.
5. Next select your locales, Try choosing a general one like UTF-8 encoding so later you won’t have problems with keyboard.
6. On next prompt configure your Keyboard – again on servers you should choose a general keyboard Language. Also in this stage the installer can automatically detect your keyboard Layout by pressing a series of keys so be advised to choose No and setup English as default language.
7. After some additional software components are loaded for the installation process to continue. if your server is connected to network, and you run a DHCP server on your directly connected network the installer automatically configures network settings with ones provided from the DHCP server.
Because a server offers public or private network services, the network setting (especially the IP address) must always be static configured.
8. If you get the same result on network hostname prompt press Tab key, choose Go Back and then Configure network manually.
9. On next prompt series enter your network interface settings: IP address, netmask, gateway and DNS name servers.
10. Setup your system hostname – you can also enter your FQDN. Be advised to choose your system hostname wisely and unique because some programs highly depend on this.
11. Now is time to setup your administrative user. On Ubuntu this user replaces the root account and has all root account powers by employing sudo. Enter your username and hit on Continue.
12. Enter your password twice and for security reasons you should always choose a strong one on servers ( at least 12 characters including upper, lower, numerical and special).
In case you used a weak password the installer will alert you. If you are on a test server then choose Yes and continue further.
13. If your server contains sensitive, secret or important data on Users home partition the next screen offers the option to secure all data by Encrypting home directory. If this is not the case choose No and hit Enter.
14. If while installer runs and your network interface card has Internet connectivity the installer will automatically detect your Location and setup your correct time zone. If the provided time is not correctly setup you have the option to choose it manually from a list else choose Yes and press Enter.
15. The hard-disks Partition table is one of the most sensitive subjects involving a server because here you have a lot of tweaking to do depending on your server final destination type web server, databases, file sharing NFS, Samba, application server etc.
- For example if redundancy, fail-over and high-availability is needed you can setup RAID 1, if your space grows fast you can setup RAID 0 and LVM and so on.
- For a more general use you can just use the Guided option with LVM, which is a customized option made by developers.
- For a production environment you probably should have LVM, software or hardware RAID and separate partitions for /(root), /home, /boot and /var ( the /var partition has the most fast growing rate on a production server because here are logs, databeses, applications meta info, servers caches and others located.
So on Partition Disks choose Guided –user entire disk and set up LVM -> select your disk to partition and accept partition table.
16. After the partition table has been written to disk the installer once again prompts you with a partition review. Accept the Partition Table and hit Yes.
If you like to make some changes to this Partition Table you can select No and edit your partitions.
17. After all hard-disk partitions had been written to disk the installer starts copying data software to disk and then reaches HTTP proxy option. If you don’t access Internet through a proxy leave it blank and Continue.
18. Next the installer scans the CD image for software packages and reaches Updates options. Choose No automatic updates because on servers you should try manual update the system.
19. Now the base system is installed but the installer invokes tasksel package which helps you to install some server packs before finishing. For a better control over your server choose only OpenSSH server by pressing Space bar key while others will be installed and configured later and choose Continue.
20. The selected packages are being installed while the last option is displayed on your monitor demanding to Install GRUB to MRB. Because the system can’t boot on his self without GRUB, choose Yes.
21. Once the GRUB boot loader is installed the installation process reaches it’s end. Remove your media installation drive (CD/DVD,UDB) and hit Continue to reboot.
Congratulations! Ubuntu 14.04 LTS Server edition is now installed and ready to rock on your brand new metal or virtual machine.
Step 2: Basic Network Configurations
For now only the Core server packages are installed and you can’t really offer network services for your network.
In order to install software login to your server console for now and verify some basic configurations like network connectivity, settings, startup daemons, software sources, updates and others by running a series of Linux commands.
22. View system load and basic information – After login with your credentials this information is presented by default MOTD. Also top and htop commands are useful.
23. Verify network IP addresses using following command.
# ifconfig –a
24. Verify internet connectivity: run ping command against a domain name ( this will test TCP/IP stack and DNS ).
# ping –c 4 google.ro
If you get “unknown host“ message, edit your ‘/etc/resolv.conf’ file and add the following.
For permanent changes edit ‘/etc/network/interfaces‘ file and add dns-nameserver directive.
25. Verify machine hostname using following command.
# cat /etc/hostname # cat /etc/hosts # hostname # hostname –f
26. To enable or disable init daemons on run-levels install and run ‘sysv-rc-conf‘ utility which replaces chkconfig package.
$ sudo apt-get install sysv-rc-conf $ sudo sysv-rc-conf
27. To start, stop or verify a service (daemon) run the following commands.
# sudo service ssh restart # sudo /etc/init.d/ service_name start|stop|restart|status
28. See server processes, open connections ( listen state ).
$ ps aux | grep service-name $ sudo netstat –tulpn $ sudo lsof -i
29. To edit software repositories, open ‘/etc/apt/sources.list‘ file.
Import new repositories keys with the command.
# sudo apt-key adv –keyserver keyserver.ubuntu.com --recv-keys key_hash
30. Update system.
# sudo apt-get update && sudo apt-get upgrade
Step 3: Install LAMP Stack
LAMP acronym stands for Linux OS, Apache HTTP Server, MySQL, MariaDB, MongoDB databases, Php, Perl or Python programming languages used for generating dynamic webpages. All of this components are free and Open-Source software and are suitable for building dynamic websites or other web applications and are the most used platforms on Internet today (Last year Apache was estimated to serve over 54% of all active websites).
31. LAMP can be installed step by step or using just one single command.
$ sudo apt-get install apache2 php5 php5-mysql mysql-client mysql-server
While is installing enter and confirm mysql databse password.
32. To confirm php status create a ‘info.php‘ file in ‘/var/www/html’ server path with the following content.
<?php phpinfo(); ?>
33. Then open a browser and enter your server IP address or http://server_address/info.php.
Ubuntu 14.04 and LAMP is an excellent platform to deliver network services, develop all kind of dynamic or static websites, complex web applications with the help of Apache CGI, all of this made with a minimum financial impact using Free and Open Source software and the latest technologies.
24 thoughts on “Ubuntu 14.04 Server Installation Guide and Setup LAMP (Linux, Apache, MySQL, PHP)”
I am trying to install ububtu server. I am not connected to Internet yet. While installing, I am asked to select Ubuntu archived mirror. You have not mentioned this step.
What to do now? If i proceed, bad mirror error comes.
Plz help. Thanks
If you don’t have some kind of local apt-mirror setup at your premises then you cannot install Ubuntu without an internet connection. The procedure for offline installation without an apt mirror is very complicated, does not guarantee that security patches or up-to-date packages will be installed and prone to errors, so the bast way to install Ubuntu is to connect the machine to internet while performing the installation procedure. After the installation install all the required software and then you can plug the machine into your local offline network.
A wonderful guide.. i just installed my server with lamp stack.. tanks a lot..
Thank you very much for this.. great article
Thank you Matei for writing this. Just some suggestions —
# sudo service ssh restart
# sudo /etc/init.d/ service_name start|stop|restart|status
What does the 2nd line “# sudo /etc/init.d/ service_name start|stop|restart|status” mean? Is it meant to a comment? If so, please make it clear that it is a comment. Otherwise, it looks like a command! Very confusing to a newbie. I’m not a newbie but I almost wanted to stop reading after seeing this line. It does not reflect well on the author’s intelligence to present it this way.
$ ps aux | grep service-name
$ sudo netstat –tulpn
$ sudo lsof -i
Same – I suppose you wanted to write ps aux | grep ssh or ps aux | grep httpd — that is, you meant to say replace the service-name with the name of the service. If so, please say so! Otherwise this appears like Ubuntu can grep and list all the services in the ps listing — which isn’t possible with other Linux distro and Freebsd.
Please read more about linux commands to get their meaning! You can find a great start-up here: https://www.tecmint.com/free-online-linux-learning-guide-for-beginners/ ! It looks to me that you are a newbie if you those two lines are confusing to you! Actually both command do the same thing!
Best writeup i’ve found online. Big big Thankyou.
especially step 8 “press goback at enter hostname, and enter static ip” – such a timesaver. Typical linux documentation not mentioning this ‘very’ important step. Again big thanks :)
I’d like to add a few notes if i may, that i came across doing a Ubuntu LAMP installation…
April 2015. Ubuntu v14.10. Bootable usb stick. An old BIOS server not uEFI, with multiple OSs and HDDs
choosing Install Ubuntu Server is much much faster than choosing Advanced Install. For some unknown reason the progress bars fly by compared to crawling by with that second option. very odd!
1) i always get asked if i first want to unmount “sdb” (which is the drive i’m going to install to) sometimes i’ve said no, othertimes yes. it doesnt appear to make a difference.
2) disabling (turning off) hdd’s in bios, does ‘not’ stop them showing up in the partition manager, or GRUB configuration. so careful!
3) if using LVM, create a small /boot partition outside of any logical Group. A real ‘gotchya’.
Partitioning Example (not uefi)
so, i selected Manual partitioning, then the disk to use “sdb”, then the (40GB) freespace on said disk, then
Create a partition: 1GB, primary, at beginning, /boot, ext4, bootflag=on
Use LVM and create a Volume Group “LinuxPartitions” using (39GB) freespace
– still in LVM create Logical Volume “root” 35GB and “swap” 4GB. exit LVM
Back in partition manager, select LV Root and set UseAs=ext4, /, “root”.
– select LV Swap and set UseAs=swap.
Done, finished, write, continue…
Problems with GRUB
“other operating systems found” on ‘disabled’ disks !!!!!!! “Install GRUB to MBR…” choose: No! It’ll cause a Fatal Error trying to write to some disable disk. When asked, type the correct location: /dev/sdb in my case.
Finished, reboot, login
–failed to start unit user1000…
–failed to start user service…
these are known bugs apparently.
Again Thanks a lot. I hope my input helps others learning all this.
I believe the tutorial has a small typo on the step 
I believe you wanted to run the command: sudo lsof -i
Thank you for the great work.
Thanks for pointing out, yup that was a typo at our end..corrected in write up..
This is crap!!! Quite a number of errors. Just more misinformation on the great information superhighway.
We are very sorry for the errors if any you find on the article, it would be great if you could tell us so that we can correct it. thanks in advance.
Wonderful article! We are linking to this particularly great
post on our website. Keep up the great writing.