I was having a little trouble getting Laravel installed on a newly installed Ubuntu 14.04 LTS server. I’ve decided to document the whole process in hopes that I’ll use the documentation to good use once again sometime in the future. Who knows, someone will benefit from reading this. I’m not the only one that will be doing a Laravel installation on Ubuntu.
If you need to install Ubuntu from scratch, I recommend that use install LAMP and SSH because you’ll need those services to support Laravel. PHP, MySQL, Apache and SSH would be installed for you right out of the gate. In addition, I recommend that you install PHPMyAdmin for database administration.
In Ubuntu, the default document root is /var/www/. Before starting, let’s make sure we got the correct permissions for Apache, and for the user (you). This is to prevent so you don’t run into issues with write permissions on the document root.
Permissions for /var/www/
# Set group to www-data sudo chgrp www-data /var/www # Make it writable for the group sudo chmod 775 /var/www # Set GID to www-data for all sub-folders sudo chmod g+s /var/www # Add your username to www-data group sudo usermod -a -G www-data username # Finally change ownership to username sudo chown username /var/www/ # Your account shouldn't have any more permission issues
Let’s get the prerequisites taken care of before installing Laravel
sudo apt-get install php5-curl
sudo apt-get install php5-mcrypt
# Create a symbolic link sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/conf.d/mcrypt.ini # Enable extension sudo php5enmod mcrypt # Restart Apache sudo service apache2 reload
# enable rewrite sudo a2enmod rewrite # restart apache sudo service apache restart
Set up your Apache virtual host
# Copy default Apache conf sudo /etc/apache2/sites-available/000-default /etc/apache2/sites-available/laravel.conf # Edit laravel.conf and change DocumentRoot to /var/www/laravel/public sudo nano /etc/apache2/sites-available/laravel.conf # Edit laravel.conf add the following and save. DocumentRoot /var/www/laravel/public <Directory /var/www/laravel/public> Options Indexes FollowSymLinks MultiViews Allow Override All Order allow,deny allow from all </Directory> # Reload Apache sudo service apache2 reload # Disable default Apache conf sudo a2dissite 000-default.conf # Enable laravel.conf sudo a2ensite laravel.conf # Reload Apache sudo service apache reload
Install Via the Laravel Installer
I found the Laravel installer to be the easiest way to install Laravel. Easier than Composer and Git.
cd /var/www/ wget http://laravel.com/laravel.phar
Move it to /usr/local/bin
sudo mv laravel /usr/local/bin/laravel
Make it executable
sudo chmod +x /usr/local/bin/laravel
# projects is the destination folder cd /var/www/ laravel new projects
The cool thing about this example is, I didn’t need to change permissions to “app/storage” since the user has the correct permissions to /var/www. Access Laravel from the IP address of your Ubuntu Server. The IP address of your Ubuntu server should be set to static. The network config file is located in /etc/networking/interfaces.