Chef を用いたサーバ設定の変更例 Amimoto AMIでは、サーバの設定を chef で管理をしています。この設定ファイルを変更し、プロセスの再起動・設定ファイルの再読み込みをさせることで、サーバの設定変更を柔軟かつ短時間に行えます。ここではその変更方法を解説します。
Amimoto AMIでは、サーバの設定を chef で管理をしています。そのため、設定ファイルを変更し、プロセスの再起動・設定ファイルの再読み込みをさせることで、サーバの設定変更を柔軟かつ短時間に行えます。
なお、設定ファイルの変更は root 権限で行ってください。root での作業方法は「root ユーザとして作業する」をご参照ください。
変更可能な値
Webサーバである Nginx のclient_max_body_size、 MySQLの max_allowed_packet 、PHP の memory_limit など、lw1-amimoto/attributes at 2016.01 · Launch-with-1-Click/lw1-amimoto · GitHub にて定義されている値は、すべて変更が可能です。
編集するファイル
/opt/local/amimoto.json
編集後に実行するコマンド
設定ファイルの編集後に、1と2の両方を実行してください
1 プロビジョニング
# /opt/local/provision
2. サービスの再起動
# service monit stop
# service nginx restart
# service php-fpm restart
# service mysql restart
# service monit start
代表的な値の設定変更方法
ここでは PHP のメモリ上限 (memory_limit)、アップロード可能なファイルサイズの上限 (upload_max_filesize )、 MySQL の最大バッファサイズ・クエリーサイズ (max_allowed_packet ) の変更方法をご紹介します。
PHP の memory_limit
手順 (PHP の memory_limit を 512MB へ変更する場合)
- php の config内の"user": "nginx" 前の行へ "memory_limit": "512M", を追記してください
- 「編集後に実行するコマンド 」を実行してください
- その後、<?php phpinfo(); ?> などを記述したファイルを /var/www/vhosts/YOUR-DOMAIN/phpinfo.php と設置してブラウザからアクセスし、変更内容が正しく反映されたかを確認してください
- 確認後、設置した phpinfo.php ファイルは削除をしてください
設定サンプル
{
"nginx": {
"config": {
"user": "nginx"
}
},
"php": {
"config": {
"memory_limit": "512M",
"user": "nginx"
}
},
"run_list": [
"recipe[amimoto]"
]
}
PHP の upload_max_filesize
手順 (PHP の upload_max_filesize を 30MB へ変更する場合)
- nginx の config へ "client_max_body_size": "30M", を追記してください
- php の config へ"upload_max_filesize": "30M", を追記してください
- 「編集後に実行するコマンド 」を実行してください
- <?php phpinfo(); ?> などを記述したファイルを /var/www/vhosts/YOUR-DOMAIN/phpinfo.php と設置してブラウザからアクセスし、変更内容が正しく反映されたかを確認してください
- 確認後、設置した phpinfo.php ファイルは削除してください
設定サンプル
{
"nginx": {
"config": {
"client_max_body_size": "30M",
"user": "nginx"
}
},
"php": {
"config": {
"upload_max_filesize": "30M",
"user": "nginx"
}
},
"run_list": [
"recipe[amimoto]"
]
}
MySQL の max_allowed_packet
手順 (MySQL の max_allowed_packet を16 MB へ変更する場合)
- mysql の config へ "max_allowed_packet": "16M", を追記してください。mysql のセクションがない場合は以下の設定サンプルをご参考いただき、追記してください。
- 「編集後に実行するコマンド 」を実行してください。
- 次のコマンドを実行して、変更が反映されているかをご確認ください。
mysql> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+
1 row in set (0.03 sec)
mysql> exit
Bye
設定サンプル
{
"nginx": {
"config": {
"user": "nginx"
}
},
"php": {
"config": {
"user": "nginx"
}
},
"mysql": {
"config": {
"max_allowed_packet": "16M"
}
},
"run_list": [
"recipe[amimoto]"
]
}