WordPressサイトをローカルサーバーからオンラインサーバーに移動しようとしています。
問題は、移行後に、管理ページ(wp-admin)を開こうとすると、ここにあるように白いページしか取得できないことです。 http://scorejava.com/wordpress/wp -admin / 。ホームページでは他のすべてがうまく機能しているようです: http://scorejava.com/wordpress/ 。
私のローカルWebサーバーでは、WPフォルダーにサイト:/var/www/wordpress
。オンラインWebサーバーのルートディレクトリにあるwordpressフォルダーに移動しました。
MySqlを使用してローカルデータベースをonlyneデータベースにインポートし、Search and Replace for WordPress Databases Script)を使用して自動的に変更しました全ての http://localhost/wordpress
http://scorejava.com/wordpress/ を使用してデータベーステーブルに出現します。
サイトにエラーがあり、何が起きているのかを知る必要があります。
WordPress URLが変更されるサイトを移行する場合、新しいURLについてWordPressを通知する必要があります。WordPressデータベース内の情報。したがって、それに慣れている場合は、データベースのwp_options
テーブルで正しいエントリを見つけ、その値を更新できます。
標準のWordPressインストール(サイトのURLはWordPressルート))に対する修正をいくつか示しますが、セットアップが異なる場合は、home
とsiteurl
に異なる値を使用する必要があります。
wp_options
のエントリであるDBの関連フィールドを更新する必要があります。ここで、option_name
はsiteurl
またはhome
です。これらのフィールドは、phpmyadmin、mysql-workbench、または別のデータベース管理ツールを使用して見つけることができます。または、次のクエリを使用して、URLを独自のものに変更できます。
UPDATE `wp_options` SET `option_value`='http://www.myurl.com' WHERE `option_name` IN ('siteurl', 'home');
wp-config.php
を介してURLを修正ただし、wp-config.php
を使用してこれを行うこともできます。 wp-config.php
を開き、次の行を追加するだけです。
// Site URLS (override DB settings)
define('WP_HOME','http://www.myurl.com'); //<-- NO TRAILING /
define('WP_SITEURL','http://www.myurl.com'); //<-- NO TRAILING /
当然、正しいURLを指定する必要があります。
これが唯一のエラーである可能性があり、これらの行をwp-config.php
に追加すると、サイトにログインして通常どおり使用できるようになります。
ただし、引き続き問題が発生し、Webサイトの開発に取り組んでいる場合は、エラー出力を確認する必要があります。サーバーログでエラーに関する情報を確認できますが、WordPressでページにエラーを表示する方が便利です。エラー表示を有効にするには、次の設定をtrue
に変更します。 wp-config.php
で。
define('WP_DEBUG', true);
現在、WordPressはWebページで直接発生したエラーを表示します。本番サイトで使用するには、必ずfalse
に設定を変更してください。
wp-config.php
の操作このファイルは、wordpressインストール済み環境のルートディレクトリにあります。ここで述べた変更を行うには、サーバー上で直接ファイルを編集することができます(たとえば、ssh
経由)、またはFTPクライアントでファイルをダウンロードし、テキストエディターを使用して変更を加え、ファイルを再度アップロードします。
また、作業中に何かが壊れた場合に備えて、変更を行う前にバックアップコピーを保持しておくことをお勧めします。
パーティーに遅れて、私は最近これを経験し、問題を解決することができました。これが私がやったことです。
ステップ1: _WP_DEBUG
_を_wp-config.php
_ファイルからtrue
に設定します
ステップ2:これにより_domain.com/wp-login.php
_の代わりに_domain.com/wp-admin
_を試しました。少なくともログインフォームと_Warning: Cannot modify header information - headers already sent by
_のエラーを取得できました。
ステップ3:最初の行の_wp-login.php
_の後に_<?php
_ファイルにob_start();
を追加しました。
ステップ4:このトリックはうまくいきました。すべてのプラグインを無効にしましたが、エラーはなくなりました。
ステップ5:すべてのプラグインを1つずつアクティブにして、エラーを引き起こしているプラグインを見つけ、特定のプラグインのエラーを修正できるようにしました。 _wp_enqueque_style
_の前にスタイルを追加するプラグインが1つあったので、関数に設定して適切にフックします。
deprecated
関数のようなあまりにも小さなエラーがいくつかありました。それを修正するか、代替プラグインを使用するかはあなた次第です。
_ob_start
_ファイルから_wp_login.php
_を削除することを忘れないでください。コアファイルは変更しないでください。
これが私のような人を助けることを願っています。
WordPress=ダッシュボードの設定内には、「WordPressアドレス(URL)」と「サイトアドレス(URL)」という名前の2つのフィールドがあります。これらは「ホーム」と「サイトウェブサイトのURL」設定。値は、実際に実行しているサーバーと一致する必要があります。
管理者にアクセスできない場合は、phpmyadminを使用してデータベースにアクセスし、wp_optionsテーブルに類似するフィールドを見つけて、それらがドメインを反映していることを確認します。
ほとんどの場合、これで十分です。
私は恐ろしい「死の白いスクリーン」と何度か戦いました。 Wordpressサポートサイト でスレッドを参照して、いくつかの提案を収集するか、Googleで多数の人々のストーリーやこれらに対処するアドバイスを探してください。これに関する単一の信頼できる参照を推奨することはできません。
私のほとんどの場合、それは、通常はプラグインでの開発サーバーと運用サーバー間の改行スキームの変更のために導入された_?>
_タグを閉じた後の空白が原因でした。
また、Wordpress=に デバッグモード を挿入するか、サイトの_/wp-admin/admin.php
_ファイルの最初の行にerror_reporting(E_ALL);
を追加して、これらはヒントを与えてくれます。
私は個人的に XCloner plugin を使用してWin開発マシンと* nixプロダクションサーバー間で転送を行うことで、これらの(タッチウッド)を回避することができました。
Wp-content/themes/active-theme-folder/function.phpを編集し、このコードを直前に追加します:
<?php
define('WP_HOME','http://www.myurl.com'); //<-- NO TRAILING /
define('WP_SITEURL','http://www.myurl.com');
多くの場合、ファイルを別のサーバーに移行するとき、この問題はPHPファイルのいずれかのマイナーエラーが原因で発生します。エラーは終了後の追加文字ですか?> PHPタグこれらは単なる空白または戻り値である場合がありますが、多くの場合、死の白い画面の原因になる可能性があります。
主な原因は、WordPressテーマ内のfunctions.phpファイルです。プレーンテキストファイルエディター(ほとんどのホスティングアカウントでよく使用されます)で確認し、終了タグ。
このファイルにない場合は、エラーレポートを使用して原因ファイルを特定し、プラグインまたはテーマの別のファイルにある可能性があります。
Jon Surrellによるエラー表示の有効化で述べたように、wp-config.phpで次の設定をtrueに変更します。
define('WP_DEBUG', true);
Wp-config.phpファイルで、行停止編集行のすぐ上に次の行を追加します。
define('RELOCATE',true);
/* That's all, stop editing! Happy blogging. */
次に、ログインURLに移動し、ページを更新してログインします。重要:ログインできる場合は、先に進む前にRELOCATE行を削除してください。次に移動します。
Settings > General
Wordpress URLとサイトアドレスを正しい場所に設定します。
WordPress Address (URL): http://example.com/wordpress
Site Address (URL): http://example.com/myblog
「保存」を押します。
wp-config.php
ファイルに次の行を追加します。
define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
define('WP_SITEURL', WP_HOME . '/');
私はこの答えをほつれに加えています。希望として、それは他の誰かを助けるかもしれません。上記のすべてのアドバイスに従わなかった。実際にPHPファイルをハックして、管理者にパネルへのアクセスを強制しました。パネルを介して、管理者アカウントに管理者ロールが割り当てられていないことがわかりました。
これは「wp-includes/capabilities.php」への私のハックです
function current_user_can( $capability ) {
$current_user = wp_get_current_user();
if ( empty( $current_user ) ) {
return false;
}
return true; // HACK to get superuser power to any logged in user
$args = array_slice( func_get_args(), 1 );
$args = array_merge( array( $capability ), $args );
return call_user_func_array( array( $current_user, 'has_cap' ), $args );
}
これにより、管理者パネルが表示され、 https://example.com/wp-admin/users.php にアクセスでき、ロールを割り当てることができました。次に、「管理者」が割り当てられたので、すべてのユーザーに正しい権限が付与されていることを確認するために、capabilities.phpをアンハッキングしました。
ローカルサーバーに移行した後も同じ問題が発生しました。データベースに多くのハードコードされたファイルパスがあるため、最初の試行は失敗しました。それで、私は再試行し、ライブサーバーと同じパスと同じホスト名とデータベース名を作成するように注意しました。これでウェブサイトは良好になりましたが、wp-loginは白い画面を表示しました。
Wp-debugを使用すると、config.phpに完全なファイルパスがハードコードされているwp-super-cacheプラグインが原因であることがわかりました。このパスを完全なローカルパスに変更するとうまくいきませんでした。
これらは私が通常従うステップです。
wp_options
テーブルを更新して、サイトのURLとホームのURLを更新します。wp-login.php
をURLとして使用して管理者にログインできるはずです。.htaccess
ファイルが自動的に更新されることです。書き込み許可がない場合は、ftpでファイルをコピーして編集できることを示します。velvet urls
という名前のプラグインを使用して、すべてのURLを安全に簡単に更新できます。長年使用しています。データベース内の他のすべてのURLを更新します。すべてが正常に実行されれば、これらの手順はすべて十分です。
空白のページなどが表示された場合は、エラー報告をオンにして、wp構成ファイル自体からログを書き込むことができます。これらのいくつかを試してデバッグすることができます。
コアファイルをほとんど編集しない限り、問題は解決します。他の可能性は、移行中に注意する必要がある非常に重要なphpまたはmysqlのバージョンの不一致です。これが誰かを助けることを願っています。