Tag: WordPress/トラブルシューティング
関連ページ†
参考情報†
サムネイル†
記事一覧のサムネイルのアスペクト比がくずれる†
- Simplicityテーマで発生。
- 原因はPHPでGDモジュールがインストールされておらず「Regenerate Thumbnails」でもサムネイルが作られていなかったことが原因。
- そもそもSimplicityで記事一覧に表示されている画像は「アイキャッチ画像」のサムネイルとなっている。サムネイルが作られている場合クロッピングされたアイキャッチ画像のサムネイル画像が表示されるのだが、サムネイル画像がないためもとのアイキャッチ画像が縮小表示されていた。
- Auto Post Thumbnailで最初の記事を自動的にアイキャッチ画像にしても、そのアイキャッチ画像のサムネイル画像が作られていない限り同様の減少となる。
人気記事一覧でサムネイルが表示されない†
- WordPress Popular Postsも、これを使用しているSimplicityの人気記事一覧でも表示されない。
- これも原因はサーバーにPHP GDがインストールされていないのが原因。
その他†
データベース接続エラーが発生する†
プラグイン/本体をアップグレードしようとすると「ファイルストリーミングの送り先となるディレクトリが存在しないか、書き込み不可になっています。」といわれる。†
- update-core.phpのソースコードが表示される。
- 原因不明。その状態でリロードすると正しく表示された。
管理ページの投稿一覧で2ページ目が閲覧できない†
- WordPress › Support » IP Redirect Issue in WP 3.1, 3.1.1, 3.1.2
- やればできる!Apacheリバースプロキシ+WordPress | hiro345
- HTTP_HOSTが正しく設定されていないのが原因のようだ。
define('WP_SITEURL', 'https://example.jp/wp/');
define('WP_HOME', 'https://example.jp/wp/');
define('WP_CONTENT_URL', 'https://example.jp/wp/wp-content');
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
$_SERVER['HTTPS'] = 1;
- 実際は以下の2行の追加で表示できるようになった。
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
無限リダイレクトが発生してページが表示できない†
- WordPressのトップページにアクセスすると「http://localhost/wp/:///」という風なリダイレクトが発生しページが表示できない。
- ブラウザだと分かりづらいので「curl -i http://localhost/wp/」でテストすると良い。
- 最初は.htaccessのパーマリンク設定化と思っていたがこれを削除しても関係なかったので違う。
- WordPressのリダイレクトループの解決方法のようにtemplate-loader.phpの「do_action(‘template_redirect’);」をコメントアウトしたら良いという情報がありコメントアウトしたら確かにリダイレクトループは解消された。ただし原因は書かれていない。そもそも普通はリダイレクトループが発生しないので何か原因があるはず。
- さらに調査するとredirect_canonicalが原因らしい。これはURLの正規化を行っている。
- どうやらリバースプロキシ設定のためにいれた以下の2行がそのままだったのが原因だった(リバースプロキシ環境じゃないところで動かそうとしたので。HTTP_HOSTが空白となる)。
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
- とはいえOS XのHomebrewで入れたPHP 5.3.29だと問題なく、CentOS 6.7のPHP 5.3.3だとエラーが発生するのでやはり何かがおかしく調査続行。
- wp-config.phpに以下の設定を追加しプリントデバッグ。
define('WP_DEBUG', true);
//define('WP_DEBUG', true);
if (WP_DEBUG) {
define('WP_DEBUG_LOG', true); //エラーをdebug.logファイルに書き出す
define('WP_DEBUG_DISPLAY', false); //エラーをブラウザに表示しない
@ini_set('display_errors', 0); //エラーをブラウザに表示しない
}
if(!function_exists('_log')){
function _log($message) {
if (WP_DEBUG === true) {
if (is_array($message) || is_object($message)) {
error_log(print_r($message, true));
} else {
error_log($message);
}
}
}
}
- 結局canonical.phpの@parse_url($requested_url)の戻り値がPHP 5.3.3の場合空白となり、 5.3.29だと配列として戻り値が戻ってくることが原因だとわかった。
<?php
$result = parse_url(":///");
echo $result;
?>
- 結局PHPの不具合だったのかどうか、これ以上は不明。とりあえず$_SERVER['HTTP_HOST'] に値が設定されていれば問題ない。
データベース内の投稿を更新できません†
- MySQLの絵文字問題らしい。絵文字を削除したら大丈夫だった。