bodsch.php
Ansible Role: php
Ansibleロールは、さまざまなシステムにfpm-phpをインストールします。
geerlingguyにインスパイアされています。
php_version
変数に基づいて利用可能なPHPバージョンを検出します。
PHPのバージョン7および8をサポートします。該当するバージョンが利用可能な限り。
ArchLinuxでは、PHP 7パッケージがリポジトリから削除されました!
要件と依存関係
Ansibleコレクション
ansible-galaxy collection install bodsch.core
または
ansible-galaxy collection install --requirements-file collections.yml
対応オペレーティングシステム
テスト済み:
- ArchLinux(PHP 8のみ!)
- Debianベース
- Debian 12
- Ubuntu 22.04
RedHatベースのシステムは公式にサポートされていません!動作するかもしれませんが、必ずしもそうであるとは限りません。
使い方
# バージョンを選択してください!
php_version: "8"
php_packages_state: present
php_fpm_log_directory: /var/log/php-fpm
php_fpm_tmp_upload_directory: /tmp/php-fpm
php_fpm_socket_directory: /run/php
php_fpm_log_level: notice
php_enable_php_fpm: true
php_fpm_listen: "127.0.0.1:9000"
php_fpm_listen_allowed_clients: "127.0.0.1"
php_fpm_pm:
max_children: 50
start_servers: 5
spare_servers:
min: 5
max: 5
php_use_managed_ini: true
php_expose_php: "On"
php_memory_limit: "256M"
php_max_execution_time: "60"
php_max_input_time: "60"
php_max_input_vars: "1000"
php_realpath_cache_size: "32K"
php_file_uploads: "On"
php_upload_max_filesize: "64M"
php_max_file_uploads: "20"
php_post_max_size: "32M"
php_date_timezone: "Europe/Berlin"
php_allow_url_fopen: "On"
php_sendmail_path: "/usr/sbin/sendmail -t -i"
php_output_buffering: "4096"
php_short_open_tag: "Off"
php_disable_functions: []
php_session_cookie_lifetime: 0
php_session_gc_probability: 1
php_session_gc_divisor: 1000
php_session_gc_maxlifetime: 1440
php_session_save_handler: files
php_session_save_path: ''
php_session_cache_expire: 180
php_error_reporting: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
php_display_errors: "Off"
php_display_startup_errors: "Off"
php_packages: []
php_fpm_default_pool:
delete: false
name: www.conf
php_fpm_pools: []
# phpモジュール
php_modules: []
カスタムパッケージ
PHPパッケージを追加インストールする場合、php_packages
にリストを指定できます。
例えば:
php_packages:
- php-ldap
パッケージにはバージョン情報は必要ありません。RedHatやRemisのパッケージには必要ですが、この役割はパッケージ名が有効であることを確認します。
例:php-ldap
はphp73-php-ldap
になります。
phpプール
php_fpm_pools:
- name: worker-01
user: "{{ php_fpm_pool_user }}"
group: "{{ php_fpm_pool_group }}"
listen.owner: "{{ php_fpm_pool_user }}"
listen.group: "{{ php_fpm_pool_group }}"
listen: "{{ php_fpm_socket_directory }}/$pool.sock"
pm: ondemand
pm.max_children: 10
pm.start_servers: 4
pm.min_spare_servers: 2
pm.max_spare_servers: 6
pm.status_path: /status
- name: worker-02
user: "{{ php_fpm_pool_user }}"
group: "{{ php_fpm_pool_group }}"
listen.owner: "{{ php_fpm_pool_user }}"
listen.group: "{{ php_fpm_pool_group }}"
listen: "{{ php_fpm_socket_directory }}/$pool.sock"
pm: dynamic
pm.max_children: 10
pm.start_servers: 4
pm.min_spare_servers: 2
pm.max_spare_servers: 6
pm.status_path: /status
ping.path: /ping
ping.response: pong
access.log: "{{ php_fpm_log_directory }}/$pool_access.log"
access.format: "%R - %n - %{HTTP_HOST}e - %u %t \"%m %r [%Q%q]\" %s %f %{mili}d %{kilo}M %C%%"
chdir: /
env:
PATH: "/usr/local/bin:/usr/bin:/bin"
TMPDIR: "{{ php_fpm_tmp_upload_directory }}"
php_admin_value:
date.timezone: "Europe/Berlin"
log_errors: 'on'
max_execution_time: 300
memory_limit: 512M
upload_max_filesize: 32M
phpモジュール
php_modules:
# gd
- name: gd
enabled: true
priority: 20
content: |
extension=gd
# OpCache設定
- name: opcache
enabled: true
priority: 10
content: |
zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.max_wasted_percentage=5
opcache.validate_timestamps=1
opcache.revalidate_path=0
opcache.revalidate_freq=1
opcache.max_file_size=0
# PDO mysql
- name: pdo_mysql
enabled: true
priority: 20
content: |
extension=pdo_mysql
ドキュメントでは、php.iniからコピーしたモジュール設定が見つかります。
貢献
貢献をお読みください。
開発、ブランチ(Gitタグ)
master
ブランチは、私の作業馬で、最新の機能が含まれていますが、完全に壊れているかもしれません!
安定したものを使用したい場合は、タグ付きバージョンをご利用ください!
作者
- ボド・シュルツ
ライセンス
無料ソフトウェア、やったね!
インストール
ansible-galaxy install bodsch.php
ライセンス
apache-2.0
ダウンロード
2.2k
所有者
ex-developer (c, c++, php),
ex-system administrator / engineer,
keep-it-simple,
monitoring,
automation,
system architect