
PHPをサーバーにアップし、いざ実行しようとしたとき500エラー(Internal Server Error)が出ることがあります。理由は様々ですがとりあえず確認しときたいポイントを3カ所ご紹介します。
パーミッション(権限)が不足している
実行権限が当たっていない(5以上になっていない)場合に、サーバーの設定次第ですがエラーする可能性があります。
下記のようにFTPソフトや、SSHツールで表示されていたら権限不足ですので、必要な権限を与えるとエラーが解消できるかもしれません。


改行コードがLFになっていない

PHPファイルの文字コードが、アップロードするサーバーOSの文字コードと異なっている場合500エラーが発生することがあります。
WindowsならCR+LF、LinuxならLFが対応文字コードなので、もし異なっていたら「名前を付けて保存」などで文字コードを指定すれば解消されることがあります。

一行目のPHPのパスが誤っている
可能性は通常低いと思いますが、一行目のPHPのパスが間違っていたり、パスが指定されていないことによって、500エラーが発生することがあります。

間違っているか確認する場合は、記載されているパスにPHP実行ファイルが存在するか確認します。

lsコマンド等でファイルが見つかれば、とりあえず問題ないかと思います。
もし見つからなければ、whichコマンド等で実行ファイル置き場を探してそのパスに変更します。

まとめ
ファイル由来のエラーであればこれでだいたい直るはず。
Apacheや.htaccessの設定によってエラーしている可能性はありますがまたの機会で。。