前提
- AWSのEC2インスタンスで稼働しているお手製HTMLホームページを、Wordpressに移行した後に発生したエラーについて記載します。
- Wordpressインストールするまでの流れを解説した前回の記事はこちら:WordpressをEC2インスタンスにインストールする方法(Apacheのバーチャルホスト設定方法・Wordpress用DB作成方法も解説)
テーマ導入時のファイルアップロード上限値エラー
- 有料テーマをWordpressにインストールしようとZIPフォルダをアップロードすると以下エラーが表示されました。
The uploaded file exceeds the upload_max_filesize directive in php.ini.
- 調査したところ
php.ini
でアップロードファイル上限値のデフォルトが2MBになっており、ここを調整すれば解決できることのこと。 - EC2インスタンスに接続し、以下で
php.ini
を確認します。
php --ini
-
Loaded Configuration File
があるディレクトリに移動します。 - 自分の環境では、
/etc/php/7.4/cli/php.ini
だったので、こちらへ移動しsudo vi php.ini
で以下を修正。
* upload_max_filesize:1ファイルあたりのアップロード最大サイズ
* 20Mとしました
* post_max_size:1回のアップロードの合計最大サイズ
* 40Mとしました
* max_execution_time:最大実行時間
* 300としました
memory_limitはupload_max_filesizeより小さい値にしないようにします。
memory_limit >= post_max_size >= upload_max_filesize となるように。
引用元記事:WordPressにアップロード可能なファイルサイズを大きくする
- memory_limitはデフォルトで-1(無制限)となっていたのでこのままにしました。
-
sudo service apache2 restart
でApacheを再起動します。- php-fpmを使用している場合はこちらの再起動も必要らしいです。
- Wordpress画面にアクセス...しかしまだファイル上限値エラーになってしまう。再びググり、記事「WordPressでアップロードサイズの上限を変更する方法まとめ」を見たところ、「ファイルのアップロード上限サイズが変わらない場合、.htaccessファイルの編集を行います」とあったので、Wordpressディレクトリのある
/var/www/html/wpsample_homepage
で.htaccess
を作成して以下を記載。
.htaccess
php_value upload_max_filesize 20M
php_value post_max_size 40M
php_value max_execution_time 300
php_value max_input_time 300
- Wordpressのメディアアップロード画面にいくと最大がちゃんと「20MB」と表示されていることを確認!
- 上記実施後に再びアップロードすると、エラー内容が以下のように変わりました。
Unable to create directory Is its parent directory writable by the server?
- 以下記事にディレクトリへの許可権限が問題とあったので、以下コマンドを実行。
chmod 755 wp-content
sudo chmod 755 wp-content
sudo service apache2 restart
- 上記では変わらなかったので、許可を777に変更して実行。
chmod 777 wp-content
sudo chmod 777 wp-content
chmod 777 wp-content
sudo chmod 777 wp-content
- 上記エラーが消えテーマのインストール画面へ。しかしFTP情報を入力してくださいと表示されます。FTPは設定しないので何の問題かと調べたところ、wordpress配下の所有者とgroupをapache所有としていなかったからだと判明。
- apache所有者は、ubuntuではwww-dataらしい。ということで、パーミッションを変更!
sudo chown -R www-data:www-data /var/www/html/wptest_homepage
-
上記実施したところ、FTP画面が消え、無事にインストールが完了しました。
-
念の為、Wordpress管理画面→ツール→サイトヘルスをチェックすると「良好」と確認。めでたしめでたし。