発生したエラー
アップロードされるコンテンツ (=$request->server('CONTENT_LENGTH')
)が、
phpのpost_max_size
を超えたときに発生するException
なので、phpの設定を変更する
sudo vi /etc/php.in
# 下記パラメータの値を変更
post_max_size = 80M
upload_max_filesize = 80M
memory_limit = -1
# 再起動
sudo service httpd restart
# 上記でも反映されない場合はこちらも実行
sudo service php-fpm restart
Packets out of order. が出た場合
続いて、元のエラーは解消されたけど、Packets out of order. Expected 2 received 1. Packet size=60
が出るようになった・・
調べてみると、config/databases.php
のoptionsにPDO::ATTR_EMULATE_PREPARES => true
を足すといいよとあったので足してみた
- config/databases.php
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
// ⭐️ ここを更新
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
PDO::ATTR_EMULATE_PREPARES => true,
]) : [PDO::ATTR_EMULATE_PREPARES => true],
],
しかし結果は変わらず・・
mysqlのパケット容量を上げることで対応した
- my.cnf
max_allowed_packet = 16M
大きい画像をアップロードするとき、
Illuminate\Http\Exceptions\PostTooLargeException
が出たのでそれの対策メモ