Lots of permissions errors, should the entire site be set to www-data? This is my first time configuring a lamp stack and I'm running into lots of problems with permissions. Here's an example of one of the errors

The specified file temporary://fileChLMzd could not be copied, because the destination directory is not properly configured. This may be caused by a problem with file or directory permissions. More information is available in the system log.

When I go to reports / recent log messages, this is all I can find:

REFERRER   http://localhost/boilerplate/public/admin/reports/dblog
MESSAGE File temporary://fileChLMzd could not be copied, because the destination directory public://js is not configured correctly.

I use to get a lot more of these errors when I had my temp directory inside of the apache installation, but I've since moved it to /tmp, which got rid of a lot of errors. 

I've currently got my entire sites/default/files folder set to 777 with www-data access, which doesn't feel safe.. is this right? 

Should everything else be set to have root access, like it currently is, instead www-data?

Stuff that I'm using:

Ubuntu 14.04 
Apache2
MySQL
PHP 5.5
Drush status:
 Drupal version                  :  7.41
 Site URI                        :  http://default
 Database driver                 :  mysql
 Database hostname               :  localhost
 Database username               :  admin
 Database name                   :  boilerplate
 Database                        :  Connected
 Drupal bootstrap                :  Successful
 Drupal user                     :  Anonymous
 Default theme                   :  boilerplate
 Administration theme            :  seven
 PHP configuration               :  /etc/php5/cli/php.ini
 Drush version                   :  5.10.0
 Drush configuration             :
 Drupal root                     :  /var/www/html/boilerplate/public
 Site path                       :  sites/default
 File directory path             :  sites/default/files
 Private file directory path     :  /var/www/html/boilerplate/private 
 Temporary file directory path   :  /tmp
You should never give the files directory 777 permissions unless your workin on a local machine. Still then it is bad practice.

Every file in the system needs to be readable by the system user your webserver is using. Every directory should be readable, writable and executable by the same user. The same could be said for the webserver group.

I always set the user to my local user and the group to a group that is readable by my user account &amp; the webserver account. The files directory (and his subdirectories) could be set to a simple 775 so the user and the group have permissions to it. All other users should only be able to read &amp; execute the directory.
As for the files inside the files directory, they should be readable and writable to the local user and the webserver group &amp; only readable for all other users. They should be set to 664.

The same could be said about your private directory, which I just noticed in your error post.