HanXHX.php

Ansible PHP (+FPM) ロール for Debian / Ubuntu / FreeBSD

Ansible Galaxy GitHub Workflow Status (master)

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_enable
  • php_opcache_enable_cli
  • php_opcache_memory_consumption
  • php_opcache_interned_strings_buffer
  • php_opcache_max_accelerated_files
  • php_opcache_max_wasted_percentage
  • php_opcache_validate_timestamps
  • php_opcache_revalidate_freq
  • php_opcache_max_file_size

APC/APCu 設定

APC ドキュメント を参照してください。

  • php_apc_enable
  • php_apc_enable_cli
  • php_apc_shm_size
  • php_apc_num_files_hint
  • php_apc_user_entries_hint
  • php_apc_user_ttl
  • php_apc_ttl
  • php_apc_file_update_protection
  • php_apc_slam_defense
  • php_apc_stat_ctime

Xdebug 設定

Xdebug ドキュメント を参照してください。

  • php_xdebug_auto_trace
  • php_xdebug_cli_color
  • php_xdebug_collect_assignments
  • php_xdebug_collect_includes
  • php_xdebug_collect_params
  • php_xdebug_collect_return
  • php_xdebug_collect_vars
  • php_xdebug_coverage_enable
  • php_xdebug_default_enable
  • php_xdebug_dump_globals
  • php_xdebug_dump_once
  • php_xdebug_dump_undefined
  • php_xdebug_extended_info
  • php_xdebug_file_link_format
  • php_xdebug_force_display_errors
  • php_xdebug_force_error_reporting
  • php_xdebug_halt_level
  • php_xdebug_idekey
  • php_xdebug_manual_url
  • php_xdebug_max_nesting_level
  • php_xdebug_overload_var_dump
  • php_xdebug_profiler_append
  • php_xdebug_profiler_enable
  • php_xdebug_profiler_enable_trigger
  • php_xdebug_profiler_enable_trigger_value
  • php_xdebug_profiler_output_dir
  • php_xdebug_profiler_output_name
  • php_xdebug_remote_autostart
  • php_xdebug_remote_connect_back
  • php_xdebug_remote_cookie_expire_time
  • php_xdebug_remote_enable
  • php_xdebug_remote_handler
  • php_xdebug_remote_host
  • php_xdebug_remote_log
  • php_xdebug_remote_mode
  • php_xdebug_remote_port
  • php_xdebug_scream
  • php_xdebug_show_exception_trace
  • php_xdebug_show_local_vars
  • php_xdebug_show_mem_delta
  • php_xdebug_trace_enable_trigger
  • php_xdebug_trace_enable_trigger_value
  • php_xdebug_trace_format
  • php_xdebug_trace_options
  • php_xdebug_trace_output_dir
  • php_xdebug_trace_output_name
  • php_xdebug_var_display_max_children
  • php_xdebug_var_display_max_data
  • php_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:

著者情報

プロジェクトについて

Install and configure PHP 7.x/8.x

インストール
ansible-galaxy install HanXHX.php
ライセンス
gpl-2.0
ダウンロード
3.8k
所有者
CEO/CTO/SRE triplestack.fr / daemonit.com