実現したいこと
xfree(PHP・MYSQLサーバー)でwebサービスを運用していたら、500 Internal Server Error が出てしまったので、そちらを解決したいです。
また、ファイルのアップロードはFileZillaを使用しています。
起きている問題
現在、xfreeのPHP・MYSQLサーバーを使用して、webサービスを運用していたのですが、何かが原因で突然サイトが開けなくなってしまいました。
エラーメッセージ
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@ドメイン and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
書いてあるとおり、「内部サーバーエラー」のようです。
そして一番下の段に「サーバーエラーログを確認してください」と書いてありますが、
どうやら自分が確認した限りでは、PHP・ MYSQLサーバーの管理画面ではエラーログを確認する場所がありません。(WordPressサーバーの情報は見つかるのですが...)
Applications/MAMP/logs/php_error.logで確認したエラー内容です
PHP Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/Original-Application/main/app/weight_chart.php:9) in /Applications/MAMP/htdocs/Original-Application/main/libs/function.php on line 78
スクリプトの実行中にheader()をしたことで発生するエラーのようです
ちなみにエラーで指摘されている箇所はこうなっています
function INSERT2($pdo, $user_id, $date, $weight) { $sql = "INSERT INTO chart(user_id, date, weight) VALUES (:user_id, :date, :weight)"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':user_id', $_SESSION['user_id'], PDO::PARAM_STR); $stmt->bindValue(':date', $date, PDO::PARAM_STR); $stmt->bindValue(':weight', $weight, PDO::PARAM_STR); $stmt->execute(); $pdo->commit(); // header("Location:weight_chart.php"); おそらくここがエラーになっているようです // exit(); }
試したこと
-
FileZillaで必要なファイルを全て再アップロードをやってみたのですが、結局何も変わりませんでした。
-
xfreeの管理パネルの「php.ini設定」でエラー設定を軽くいじってみたのですが、特に何も変わらず同じエラーが出てきました。
-
FileZillaで全ディレクトリ・ファイルのパーミッションを755(705も検証済み)にしてみたのですが、特に状況は変わらずで、同じエラーが出ています。
このような状況になった原因の仮説
おそらくですが、使用しているメインのディレクトリの名前を変更したことにより、起きたと考えられます。
以前はとある理由でscr-imageというディレクトリ名だったのですが、とある理由によりディレクトリ名をmainに変更しました。
原因はおそらくその変更によるエラーの調整をしていたときに発生したものだと考えらます
補足情報
エラーログに記載していたweight_chart.phpです
php
1<?php 2include('../libs/init.php'); 3 4// ログインしていなかったらログインしてもらう 5if(!isset($_SESSION['user_id'])) { 6 header("Location: login.php"); 7 exit(); 8} 9 10// DB接続 11$pdo = db_connect(); 12$pdo->beginTransaction(); 13 14// 空の変数$date, $weightを用意(DBのデータを表示するために) 15$user_id = ''; 16$date = ''; 17$weight = ''; 18$stmt = ''; 19 20$stmt = fetchAllWeight($pdo, $_SESSION['user_id']); 21 22$date = trim($date, ","); 23$weight = trim($weight, ","); 24 25// Smarty接続 26$smarty = getSmarty(); 27$smarty->assign('USERNAME', $_SESSION['USERNAME']); 28$smarty->assign('date', $date); 29$smarty->assign('weight', $weight); 30$smarty->display('weight_chart.tpl'); 31?>
以上です。わかる方がいらっしゃれば、ご回答よろしくお願いします。