HanXHX.php
Ansible PHP (+FPM) ロール for Debian / Ubuntu / FreeBSD
Debian / Ubuntu / FreeBSD に PHP をインストールします。PHP-FPM、APCu、Opcache、Xdebug を管理します。
管理対象のOS / バージョン
すべての Debian バージョンで、Sury の APT リポジトリ を使用してすべての PHP バージョンをインストールできます。
その他のケース:
| OS | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP >= 7.4 |
|---|---|---|---|---|---|
| Ubuntu Bionic (18.04) | :x: | :x: | :heavy_check_mark: | :x: | :x: |
| FreeBSD 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | テストが必要... |
| FreeBSD 12 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | テストが必要... |
リンク:
要件
- Ansible >= 2.11
- コレクション: community.general
- PHP-FPM が必要な場合は、FastCGI をサポートするウェブサーバーをインストールする必要があります。私の nginx ロール を使用できます。
FreeBSD の制限
- FPM/CLI 用に ini ファイルを分割できません。ハードコードされています
/usr/local/etc/php.ini。 - 複数の PHP バージョンを同時に管理できません(古い Debian バージョンのように)。
- xdebug パッケージ名を明示的に設定する必要があります(
pkg search xdebugを使用して適切なものを見つけてください)。
ロール変数
デフォルト変数 を見てください。
書き込み可能な変数
php_version: 7.3、7.4... OS に応じて(上記を参照)php_install_fpm: boolean、php-fpm をインストールして管理する(デフォルトは true)php_install_xdebug: boolean、Xdebug をインストールするphp_extra_packages: インストールする追加の PHP パッケージ(デフォルトは空のリスト)。
php.ini
php_ini: FPM/CLI で共有されるグローバル設定php_ini_fpm: FPM 用の php.ini を管理 (php-fpm)php_ini_cli: CLI 用の php.ini を管理 (php-fpm)
注意:
- CLI/FPM に対して全く同じ設定が必要な場合は、すべてのデータを
php_iniに入れることができます。 - 特定の設定は
php_ini_fpm/php_ini_cliに入れてください。 php_ini_fpm/php_ini_cliで上書きできますが、冪等性が損なわれます。
OpCache 設定
Opcache ドキュメント を参照してください。
php_opcache_enablephp_opcache_enable_cliphp_opcache_memory_consumptionphp_opcache_interned_strings_bufferphp_opcache_max_accelerated_filesphp_opcache_max_wasted_percentagephp_opcache_validate_timestampsphp_opcache_revalidate_freqphp_opcache_max_file_size
APC/APCu 設定
APC ドキュメント を参照してください。
php_apc_enablephp_apc_enable_cliphp_apc_shm_sizephp_apc_num_files_hintphp_apc_user_entries_hintphp_apc_user_ttlphp_apc_ttlphp_apc_file_update_protectionphp_apc_slam_defensephp_apc_stat_ctime
Xdebug 設定
Xdebug ドキュメント を参照してください。
php_xdebug_auto_tracephp_xdebug_cli_colorphp_xdebug_collect_assignmentsphp_xdebug_collect_includesphp_xdebug_collect_paramsphp_xdebug_collect_returnphp_xdebug_collect_varsphp_xdebug_coverage_enablephp_xdebug_default_enablephp_xdebug_dump_globalsphp_xdebug_dump_oncephp_xdebug_dump_undefinedphp_xdebug_extended_infophp_xdebug_file_link_formatphp_xdebug_force_display_errorsphp_xdebug_force_error_reportingphp_xdebug_halt_levelphp_xdebug_idekeyphp_xdebug_manual_urlphp_xdebug_max_nesting_levelphp_xdebug_overload_var_dumpphp_xdebug_profiler_appendphp_xdebug_profiler_enablephp_xdebug_profiler_enable_triggerphp_xdebug_profiler_enable_trigger_valuephp_xdebug_profiler_output_dirphp_xdebug_profiler_output_namephp_xdebug_remote_autostartphp_xdebug_remote_connect_backphp_xdebug_remote_cookie_expire_timephp_xdebug_remote_enablephp_xdebug_remote_handlerphp_xdebug_remote_hostphp_xdebug_remote_logphp_xdebug_remote_modephp_xdebug_remote_portphp_xdebug_screamphp_xdebug_show_exception_tracephp_xdebug_show_local_varsphp_xdebug_show_mem_deltaphp_xdebug_trace_enable_triggerphp_xdebug_trace_enable_trigger_valuephp_xdebug_trace_formatphp_xdebug_trace_optionsphp_xdebug_trace_output_dirphp_xdebug_trace_output_namephp_xdebug_var_display_max_childrenphp_xdebug_var_display_max_dataphp_xdebug_var_display_max_depth
読み取り専用の変数
php_packages: インストールする最小限のパッケージリストphp_extension_dir.stdout: PHP 拡張ディレクトリを取得(タスクから)php_version.stdout: PHP バージョンを取得(タスクから)
依存関係
なし。
サンプルプレイブック
シンプルなプレイブック
- hosts: servers
roles:
- { role: hanxhx.php }
Debian Bullseye で PHP 8.0 CLI (FPMなし)
- hosts: servers
roles:
- { role: HanXHX.sury }
- { role: hanxhx.php, php_version: '8.0', php_install_fpm: false }
ライセンス
GPLv2
寄付
このコードが役に立った場合や、プロジェクトで使用する場合は、ビールを買っていただけると嬉しいです :beers:
- Bitcoin:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn - Ethereum:
0x63abe6b2648fd892816d87a31e3d9d4365a737b5 - Litecoin:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD - Monero:
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
暗号通貨がない場合は、プロジェクトを⭐️して感謝を伝えることでも大丈夫です! :sunglasses:
著者情報
- Twitter: @hanxhx_
