Drupal

Drupalでファイルをアップロードするときに「最大許容サイズ2MBを超えるため...」エラー発生時の対処方法

More than 1 year has passed since last update.

やりたいこと

新しいテーマをインストール | Drupal 2017-11-03 12-07-36.png

Drupalで(テーマ)ファイルのアップロードをしたい。のですが、ファイルを指定してインストールを押すとエラーとなります。

新しいテーマをインストール | Drupal 2017-11-03 10-45-04.png

ファイルサイズが大きいと怒られました。
そんな事言われずにもっと大きいファイルのアップロードをしたいです。

環境

  • Ubuntu 17.04
  • Drupal 8.4.0

解決方法

  • php.iniの設定を変更した
  • .htaccessの設定を変更した
  • ftpサーバをインストールした

手順

php.iniの設定を変更

php.iniの場所を確認します。

msrx9@ubuntu:~$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini

私の環境だと /etc/php/7.0/cli/php.ini のようです。
ではファイルのアップロード許容サイズを50Mまで増やします。
修正箇所は upload_max_filesizepost_max_size の二つです。

php.iniの編集内容
--- php.ini.org 2017-08-09 07:03:30.000000000 +0900
+++ php.ini 2017-11-03 10:29:22.939856273 +0900
@@ -653,7 +653,7 @@
 ; Its value may be 0 to disable the limit. It is ignored if POST data reading
 ; is disabled through enable_post_data_reading.
 ; http://php.net/post-max-size
-post_max_size = 8M
+post_max_size = 50M

 ; Automatically add files before PHP document.
 ; http://php.net/auto-prepend-file
@@ -806,7 +806,7 @@

 ; Maximum allowed size for uploaded files.
 ; http://php.net/upload-max-filesize
-upload_max_filesize = 2M
+upload_max_filesize = 50M

 ; Maximum number of files that can be uploaded via a single request
 max_file_uploads = 20

apache2を再起動します。

sudo /etc/init.d/apache2 restart

さぁ、リトライ。

あれー。 php -i でphpの設定を見るとちゃんとファイルサイズ制限が50Mになっているのに問題が解消しない。全く同じエラーメッセージが表示されます。

.htaccessを変更する

こっちも修正が必要なのかな。。
設定を二行追加します。

.htaccess編集
msrx9@ubuntu:/var/www/html/d8$ diff .htaccess.org .htaccess
189a190,192
>
> php_value upload_max_filesize 50M
> php_value post_max_filesize 50M

設定反映のためapache2を再起動します。

sudo /etc/init.d/apache2 restart

あ、無事に「アップロードの最大許容サイズ2MBを越えるため... 」のエラーは解消できました。

更新マネージャー | Drupal 2017-11-03 12-01-42.png

が、FTP関連でエラーが出ています。

FTPサーバインストール

FTP接続を試してみます。

mba-no-MacBook-Air:~ mba$ ftp ubuntu.local
Trying 192.168.56.101...
ftp: Can't connect to `192.168.56.101': Connection refused

あぁ、そういえばFTPサーバを立ててないです。ので、vsftpdをインストールします。

sudo apt-get install vsftpd

インストールが終わったら/etc/vsftpd.confを編集します。
write_enables=YES のコメントアウトを外しておかないと、FTPでログインできてもputの時にpermission deniedと怒れられます。

msrx9@ubuntu:/etc$ diff -u vsftpd.conf.org vsftpd.conf
--- vsftpd.conf.org 2017-11-03 11:19:32.544017000 +0900
+++ vsftpd.conf 2017-11-03 11:20:05.964017000 +0900
@@ -28,7 +28,7 @@
 local_enable=YES
 #
 # Uncomment this to enable any form of FTP write command.
-#write_enable=YES
+write_enable=YES
 #
 # Default umask for local users is 077. You may wish to change this to 022,
 # if your users expect that (022 is used by most other ftpd's)

設定反映のため、vsftpdを再起動させます。

sudo /etc/init.d/vsftpd restart

無事、これでファイルのアップロードができました。

参考