WordPressで新しいテーマ(外観)をインストール時に、「アップロードされたファイルがphp.iniのupload_max_filesizeディレクティブを越えています」「辿ったリンクは期限が切れています」「このサイトで重大なエラーが発生しました」などのエラーが発生したので、その時の対処法について説明しています。
※ 本ページはプロモーションが含まれています。
WordPress(ワードプレス)の外観(テーマ)設定で、新しいテーマを導入しようとして新規追加のテーマをアップロードしたら、下の画像のような「アップロードされたファイルが php.ini の upload_max_filesize ディレクティブを越えています。」というエラーメッセージが発生してできませんでした。
また、別のテーマをアップロードしたら、「辿ったリンクは期限が切れています。」というエラーが出る事もありました。
あと、新しいテーマをアップロードできた後にWordPress本体のページを確認したら、「このサイトで重大なエラーが発生しました。」というエラーメッセージが出て、WordPressのページ自体が見れなくなってしまいました。
ここでは、この3つのエラーの解決方法について説明しています。
■環境は以下の通りです。
OS:CentOS Linux 7.9
WordPress:5.9
ウェブサーバ:Apache2.4
PHP:7.4
MariaDB:10.6
上記環境は、自分のPCのVagrant上で各ミドルウェアをインストールしてWordPressの動作環境を構築しました。その時の環境構築については別ページで書いていますので、良ければ参考にしてください。
WordPress環境構築サイトマップ
「辿ったリンクは期限が切れています。」というエラーは、さくらのレンタルサーバ環境のWordPressでも発生する事がありました。
まず、WordPressで新しい外観(テーマ)を追加しようとして新規テーマファイルをアップロードした時に、「アップロードされたファイルが php.ini の upload_max_filesize ディレクティブを越えています。」というエラーが出た問題についてです。
これはPHPのアップロードしたファイルサイズの上限設定の問題で、上限サイズ以上のファイルをアップロードしようとした時に起こります。ですので、php.iniファイルでアップロードするファイルサイズの上限を変更すれば解決できます。
php.iniファイルに"upload_max_filesize"という項目があり、この項目が上限のファイルサイズを設定しているのでこの値を変更します。私の環境では2Mになっていたので、とりあえず20Mに変更しました(サイズは各自で)。
php.iniファイルのパス(場所)は各自の環境によって違うと思いますが、PHPのphpinfo()関数や"php --ini"コマンドで確認できます。
$ php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
・変更前
upload_max_filesize = 2M
・変更後
upload_max_filesize = 20M
変更したら、Apacheをリロードして変更を適用します。
$ sudo systemctl reload httpd
これで再度テーマファイルをアップロードしたら、問題なくアップロードしてインストールできました!
次に、別の新規テーマファイルをアップロードした時に、また別のエラーメッセージ「辿ったリンクは期限が切れています。」というエラーが出た問題についてです。
これもPHPのアップロードしたファイルサイズの上限設定の問題でした。ただ今度はphp.iniファイルの"upload_max_filesize"ではなく、"post_max_size"という項目値でした。
ですので、post_max_sizeの値を変更しました(サイズ値は各自で)。
・変更前
post_max_size = 8M
・変更後
post_max_size = 25M
変更後にApacheをリロードします。
$ sudo systemctl reload httpd
これで再度問題のテーマファイルをアップロードしたら、アップロードできるようになりました!
php.iniの"upload_max_filesize"と"post_max_size"の違いが気になって調べてみたのですが、公式のドキュメンテーションによると、"upload_max_filesize"はアップロードされるファイルの最大サイズで、"post_max_size"はPOSTデータに許可される最大サイズという説明でした。
ただ注意点として、post_max_sizeの値はupload_max_filesizeより大きく設定する必要があると書いてありました。また、"memory_limit"をpost_max_sizeよりも大きくする必要があると書いてありました。memory_limitの値を確認してみたらデフォルトで128Mだったので、これは問題なさそうです。
この「辿ったリンクは期限が切れています。」というエラーは、さくらのレンタルサーバのWordPress環境でも発生しました。さくらのレンタルサーバでは、php.iniファイルの編集はさくらの管理画面からできるので、そこで"upload_max_filesize"と"post_max_size"を修正すればApacheを再起動しなくても(できないので)エラーは解決できます。
今度は新しいテーマファイルをアップロードできた後の話で、アップロードして新しいテーマを有効にした後にWordPress本体のページを見て確認しようとしたら、「このサイトで重大なエラーが発生しました。」というエラーメッセージが出て、WordPress自体が全く見れなくなりました。
とりあえずこれだとエラーの内容が分からないので、まずはWordPressの設定ファイルの1つ"wp-config.php"を少し編集して、エラーログを出力するようにします。
wp-config.phpファイルの場所は、WordPressのパッケージの直下にあります。どこにWordPressのパッケージを設置したかは各自の環境によって違うと思います。
wp-config.phpにWP_DEBUGという設定値がありますので、これをfalseからtrueへ変更します。
・変更前
define( 'WP_DEBUG', false );
・変更後
define( 'WP_DEBUG', true );
変更後にWordPress本体のページを確認したら、「Fatal error: Uncaught Error: Call to undefined function mb_language() in 〜」というエラーログが表示されていました。
mb_language()関数がなくて使えないというエラーです。私の環境ではまだ"php-mbstring"をインストールしていなかったので、yumでphp-mbstringをインストールしてmb_language() 関数を使えるようにします。
(例えば、Remiリポジトリのremi-php74を指定する場合)
$ sudo yum --enablerepo=remi-php74 install php-mbstring
リポジトリを指定する必要がない環境の場合。
$ sudo yum install php-mbstring
php-mbstringのインストールが完了したら、Apacheをリロードします。
$ sudo systemctl reload httpd
これで再度WordPressを確認したら、新しいテーマが適用されたページが問題なく見れるようになっていました!
あと問題解決が終わったら、エラーログを確認するために変更したwp-config.phpファイルのWP_DEBUGの値をfalseに戻しておきましょう。
[広告] WordPressのセキュリティ本の紹介
WordPress運営者向けのセキュリティ本です。WordPressのセキュリティ脆弱性・基本知識についてや、WordPressのセキュリティ対策の設定やセキュリティ対策のプラグインなどが紹介されています。
WordPressのセキュリティが気になっていたり、基本的な事を抑えておきたい、セキュリティについて自信がない入門者・初心者向けの1冊です。
さくらのレンタルサーバで独自ドメインでWordPressを始める
Cocoon設定の各設定タブを押しても表示されない問題と解決方法