「エラー対処法」タグアーカイブ

PHPアップデート後にWordPressが真っ白に?致命的エラーから復旧する方法

WordPressでサイトを運営していると、サーバー側でPHPのバージョンを更新した際に「致命的エラー(Fatal Error)」が発生し、サイトが真っ白になって表示されなくなることがあります。
これは古いテーマやプラグインが新しいPHPに対応していないことが主な原因です。

この記事では、PHP更新後にWordPressが表示されなくなったときの原因と復旧手順をわかりやすく解説します。


よくある原因

  • プラグインの非互換性
    古いプラグインがPHPの新しい構文に対応しておらず、エラーを引き起こす。

  • テーマのコードが古い
    独自テーマや更新が止まっているテーマが最新PHPで動作しない。

  • キャッシュや.htaccessの問題
    PHP切替直後にキャッシュが残っていたり、設定ファイルが古い記述を持っている場合。


復旧のためのステップ

1. エラーメッセージを確認する

  • サイトは真っ白でも、サーバーログ(error_log)やWordPressのデバッグモードで原因を確認できます。

  • wp-config.php に以下を追加するとエラー内容が記録されます。

  • この設定を有効にすると、wp-content/debug.log というファイルが自動的に作成され、エラー内容が追記されていきます。

  • サイト訪問者にエラーメッセージを見せずに、管理者だけがエラーを確認できるので安心です。

2. プラグインを停止する

  • FTPやファイルマネージャーで wp-content/plugins フォルダを開き、問題のプラグインを一時的にリネーム(例: simple-lightboxsimple-lightbox_old)。

  • これでサイトが表示されれば、そのプラグインが原因です。

3. テーマを切り替える

  • wp-content/themes 内の現在のテーマをリネームすると、自動的にWordPressのデフォルトテーマ(Twenty Twenty系など)が有効化されます。

  • これで表示されれば、使用中のテーマが原因です。

4. PHPバージョンを一時的に戻す

  • サーバーの管理画面からPHPを前のバージョンに戻せば、とりあえずサイトは表示されます。

  • その後、プラグインやテーマを更新して対応を進めましょう。

5. 最新バージョンへの対応

  • プラグイン・テーマの更新を行いましょう。開発が止まっている場合は代替のプラグインを探すのが現実的です。

  • サイト全体のバックアップを取り、再度PHPを新しいバージョンに切り替えます。


再発防止のポイント

  • PHP更新前にステージング環境やテスト環境で動作確認する。

  • 定期的にテーマ・プラグインを更新しておく。

  • 更新が止まっているプラグインはできるだけ使用しない。


まとめ

PHPアップデート後にWordPressが「真っ白」になった場合、慌てずに以下の流れで対応しましょう。

  1. エラーログやデバッグモードで原因を確認

  2. プラグインやテーマを無効化して切り分け

  3. 必要に応じてPHPを一時的に戻す

  4. プラグイン・テーマを更新して再度挑戦

この手順を踏めば、多くのケースで復旧が可能です。
「真っ白画面」は焦りますが、落ち着いて対応すれば必ず解決できます。

Oracleユーザー作成時にORA-00959エラー発生!指定された表領域が存在しない場合の対処法

はじめに

Oracle Databaseでユーザーを作成する際に、以下のようなエラーが発生することがあります。

ORA-00959: tablespace 'USERS' does not exist

このエラーは、指定した表領域(tablespace)が存在しない場合に発生します。本記事では、原因の解説と実際の解決方法をまとめます。


エラーの原因

ORA-00959「指定した表領域が存在しない」 ことを意味します。

例えば以下のSQLを実行した場合を考えます。

このとき、環境に USERS という表領域が作成されていなければ、ORA-00959 が返されます。

よくある原因

  • インストール時にデフォルトの USERS 表領域が作成されなかった

  • 他の管理者が不要と判断し削除してしまった

  • マルチテナント環境(CDB/PDB)で表領域の有無が異なる


対処法

1. 既存の表領域を確認する

まずは現在存在している表領域を確認します。

 
SELECT tablespace_name FROM dba_tablespaces;

ここで USERS が表示されなければ、エラーの通り存在していないことが確認できます。


2. 表領域を作成する

存在しない場合は新たに表領域を作成します。

 
CREATE TABLESPACE USERS DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

※ データファイルのパスは環境に応じて修正してください。


3. 既存の表領域を指定してユーザーを作成する

新しく表領域を作成せず、既存の表領域を利用する方法もあります。

 
CREATE USER testuser IDENTIFIED BY password DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP;

ただし、SYSTEM を業務用に利用するのは推奨されないため、専用の表領域を作成する方がベストです。


4. ユーザー作成後の権限付与

ユーザー作成が成功したら、最低限以下の権限を付与します。

 
GRANT CREATE SESSION TO testuser; GRANT CREATE TABLE TO testuser;

必要に応じて他の権限も付与してください。


まとめ

  • ORA-00959「指定した表領域が存在しない」 ことが原因

  • DBA_TABLESPACES ビューで表領域の存在を確認

  • 必要に応じて新規作成、または既存の表領域を指定する

表領域の存在を確認してからユーザー作成を行うことで、エラーを回避できます。

❓よくある質問(FAQ)

Q1. ORA-00959エラーはなぜ発生するのですか?

A. 指定した表領域(tablespace)が存在しない場合に発生します。ユーザー作成時の DEFAULT TABLESPACE に指定した名前が、データベース内に存在しないことが原因です。


Q2. 表領域が存在するかどうかを確認するには?

A. 以下のSQLで確認できます。

 
SELECT tablespace_name FROM dba_tablespaces;

ここに指定した名前が含まれていなければ、新しく表領域を作成する必要があります。


Q3. SYSTEM表領域を代わりに使っても良いですか?

A. 技術的には可能ですが推奨されません。SYSTEM はOracle内部で利用される表領域であり、業務用のオブジェクトを置くとパフォーマンスや管理に悪影響が出る可能性があります。専用の表領域を作成しましょう。


Q4. 表領域を作成するときのファイルパスはどう決めればいいですか?

A. 通常はOracleデータベースのデータファイル格納ディレクトリ(例:/u01/app/oracle/oradata/ORCL/)に置きます。環境ごとの構成ポリシーに従い、十分な容量のあるディスクを指定してください。


Q5. マルチテナント環境(CDB/PDB)でも同じ対応ですか?

A. はい。ただしCDB直下とPDB配下で表領域の有無が異なることがあります。ユーザーを作成するPDBに接続し直し、そのPDB内で表領域を確認・作成してください。