Lework Study hard, improve every day.

Ansible Role 系统环境 之【PHP】

2018-01-26
本文 3722 字,阅读全文约需 11 分钟

Ansible Role: php

安装php7环境, 使用php-fpm管理。

要求

此角色仅在RHEL及其衍生产品上运行。

测试环境

ansible 2.4.2.0 os Centos 7.2 X64 python 2.7.5

角色变量

software_files_path: "/opt/software"
software_install_path: "/usr/local"

php_version: "7.2.1"

php_file: "php-{{ php_version }}.tar.gz"
php_file_path: "{{ software_files_path }}/{{ php_file }}"
php_install_path: "{{ software_install_path }}/php-{{ php_version }}"
php_file_url: "http://cn2.php.net/distributions/{{ php_file }}"

php_rpm_url: "https://mirror.webtatic.com/yum/el7/webtatic-release.rpm"

php_install_from_source: false

php_user: "apache"
php_group: "apache"

php_conf_paths: "/etc"
php_extension_conf_paths: "/etc/php.d"
php_fpm_conf_path: "/etc/fpm"
php_fpm_pool_conf_path: "/etc/php-fpm.d"

php_apcu_file_url: "https://github.com/krakjoe/apcu/archive/v5.1.9.tar.gz"
php_apcu_file: "apcu-5.1.9.tar.gz"
php_apcu_file_path: "{{ software_files_path }}/{{ php_apcu_file }}"
php_apcu_configure_command: >
    ./configure
    --enable-apcu
    --enable-apcu-mmap
    --with-php-config={{ php_install_path }}/bin/php-config
 
php_source_configure_command: >
    ./configure
    --prefix={{ php_install_path }}
    --exec-prefix={{ php_install_path }}
    --bindir={{ php_install_path }}/bin
    --sbindir={{ php_install_path }}/sbin
    --includedir={{ php_install_path }}/include
    --libdir={{ php_install_path }}/lib/php
    --mandir={{ php_install_path }}/php/man
    --with-config-file-path={{ php_conf_paths }}
    --with-config-file-scan-dir={{ php_extension_conf_paths }}
    --with-mcrypt=/usr/include
    --with-mhash
    --with-openssl
    --with-mysqli=shared,mysqlnd
    --with-pdo-mysql=shared,mysqlnd
    --with-gd
    --with-curl
    --with-iconv
    --with-gmp
    --with-pspell
    --with-zlib
    --with-xmlrpc
    --with-gettext
    --with-curl
    --with-jpeg-dir
    --with-freetype-dir
    --enable-zip
    --enable-wddx
    --enable-inline-optimization=
    --enable-shared
    --enable-xml
    --enable-bcmath
    --enable-shmop
    --enable-sysvmsg
    --enable-sysvsem
    --enable-sysvshm
    --enable-mbregex
    --enable-mbstring
    --enable-ftp
    --enable-gd-native-ttf
    --enable-gd-jis-conv
    --enable-pcntl
    --enable-pdo
    --enable-sockets
    --enable-soap
    --enable-session
    --enable-opcache
    --enable-fpm
    --disable-debug
    --disable-rpath
    --disable-fileinfo
    --without-gdbm
    --without-pear
    
    
php_enable_php_fpm: true
php_fpm_listen: "127.0.0.1:9000"
php_fpm_listen_allowed_clients: "127.0.0.1"
php_fpm_pm_max_children: 50
php_fpm_pm_start_servers: 5
php_fpm_pm_min_spare_servers: 5
php_fpm_pm_max_spare_servers: 5

# OpCache settings.
php_opcache_zend_extension: "opcache.so"
php_opcache_enable: "1"
php_opcache_enable_cli: "0"
php_opcache_memory_consumption: "96"
php_opcache_interned_strings_buffer: "16"
php_opcache_max_accelerated_files: "4096"
php_opcache_max_wasted_percentage: "5"
php_opcache_validate_timestamps: "1"
php_opcache_revalidate_path: "0"
php_opcache_revalidate_freq: "2"
php_opcache_max_file_size: "0"
php_opcache_blacklist_filename: ""

# APCu settings.
php_enable_apcu: true
php_apc_shm_size: "96M"
php_apc_enable_cli: "0"

php_expose_php: "On"
php_memory_limit: "256M"
php_max_execution_time: "60"
php_max_input_time: "60"
php_max_input_vars: "1000"
php_input_nesting_level: "64"
php_realpath_cache_size: "32K"

php_file_uploads: "On"
php_upload_max_filesize: "64M"
php_max_file_uploads: "20"

php_post_max_size: "32M"
php_date_timezone: "Asia/Shanghai"
php_allow_url_fopen: "On"

php_sendmail_path: "/usr/sbin/sendmail -t -i"
php_output_buffering: "4096"
php_short_open_tag: "Off"
php_disable_functions: []

php_session_cookie_lifetime: 0
php_session_gc_probability: 1
php_session_gc_divisor: 1000
php_session_gc_maxlifetime: 1440
php_session_save_handler: files
php_session_save_path: "/tmp"

php_error_reporting: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
php_display_errors: "Off"
php_display_startup_errors: "Off"

依赖

epel

github地址

https://github.com/lework/Ansible-roles/tree/master/php

Example Playbook

rpm方式安装
- hosts: node1
  roles:
    - php
    
源码方式安装
- hosts: node1
  roles:
    - { role: php, php_install_from_source: true }

使用

systemctl start php-fpm
systemctl stop php-fpm
原文地址 https://lework.github.io/2018/01/26/Ansible-Role-xi-tong-huan-jing-zhi-PHP/

Comments

Content