Prestashop用にPHPでモジュールを開発していて、コードのデバッグに苦労しています。何かが失敗してもエラーは表示されず、空白のページだけが表示されます。モジュールがフックされているフロントエンド、またはバックエンドモジュールページ。
別のクラスまたは別の関数で書き込もうとしていますが、まったく気に入らないのです。
ローカル開発サーバー上にあり、PHPエラーが発生しています。
コードをコメントアウトする代わりに、デバッグする他の方法を誰かに教えてもらえますか?またはエラーコードを取得する方法はありますか?
よろしくお願いします。
_config/config.inc.php
_を開いてから、以下を変更してみてください。
@ini_set('display_errors', 'off')
に
@ini_set('display_errors', 'on')
。
PS 1.5以降では、_config/defines.inc.php
_を開いて次を変更する必要があります。
define('_PS_MODE_DEV_', false);
に
define('_PS_MODE_DEV_', true);
バックオフィスページに移動します。
高度なパラメータ->パフォーマンス->キャッシュのクリーンアップ(消しゴムアイコン)
私がしなければなりませんでした
aptitude install php5-mcrypt Sudo aptitude install php5-mcryptSudoサービスApache2再起動
暗号化がインストールされていません
私の場合(PS 1.7)、多くの製品を大量に追加した後、画面が空白になりました。また、エラー500の空白の画面であることに気付きました(ブラウザコンソールから取得しました)。
解決策は、PHPのメモリ制限を単純に増やすことでした。これは、index.phpファイルの先頭に次の行を追加することで実行できます。
ini_set('memory_limit', '512M');
512Mで解決しましたが、それでも問題が解決しない場合は、さらに試すことができます。
これは一時的/高速なソリューションです。永続的にしたい場合は、ソースでその値を直接変更し、php.ini
を見つけて、memory_limit
フィールドの値を編集するだけです。
あなたはここでより多くの情報を見つけることができます: https://www.inmotionhosting.com/support/prestashop-16/blank-screen
/ cacheディレクトリの「class_index.php」の名前を「class.index.old.php」に変更してから、サイトをリロードしました。サイトが読み込まれました。そして、このディレクトリに新しい「class_index.php」が作成されました。
最終的な解決策については、これをチェックしてください!
まず第一に、あなたはあなたのウェブサイトでエラー報告を有効にする必要があります。
1)ファイルconfig\config.inc.phpを開き、次の行を見つけます。
@ini_set(‘display_errors’, ‘off’);
2)「オフ」を「オン」に変更し、ファイルを再アップロードしてページを更新します。
それでも問題が解決しない場合は、次の手順に進みます。
3)このコードをPrestaShopインストールのルートにあるindex.phpファイルの先頭に追加し、サーバーに再アップロードします。次に、Webサイトと管理パネルにアクセスしてみます。
<?php error_reporting(0);
$old_error_handler = set_error_handler("userErrorHandler");
function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars)
{
$time=date("d M Y H:i:s");
// Get the error type from the error number
$errortype = array (1 => "Error",
2 => "Warning",
4 => "Parsing Error",
8 => "Notice",
16 => "Core Error",
32 => "Core Warning",
64 => "Compile Error",
128 => "Compile Warning",
256 => "User Error",
512 => "User Warning",
1024 => "User Notice");
$errlevel=$errortype[$errno];
//Write error to log file (CSV format)
$errfile=fopen("errors.csv","a");
fputs($errfile,"\"$time\",\"$filename:
$linenum\",\"($errlevel) $errmsg\"\r\n");
fclose($errfile);
if($errno!=2 && $errno!=8) {
//Terminate script if fatal error
die("A fatal error has occurred. Script execution has been aborted");
}
}
?>
この操作の後、index.phpファイルが配置されているフォルダーにerrors.csvというファイルが見つかります。任意のテキストエディタを使用してファイルerrors.csvをダウンロードして開くと、そこにエラーログがあります。