HanXHX.php
Rôle Ansible PHP (+FPM) pour Debian / Ubuntu / FreeBSD
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 xdebugpour 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 Xdebugphp_extra_packages: paquets PHP supplémentaires à installer (par défaut une liste vide).
php.ini
php_ini: configuration globale partagée entre FPM/CLIphp_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
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
Paramètres APC/APCu
Voir la documentation 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
Paramètres 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
Variables en lecture seule
php_packages: liste minimale des paquets à installerphp_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
- Twitter : @hanxhx_
À propos du projet
Install and configure PHP 7.x/8.x
Installer
ansible-galaxy install HanXHX.phpLicence
gpl-2.0
Téléchargements
3.8k
Propriétaire
CEO/CTO/SRE triplestack.fr / daemonit.com
