swcc.php-fpm
php-fpm
この役割は、php-fpm インタープリターのインストールと設定を行います。
注意
RedHat のサポートはバージョン 2.0.0 で終了しました。 プルリクエストは歓迎です。
要件
この役割は、Ansible 1.4 以上を必要とし、テストされたプラットフォームはメタデータファイルにリストされています。
役割変数
この役割では以下の変数を使用します:
- php_fpm_version: インストールする PHP のバージョン。 利用可能: 5.5, 5.6, 7.0, 7.1。デフォルト: 5.6。注意: PHP 5.5 は 使用できますが、サポートが終了しているため避けるべきです!
- php_fpm_pools: php-fpm のプールのリストで、各プールは 名前エントリ(ファイル名に使用)を持ち、その他のエントリはプール ディレクティブです(http://php.net/manual/en/install.fpm.configuration.php参照)。1レベルの辞書のネストがサポートされており、環境 変数や PHP 設定を辞書として渡すことができます。
- php_fpm_pool_defaults: すべての php-fpm プールに使用するデフォルトディレクティブのリスト (http://php.net/manual/en/install.fpm.configuration.php参照)。
- php_fpm_apt_packages:
apt
モジュールによってインストールされる パッケージのリスト、デフォルトは[php5-fpm]
です。 - php_fpm_yum_packages:
yum
モジュールによってインストールされる パッケージのリスト、デフォルトは[php-fpm]
です。 - php_fpm_ini: php-fpm の php.ini のカスタマイズとしてオプションのリスト、
各オプションは次の構造を持つハッシュです:
- option: オプションの名前。
- value: オプションに関連付けられる文字列値。
- section: INI ファイル内のセクション名。
- php_fpm_config: php-fpm の設定ファイルのカスタマイズとしてオプションのリスト。
- php_fpm_default_pool:
- delete: デフォルトプールを削除するには
True
に設定します。 - name: デフォルトプール設定ファイルのファイル名。
- delete: デフォルトプールを削除するには
- php_fpm_apt_latest:
yes
に設定すると、パッケージを最新バージョンに更新します。
設定例
- role: php-fpm
php_fpm_pool_defaults:
pm: dynamic
pm.max_children: 5
pm.start_servers: 2
pm.min_spare_servers: 1
pm.max_spare_servers: 3
php_fpm_pools:
- name: foo
user: www-data
group: www-data
listen: 8000
chdir: /
- name: bar
user: www-data
group: www-data
listen: 8001
env:
PATH: "/usr/local/bin:/usr/bin:/bin"
TMPDIR: "/tmp"
php_admin_value:
sendmail_path: "/usr/sbin/sendmail -t -i -f [email protected]"
error_log = "/var/log/fpm-bar.www.log"
php_fpm_ini:
# PHP セクションのディレクティブ
- option: "engine"
section: "PHP"
value: "1"
- option: "error_reporting"
section: "PHP"
value: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
- option: "date.timezone"
section: "PHP"
value: "Europe/Berlin"
# SOAP セクションのディレクティブ
- option: "soap.wsdl_cache_dir"
section: "soap"
value: "/tmp"
# Pdo_mysql セクションのディレクティブ
- option: "pdo_mysql.cache_size"
section: "Pdo_mysql"
value: "2000"
php_fpm_config:
- option: "log_level"
section: "global"
value: "notice"
- option: "syslog.facility"
section: "global"
value: "daemon"
使用例
---
# file: task.yml
- hosts: all
roles:
- nbz4live.php-fpm
- {
role: nbz4live.php-fpm,
php_fpm_pools:[
{name: foo, user: www-data, group: www-data, listen: 8000, chdir: /}
]
}
- role: php-fpm
php_fpm_pools:
- name: bar
user: www-data
group: www-data
listen: 9000
chdir: /
注意
プロセスマネージャーの設定(pm, pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers)は、デフォルトではテスト用です。この値は、使用するサーバーリソース(ハードウェア、プール数、サーバー上のその他のソフトウェア)に基づいて常に計算されるべきです。 このディレクティブに関する詳細はドキュメントをお読みいただくか、このガイドに従って、場合に応じて最適な値を計算してください。
ライセンス
BSD
著者情報
- Sergey Fayngold sergey@faynhost.com
- Pierre Buyle buyle@floedesign.ca