HanXHX.php

Rôle Ansible PHP (+FPM) pour Debian / Ubuntu / FreeBSD

Ansible Galaxy Statut du Workflow GitHub (master)

Installez PHP sur Debian / Ubuntu / FreeBSD. Gérez PHP-FPM, APCu, Opcache et Xdebug.

Systèmes d'exploitation gérés / Versions

Pour toutes les versions de Debian, vous pouvez installer toutes les versions de PHP en utilisant le dépôt APT de Sury.

Autres cas :

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: Besoin de tests...
FreeBSD 12 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: Besoin de tests...

Liens :

Exigences

  • Ansible >= 2.11
  • Collections : community.general
  • Si vous avez besoin de PHP-FPM, vous devez installer un serveur web avec support FastCGI. Vous pouvez utiliser mon rôle nginx.

Limitations FreeBSD

  • Il ne sépare pas le fichier ini pour FPM/CLI. Il est codé en dur comme /usr/local/etc/php.ini.
  • Il ne peut pas gérer plusieurs versions de PHP en même temps (comme les anciennes versions de Debian).
  • Vous devez spécifier explicitement le nom du paquet xdebug (utilisez pkg search xdebug pour trouver le bon).

Variables du rôle

Vous devriez consulter les variables par défaut.

Variables modifiables

  • php_version : 7.3, 7.4... selon l'OS (voir ci-dessus)
  • php_install_fpm : booléen, installer et gérer php-fpm (par défaut vrai)
  • php_install_xdebug : booléen, installer Xdebug
  • php_extra_packages : paquets PHP supplémentaires à installer (par défaut une liste vide).

php.ini

  • php_ini : configuration globale partagée entre FPM/CLI
  • php_ini_fpm : gérer le php.ini de FPM (php-fpm)
  • php_ini_cli : gérer le php.ini de CLI (php-fpm)

Remarque :

  • Si vous voulez exactement la même configuration pour CLI/FPM, vous pouvez mettre toutes vos données dans php_ini.
  • Mettez la configuration spécifique dans php_ini_fpm/php_ini_cli.
  • Vous pouvez remplacer avec php_ini_fpm/php_ini_cli, mais cela rompt l'idempotence.

Paramètres OpCache

Voir la documentation 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

Paramètres APC/APCu

Voir la documentation 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

Paramètres Xdebug

Voir la documentation 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

Variables en lecture seule

  • php_packages : liste minimale des paquets à installer
  • php_extension_dir.stdout : obtenir le répertoire des extensions PHP (depuis la tâche)
  • php_version.stdout : obtenir la version de PHP (depuis la tâche)

Dépendances

Aucune.

Exemple de Playbook

Playbook simple

- hosts: serveurs
  roles:
     - { role: hanxhx.php }

Debian Bullseye avec PHP 8.0 CLI (sans FPM)

- hosts: serveurs
  roles:
     - { role: HanXHX.sury }
     - { role: hanxhx.php, php_version: '8.0', php_install_fpm: false }

Licence

GPLv2

Donations

Si ce code vous a aidé, ou si vous les avez utilisés pour vos projets, n'hésitez pas à me payer quelques :bières:

  • Bitcoin : 1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
  • Ethereum : 0x63abe6b2648fd892816d87a31e3d9d4365a737b5
  • Litecoin : LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
  • Monero : 45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ

Pas de crypto-monnaie ? :étoile: le projet est aussi un moyen de dire merci ! :sunglasses:

Informations sur l'auteur

Installer
ansible-galaxy install HanXHX.php
Licence
gpl-2.0
Téléchargements
3.8k
Propriétaire
CEO/CTO/SRE triplestack.fr / daemonit.com