jebovic.php

php

Status Budowy Ansible Galaxy

Zainstaluj i skonfiguruj php-fpm dla stosu LAMP i LEMP, dodaj własne konfiguracje puli oraz dostosuj wszystkie ustawienia php.ini z zmiennych YAML.

Bonus: dodaj rozszerzenia dla blackfire i newrelic APM.

Ta rola jest częścią mojego projektu OPS, kliknij ten link, aby zobaczyć, jak to działa. OPS oferuje wiele funkcji, takich jak plik Vagrant do maszyn wirtualnych do rozwoju, playbooki do orkiestracji ról, pliki inwentarza, przykłady konfiguracji ról, plik konfiguracyjny ansible i wiele więcej.

Zgodność

Przetestowane i zatwierdzone na:

  • Debian jessie (8+)
  • Ubuntu Trusty (14.04 LTS)
  • Ubuntu Xenial (16.04 LTS)

Zmienną Roli

# użyj niestandardowego repozytorium
php_use_custom_repository: tak
php_custom_repositories_key_url: https://www.dotdeb.org/dotdeb.gpg
php_custom_repositories:
  - deb http://packages.dotdeb.org jessie all
  - deb-src http://packages.dotdeb.org jessie all

# Wybierz pakiety do zainstalowania
php_packages:
  - php7.0-fpm
  - php7.0-cli
  - php7.0-common
  - php7.0-dev
  - php7.0-opcache
  - php7.0-mbstring
  - php7.0-memcached
  - php7.0-mysql
  - php7.0-redis
  - php7.0-curl
  - php7.0-json
  - php7.0-xsl
  - php7.0-xml
  - php7.0-mongodb
  - php7.0-imagick

# Zdefiniuj swoje własne pule
php_pools:
  www:
    user: "www-data"
    group: "www-data"
    listen: "/var/run/php-fpm.sock"
    listen.owner: "www-data"
    listen.group: "www-data"
    listen.allowed_clients: "127.0.0.1"
    pm: "dynamic"
    pm.max_children: "5"
    pm.start_servers: "2"
    pm.min_spare_servers: "1"
    pm.max_spare_servers: "3"
    pm.process_idle_timeout: "30s"
    pm.max_requests: "500"

# Niestandardowe konfiguracje php.ini
php_ini_custom:
  opcache:
    opcache.blacklist_filename: "{{ php_fpm_root_dir }}/fpm/opcache.blacklist"
  newrelic:
    newrelic.enabled: "true"
    newrelic.license: "ZASTĄP TO SWOIM KLUCZEM"
    newrelic.logfile: "/var/log/newrelic/php_agent.log"
    newrelic.appname: "{{ ansible_hostname|default('VM Test') }}"
    newrelic.daemon.logfile: "/var/log/newrelic/newrelic-daemon.log"
    newrelic.daemon.port: "/tmp/.newrelic.sock"
    newrelic.daemon.location: "/usr/bin/newrelic-daemon"
    newrelic.daemon.collector_host: "collector.newrelic.com"
    newrelic.analytics_events.enabled: "true"

# Opcache blacklist
php_opcache_blacklist: []

# Podstawowa konfiguracja Php FPM
php_fpm_root_dir: /etc/php/7.0
php_fpm_daemon: php7.0-fpm
php_fpm_pid: /run/php-fpm.pid
php_fpm_error_log: /var/log/php-fpm.log
php_fpm_syslog_facility: daemon
php_fpm_syslog_ident: php-fpm
php_fpm_log_level: notice
php_fpm_emergency_restart_threshold: 0
php_fpm_emergency_restart_interval: 0
php_fpm_process_control_timeout: 0
php_fpm_process_max: 128
php_fpm_process_priority: -19
php_fpm_daemonize: tak
php_fpm_rlimit_files: 1024
php_fpm_rlimit_core: 0
php_fpm_events_mechanism: epoll
php_fpm_systemd_interval: 10
php_fpm_pools_include: "{{ php_fpm_root_dir }}/fpm/pool.d/*.conf"

# Włącz dodatkowe
php_blackfire_enabled: true
php_composer_enabled: true
php_newrelic_enabled: true

# Konfiguracja Blackfire.io
php_blackfire_daemon: blackfire-agent
php_blackfire_test_mode: false
php_blackfire_key_url: https://packagecloud.io/gpg.key
php_blackfire_package_url: http://packages.blackfire.io/debian
php_blackfire_directory: /etc/blackfire
php_blackfire_packages:
    - blackfire-agent
    - blackfire-php

