Tag Archives: LAMP

Laravel Application Logs and Logrotate

Depending on usage, errors, and what you’ve chosen to log, the Laravel application log(s) can really grow after a while.  With Laravel 3 and initially with Laravel 4, new log files were created every day by default, which kept them small and easy to search, but now Laravel 4 defaults to a single log file (which I prefer).

Continue reading

Thoughts on Vagrant

I’ve been making a play to get current and stay current with today’s web dev technologies, trends, etc.

It’s not easy. Things are moving fast and I was a bit behind to begin with.

Some of the tools that developers on the cutting edge are pushing appear to be a little abstract relative to what I’m actually working on right now or to my current workflow. One of these tools is Vagrant. Don’t worry, I do get it. Dev environments should match Prod and Vagrant makes it much easier to accomplish. But as a single developer who doesn’t need new environments that often, do I really want to spend time learning about Vagrant, along with Chef and/or Puppet just to prop up the occasional new environment when my current OS X/MAMP Pro dev environment really hasn’t caused me any problems to date? (actually, I did have an issue with case-sensitivity and class names, but not a big deal.)

Again, my use-case is currently limited (single developer, very few new environments, content with MAMP). And I don’t really want to take the time right now to learn Chef or Puppet. But if I can make it super simple, and considering the prospect of developing an app and packaging it up with a Vagrantfile and including it in a repo – all ready to go (I haven’t really seen this, but it sounds cool), then maybe it’s worth looking into. Plus, I’ll have that peace of mind that my Dev and Prod environments are matched.

So I borrowed some code from a couple of different Vagrant/Laravel 4 Github repos and mashed together my own Vagrantfile/boostrap.sh that is very simple and doesn’t require Puppet or Chef to get something up and running that to run a Laravel app. In addition to installing a LAMP environment, it points the default Apache site to the public folder.

Your web app will be available at http::/localhost:8888 and you can access MySQL via an SSH tunnel using the “vagrant” user.

Posted on Github: https://github.com/rufhausen/super-simple-vagrant-laravel

Laravel 4 Pagination with Column Sorting

It took a little effort, but I finally got Laravel 4′s pagination class working with the ability to sort by column. Posted here so I don’t forget.

//Controller

$widgets = Widget::all();
$sort = (!is_null(Input::get('sort')) ? Input::get('sort') : 'name');
//with 'name' being the default column to sort on.
$order = (!is_null(Input::get('order')) ? Input::get('order') : 'desc');
//'desc' is the default sort order.
$widgets = $widgets->orderBy($sort, $order);
$widgets = $widgets->paginate(20);

//include $order and $sort when retrieving your layout/view
$this->layout->nest('content', 'widgets.index',array('widgets' => $widgets, 'sort' => $sort, 'order' => $order));

//View

//Display the pagination
//I tried using appends() first, but could not chain multiples
{{ $events->addQuery('order',$order)->addQuery('sort', $sort)->links() }}

//Column header
{{link_to_route('widgets.index','Name', array('sort' => 'name'))}}
//Using Twitter Boostrap up/down arrows
<a href="{{route($route, array('sort' => $sort, 'order' => 'asc'))}}">
        <i class="icon-chevron-up"></i>
</a>
<a href="{{route($route, array('sort' => $sort, 'order' => 'desc'))}}">
        <i class="icon-chevron-down"></i>
</a>

A Simple Git Deployment setup on Ubuntu Server

After spending a lot of time on trial & error to set up a simple Git web application deployment setup using Ubuntu server, I’m writing this down as a reference for myself and thought it might helpful to others as well. If anyone actually reads this and can comment on:

  • Things I missed
  • Things I did that were stupid
  • Things that were especially stupid

…it will be appreciated.

This is based on Ubuntu 12.04 server and deploying from OS X, though that part shouldn’t matter.

Continue reading