The 500 error is an error generated by the server when it encounters an error condition that can not resolve automatically. That is, if a file is not found, the error is 404 (Not found), if you can not lists a directory, the error 403 will be launched (Forbidden). For errors that do not have an explicit definition, will raise the error 500 (Internal error).
This error usually occurs in Apache:
when used in the .htaccess file some unsupported directives.
in some hostings where by security constraints limit the execution of PHP scripts, for example, only if the write permissions are restricted to the propietary user (chmod 0644).
That is, when a 500 error, we must try to disable directives located in the .htaccess files and check the permissions of your PHP scripts.