# Konfiguracja agenta Blackfire
php_blackfire_cert: # Ustawia zakodowane certyfikaty PEM
php_blackfire_collector: https://blackfire.io                # Ustawia URL zbieracza danych Blackfire’a
php_blackfire_http_proxy: # Ustawia proxy http do użycia
php_blackfire_https_proxy: # Ustawia proxy https do użycia
php_blackfire_log_file: stderr                               # Ustawia ścieżkę do pliku dziennika. Użyj stderr, aby rejestrować w stderr
php_blackfire_log_level: 1                                   # poziom szczegółowości logu (4: debug, 3: info, 2: ostrzeżenie, 1: błąd)
php_blackfire_server_id: "ZASTĄP TO SWOIM KLUCZEM"          # Ustawia identyfikator serwera używany do autoryzacji w API Blackfire
php_blackfire_server_token: "ZASTĄP TO SWOIM KLUCZEM"       # Ustawia token serwera używany do autoryzacji w API Blackfire. Ustawianie tego z wiersza poleceń jest niebezpieczne.
php_blackfire_socket: "unix:///var/run/blackfire/agent.sock" # Ustawia socket, z którego agent powinien odczytywać ślady. Możliwą wartością może być socket unixowy lub adres TCP
php_blackfire_spec: # Ustawia ścieżkę do pliku specyfikacji JSON

# Konfiguracja Composera
php_composer_download_url: https://getcomposer.org/installer
php_composer_path: /usr/local/bin/composer
php_composer_version: ''

# Konfiguracja Newrelic APM
php_newrelic_apt_key_url: https://download.newrelic.com/548C16BF.gpg
php_newrelic_apt_url: http://apt.newrelic.com/debian/
php_newrelic_packages:
  - newrelic-php5

Przykładowy Playbook

- hosts: serwery
  roles:
     - { role: jebovic.php }

Przykład: konfiguracja

# Zdefiniuj swoje własne pule
php_pools:
  my_pool:
    user: "ja"
    group: "ja"
    listen: "/var/run/php-fpm.sock"
    listen.owner: "www-data"
    listen.group: "www-data"
    listen.allowed_clients: "127.0.0.1"
    pm: "dynamic"
    pm.max_children: "10"
    pm.start_servers: "4"
    pm.min_spare_servers: "2"
    pm.max_spare_servers: "6"
    pm.process_idle_timeout: "300s"
    pm.max_requests: "300"
# Niestandardowa konfiguracja php, połącz ją z moimi innymi rolami, mailhog (przechwytywacz maili), memcached, newrelic, blackfire...
php_ini_custom:
  Session:
    session.save_handler: memcached
    session.save_path: "{{ memcache_listen_address }}:{{ memcache_port }}"
  mail function:
    sendmail_from: [email protected]
    sendmail_path: "{{ mailhog_mhsendmail_path }}"
  opcache:
    opcache.enable_cli: Off
    opcache.blacklist_filename: /etc/php5/fpm/opcache.blacklist
  newrelic:
    newrelic.enabled: "true"
    newrelic.license: "{{ newrelic_license }}"
    newrelic.logfile: "/var/log/newrelic/php_agent.log"
    newrelic.appname: "{{ ansible_hostname|default('VM Test') }}"
    newrelic.daemon.logfile: "/var/log/newrelic/newrelic-daemon.log"
    newrelic.daemon.port: "/tmp/.newrelic.sock"
    newrelic.daemon.location: "/usr/bin/newrelic-daemon"
    newrelic.daemon.collector_host: "collector.newrelic.com"
    newrelic.analytics_events.enabled: "true"

Tagi

  • php_blackfire_config : tylko konfiguruj blackfire i uruchom ponownie usługi php i blackfire
  • php_config : tylko zaktualizuj konfigurację i uruchom ponownie usługę
  • php_composer : tylko zainstaluj composera
  • php_blackfire : tylko zainstaluj, skonfiguruj i uruchom usługę blackfire
  • php_newrelic : tylko dodaj wtyczkę newrelic apm dla php

Licencja

MIT

Informacje o autorze

Jérémy Baumgarth https://github.com/jebovic

O projekcie

Install and configure php-fpm for lamp and lemp stack, add your own pools configurations, and customize all the php.ini config from yaml variables, also included: composer, newrelic apm, blackfire apm

Zainstaluj
ansible-galaxy install jebovic.php
Licencja
mit
Pobrania
591
Właściciel