原因を探るため、まずはデバッグを有効にしてエラーを表示することをおすすめします。
wp-config.phpの該当箇所をfalseからtrueに書き換えます。
define('WP_DEBUG', false);
↓
define('WP_DEBUG', true);
こんにちは
PHP のバージョンが上がった (7.4.12) ことで、エラーが発生していると思われます。
WordPress バージョンが 4.4.24 のようなので、PHP のバージョンを7.0以下へ変更してみてはどうでしょうか。
トピック投稿者
tksk
(@tksk)
@aoixtreme
回答ありがとうございます。
投稿前にtrueは変更したのですが、HPにアクセスしても「現在機能してありません」と特に変化が無い状態です。
それともエラーの表示される場所が違うのでしょうか?
抜けている点があれば、ご教授いただければと思います。
トピック投稿者
tksk
(@tksk)
@ishitaka
回答ありがとうございます。
PHPのバージョンをダウングレードですが、ロリポップはアップグレードするとダウングレードできず、困っております。
https://support.lolipop.jp/hc/ja/articles/360048375214
現状選べるのは
7.3 CGI
7.4 CGI
7.4 モジュール版 ←現在の設定
ほかに解決案など、お気づきの点があればご教授いただければと思います。
エラーの表示が表示されないのは、セキュリティ向上のため、お使いのサーバーではPHP設定でdisplay_errorsがoffになっているからではないかと思います。
管理画面から一時的にonにすることが可能であれば、エラーが表示されるかもしれません。
参考:HTTP ERROR 500というエラーが発生します(ロリポップ)
問題解決後は、再度onにすることをお忘れなく。
ただ、今回の件はWordPress本体をアップデートしない限り、対応は難しいと思います。
トピック投稿者
tksk
(@tksk)
@aoixtreme
返信ありがとうございます。
onにしたことで、下記のようなエラーが表示されました。
Warning: Use of undefined constant ‘WPLANG’ - assumed '‘WPLANG’' (this will throw an Error in a future version of PHP) in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-config.php on line 85
Warning: Use of undefined constant ‘ja‘ - assumed '‘ja‘' (this will throw an Error in a future version of PHP) in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-config.php on line 85
Fatal error: Uncaught Error: Using $this when not in object context in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/taxonomy-terms-order/taxonomy-terms-order.php:136 Stack trace: #0 /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-settings.php(254): include_once() #1 /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-config.php(94): require_once('/home/users/0/l...') #2 /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-load.php(37): require_once('/home/users/0/l...') #3 /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-blog-header.php(12): require_once('/home/users/0/l...') #4 /home/users/0/lolipop.jp-91250be96fa71f5b/web/index.php(17): require('/home/users/0/l...') #5 {main} thrown in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/taxonomy-terms-order/taxonomy-terms-order.php on line 136
プラグインエラーでしょうか?
85のラインと136ラインを調整する必要があるのでしょうか。
またWordpressのアップデートは、ログインできない場合はFTPで外部アップデートなどが必要になるのでしょうか。
重ね重ねの質問で申し訳ありませんが、ご助力お願いします。
先の返信で「問題解決後は、再度onにすることをお忘れなく。」と書きましたが間違えました。解決後は「on」ではなく「off」にしてください。
さて、今回の一番の原因はプラグインのエラーです。Category Order and Taxonomy Terms Orderを更新する必要があります。しかし管理画面が見えませんので、FTP経由などで上書きするか、もしくは応急処置で該当ファイルを下記のように直してください。
/wp-content/plugins/taxonomy-terms-order/taxonomy-terms-order.phpの136行目
add_action( 'wp_ajax_update-custom-type-order-hierarchical', array(&$this, 'saveAjaxOrderHierarchical') );
↓(頭に#をつけてコメントアウト)
#add_action( 'wp_ajax_update-custom-type-order-hierarchical', array(&$this, 'saveAjaxOrderHierarchical') );
wp-config.phpファイルの85行目の記述も、今後のPHPバージョンパップで問題になります。この際ですから直しておくと良いです。「JA」を「’ja’」「WPLANG」を「’WPLANG’」のように、シングルクオーテーションマーク(”)やダブルクオーテーションマーク(””)で囲ってください。
トピック投稿者
tksk
(@tksk)
@aoixtreme
わかりやすくアドバイスくださり大変感謝しております。
ご指摘の#をつけることを、実行いたしました。
またJAやWPLANGに関しては、’ja’になっていました。
修正後再度確認致しましたが、HTTP 500 ERRORの表示になっております。
デバッグを確認してみた所、次は違う表示になっていました。
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/custom-field-template/custom-field-template.php on line 3249
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; custom_field_template has a deprecated constructor in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/custom-field-template/custom-field-template.php on line 35
Deprecated: Function create_function() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/photo-gallery/photo-gallery.php on line 558
Deprecated: Function create_function() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/photo-gallery/photo-gallery.php on line 560
Deprecated: Function create_function() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-includes/pomo/translations.php on line 208
Deprecated: Function create_function() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-includes/pomo/translations.php on line 208
Deprecated: Function create_function() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-includes/pomo/translations.php on line 208
Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-includes/load.php on line 607
Deprecated: Function create_function() is deprecated in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-includes/pomo/translations.php on line 208
Fatal error: 'break' not in the 'loop' or 'switch' context in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/themes/precious/admin/theme-options.php on line 858
また同じように、コメントアウトなどの作業が必要になるのでしょうか?
お手数だと思いますが、ご助言いただければ幸いです。
上記の内、「Deprecated:」については、取り敢えず無視して構いません。PHP設定でdisplay_errorsをoffにすれば消えるはずです。
最後の「Fatal error:」が問題ですが、これはPHP7になり仕様が変わったためにエラーになっています。
再び、(管理画面を表示するまでの)応急処置ですが、/wp-content/themes/precious/admin/theme-options.php の858行目のbreak;
の頭に#を付けてコメントアウトしてください。
これでもし管理画面を表示できれば、プラグイン等のアップデート等を行ってください。
それからお使いのテーマ「precious」がWordPressの最新版に対応できるかどうかの確認もしてください。
引き続きエラーが出るかもしれませんが…。
トピック投稿者
tksk
(@tksk)
@aoixtreme
日曜の夜分に、早々の返信ありがとうございます。
再度コメントアウト後エラーが、再度同php内に出現したので、エラー分を読解し処理を行ったところ管理画面に行くことができました!
しかしID,PASSを入れてもログインができず、画面の上部にERROR文が表示されました。
大量のDeprecated:の中、
Warning: Cannot modify header information - headers already sent by (output started at /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/custom-field-template/custom-field-template.php:3249) in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-login.php on line 387
Warning: Cannot modify header information - headers already sent by (output started at /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/custom-field-template/custom-field-template.php:3249) in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-login.php on line 400
Warning: Cannot modify header information - headers already sent by (output started at /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-content/plugins/custom-field-template/custom-field-template.php:3249) in /home/users/0/lolipop.jp-91250be96fa71f5b/web/renewal/wp-login.php on line 402
このWarningが影響出てるようでしょうか?
該当のwp-login 387~402まではこのように表記されています。
header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));
if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set
if ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF']) )
$_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );
$url = dirname( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) );
if ( $url != get_option( 'siteurl' ) )
update_option( 'siteurl', $url );
}
//Set a cookie now to see if they are supported by the browser.
$secure = ( 'https' === parse_url( wp_login_url(), PHP_URL_SCHEME ) );
setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure );
if ( SITECOOKIEPATH != COOKIEPATH )
setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure );
また管理画面には下記のような文も表示されております。
エラー: 予期しない出力により Cookies がブロックされました。ヘルプが必要な場合はこちらのドキュメンテーション(http://wpdocs.osdn.jp/Cookies)を読むか、サポートフォーラムをご利用ください。
ログインまではあと少しだと思うのですが、エラーが出ており再度困惑しております。
何か別の作業が必要になるのでしょうか?
申し訳ありませんが、ご助力引き続きよろしくお願いいたします。
もしここまでの措置でログイン画面が出るようになりましたら、再度PHP設定でdisplay_errorsをoffにしてみてください。ログインできるでしょうか?
トピック投稿者
tksk
(@tksk)
@aoixtreme
falseに戻したら、ログイン出来ました!!
ありがとうございます!!!
Wordpress、プラグイン、テーマの更新を実施しました。
しかしHPの500は改善せずでした・・・
アップデートが完了したようですので、WordPress本体に関してはPHPのエラーがなくなったはずです。
ところでWordPressのインストール先は「/renewal/」のようですが、トップページからだと「/wp2020/」に変更になっているので、表示できないのはそのあたりの整合性が取れていないことが原因ではないかと思います。
もともと公開されているところに、renewalとして新しいWordPressを入れたのでしょうか。
サブディレクトリ「/renewal/」を維持したまま、ルートディレクトリで公開する方法として、WordPress を専用ディレクトリに配置するというものもありますので、ご検討ください。
トピック投稿者
tksk
(@tksk)
@aoixtreme
大変お恥ずかしながら、昨日の17時頃にWordpress更新できると思い、素人判断でロリポップのWordpress簡単インストールを実施してしまいました。
その結果、一度新しいWPが実装されましたが、wp-configから修正して対応しております。
$table_prefix = ‘wp〇〇’;
もしかして、そちらの影響が今回の整合性が取れてないことと影響しているのでしょうか?