Compare commits

...

16 Commits

10 changed files with 146 additions and 56 deletions

View File

@@ -13,18 +13,19 @@ None
Role Variables Role Variables
-------------- --------------
php_poolname: default www_{{ php_version }} php_pool_name: default {{ php_fpm_pool_user }}_{{ php_version_nodot }}
php_version: default 82 php_fpm_listen_socket: NO DEFAULT
php_fpm_create_pool: default false
php_version: STRING default "8.2"
php_fpm_pool_user: default apache php_fpm_pool_user: default apache
php_fpm_pool_group: default apache php_fpm_pool_group: default apache
php_fpm_listen_url: default 127.0.0.1:90{{ php_version }}
php_pm: static php_pm: static
php_pm_max_children: 1000 php_pm_max_children: 1000
php_pm_max_requests: 10000 php_pm_max_requests: 10000
php_min_spare_servers: 5 php_min_spare_servers: 5
php_max_spare_servers: 35 php_max_spare_servers: 35
php_pm_status_url: /phpstatus php_pm_status_url: /phpstatus
php_packages: [ 'php{{ php_version }}-php-common' ] php_packages: [ 'php{{ php_version_nodot }}-php-common' ]
php_use_phpmyadmin: default false php_use_phpmyadmin: default false
pma_install_dir: /var/www/html pma_install_dir: /var/www/html
pma_version: 5.2.1 pma_version: 5.2.1
@@ -44,30 +45,30 @@ Including an example of how to use your role (for instance, with variables passe
roles: roles:
- role: tconstans.php-fpm - role: tconstans.php-fpm
vars: vars:
php_poolname: pool1 php_pool_name: pool1
php_fpm_listen_url: "/srv/pool1/php-fpm.sock" php_fpm_listen_url: "/srv/pool1/php-fpm.sock"
php_version: 74 php_version_nodot: 74
php_packages: php_packages:
- php{{ php_version }}-php-mbstring - php{{ php_version_nodot }}-php-mbstring
- php{{ php_version }}-php-mysqlnd - php{{ php_version_nodot }}-php-mysqlnd
- php{{ php_version }}-php-pdo - php{{ php_version_nodot }}-php-pdo
- php{{ php_version }}-php-xml - php{{ php_version_nodot }}-php-xml
- php{{ php_version }}-php-gd - php{{ php_version_nodot }}-php-gd
- php{{ php_version }}-php-posix - php{{ php_version_nodot }}-php-posix
- php{{ php_version }}-php-ldap - php{{ php_version_nodot }}-php-ldap
- php{{ php_version }}-php-curl - php{{ php_version_nodot }}-php-curl
- php{{ php_version }}-php-iconv - php{{ php_version_nodot }}-php-iconv
- php{{ php_version }}-php-openssl - php{{ php_version_nodot }}-php-openssl
- php{{ php_version }}-php-zip - php{{ php_version_nodot }}-php-zip
- php{{ php_version }}-php-zlib - php{{ php_version_nodot }}-php-zlib
- php{{ php_version }}-php-ctype - php{{ php_version_nodot }}-php-ctype
- role: tconstans.php-fpm - role: tconstans.php-fpm
vars: vars:
php_poolname: pool2 php_pool_name: pool2
php_fpm_listen_url: "/srv/pool2/php-fpm.sock" php_fpm_listen_url: "/srv/pool2/php-fpm.sock"
php_version: 80 php_version_nodot: 80
php_packages: php_packages:
- php{{ php_version }}-php-zip - php{{ php_version_nodot }}-php-zip
License License
------- -------

View File

@@ -1,15 +1,15 @@
--- ---
# defaults file for php-fpm # defaults file for php-fpm
php_version: 82 php_version: "8.2"
php_poolname: "www_{{ php_version }}" php_version_nodot: "{{php_version[0]}}{{php_version[2]}}"
php_fpm_pool_user: apache php_pool_name: "{{ php_fpm_pool_user }}_{{ php_version_nodot }}"
php_fpm_pool_group: apache php_fpm_create_pool: False
php_fpm_listen_url: 127.0.0.1:90{{ php_version }} php_fpm_pool_user: "{{ apache_user }}"
php_fpm_pool_group: "{{ apache_group }}"
php_pm: static php_pm: static
php_pm_max_children: 100 php_pm_max_children: 100
php_pm_max_requests: 10000 php_pm_max_requests: 10000
php_pm_status_url: /phpstatus php_pm_status_url: /phpstatus
php_packages: [ 'php{{ php_version }}-php-common' ]
php_min_spare_servers: 5 php_min_spare_servers: 5
php_max_spare_servers: 35 php_max_spare_servers: 35
php_use_phpmyadmin: false php_use_phpmyadmin: false

View File

@@ -2,5 +2,5 @@
# handlers file for php-fpm # handlers file for php-fpm
- name: restart php-fpm - name: restart php-fpm
service: service:
name: php{{ php_version }}-php-fpm name: "{{ php_service_name }}"
state: restarted state: restarted

View File

@@ -3,52 +3,103 @@
# #
# #
- name: import os vars
tags: always
include_vars: "{{ ansible_os_family|lower }}.yml"
- name: install repository definitions - name: install repository definitions
package: ansible.builtin.package:
name: name:
- "https://rpms.remirepo.net/enterprise/remi-release-{{ ansible_distribution_major_version }}.rpm" - "https://rpms.remirepo.net/enterprise/remi-release-{{ ansible_distribution_major_version }}.rpm"
- epel-release - epel-release
- yum-utils - yum-utils
state: present state: present
when: ansible_os_family=='RedHat'
- name: "setup repository - debian"
block:
- name: Check if my_package is installed
command: dpkg-query -W debsuryorg-archive-keyring
register: my_package_check_deb
failed_when: my_package_check_deb.rc > 1
changed_when: my_package_check_deb.rc == 1
- name: setup repo key
ansible.builtin.get_url:
url: https://packages.sury.org/debsuryorg-archive-keyring.deb
dest: /tmp/debsuryorg-archive-keyring.deb
when: my_package_check_deb.rc==1
- name: install key
ansible.builtin.apt:
state: present
deb: /tmp/debsuryorg-archive-keyring.deb
when: my_package_check_deb.rc==1
- name: setup source list
ansible.builtin.template:
src: php_sury_sources.list
dest: /etc/apt/sources.list.d/php_sury.sources.list
register: repo_setup
- name: update cache
ansible.builtin.apt:
update_cache: true
when: repo_setup.changed
when: ansible_os_family | lower == 'debian'
- name: create socket directory if needed - name: create socket directory if needed
file: ansible.builtin.file:
path: "{{ php_fpm_listen_url|dirname }}" path: "{{ php_fpm_listen_socket|dirname }}"
state: directory state: directory
owner: "{{ php_fpm_pool_user }}" owner: "{{ php_fpm_pool_user }}"
when: php_fpm_listen_url[0] == '/'
- name: install php-fpm - name: install php-fpm
yum: ansible.builtin.package:
name: name: '{{ php_fpm_packages}}'
- php{{php_version}}-php-fpm state: present
state: installed
- name: install php packages - name: install php packages
yum: ansible.builtin.package:
name: "{{ php_packages }}" name: "{{ php_packages }}"
state: present state: present
when: php_packages is defined
- name: disable default pool - name: disable default pool
copy: copy:
content: "" content: ""
dest: "/etc/opt/remi/php{{ php_version }}/php-fpm.d/www.conf" dest: "{{ php_fpm_pool_dir }}/www.conf"
notify: restart php-fpm
- name: configure php-fpm pool 2 - name: configure php-fpm pool 2
template: template:
src: www.conf src: www.conf
dest: /etc/opt/remi/php{{ php_version }}/php-fpm.d/{{ php_poolname }}.conf dest: "{{ php_fpm_pool_dir }}/{{ php_pool_name }}.conf"
notify: restart php-fpm notify: restart php-fpm
when: php_fpm_create_pool
- name: start and enable service - name: setup apache config file
ansible.builtin.template:
src: php_apache_config.conf.jj
dest: /etc/apache2/php_fpm_{{ php_version }}_{{ php_pool_name }}.conf.inc
owner: root
group: root
mode: 0644
- name: enable service
service: service:
name: php{{php_version}}-php-fpm name: "{{ php_service_name }}"
enabled: yes enabled: yes
- name: start service
service:
name: "{{ php_service_name }}"
state: started state: started
when: php_fpm_create_pool
- name: configure logrotate - name: configure logrotate
template: template:
src: logrotate.conf.jj src: logrotate.conf.jj
dest: /etc/logrotate.d/php-fpm.conf dest: "/etc/logrotate.d/php-fpm-{{php_version }}.conf"
owner: root
group: root

View File

@@ -1,11 +1,16 @@
/var/opt/remi/php{{ php_version }}/log/php-fpm/*log { #{{ ansible_managed }}
{{ php_fpm_log_dir }}/php_fpm*{{ php_version_nodot }}*.log {
daily daily
rotate 15 rotate 15
missingok missingok
notifempty notifempty
sharedscripts sharedscripts
postrotate postrotate
/bin/systemctl reload php{{ php_version }}-php-fpm if [ -x /usr/lib/php/php{{ php_version }}-fpm-reopenlogs ]; then
/usr/lib/php/php{{ php_version }}-fpm-reopenlogs;
else
/bin/systemctl reload {{ php_service_name }}
fi
endscript endscript
} }

View File

@@ -0,0 +1,4 @@
"{{ ansible_managed }}"
<FilesMatch \.php$>
SetHandler "proxy:unix:{{ php_fpm_listen_socket }}|fcgi://localhost/"
</FilesMatch>

View File

@@ -0,0 +1,2 @@
#{{ ansible_managed }}
deb [signed-by=/etc/apt/trusted.gpg.d/debsuryorg-archive.gpg] https://packages.sury.org/php/ {{ ansible_distribution_release }} main

View File

@@ -1,7 +1,8 @@
[{{ php_poolname }}] ;{{ ansible_managed }}
[{{ php_pool_name }}]
user = {{ php_fpm_pool_user }} user = {{ php_fpm_pool_user }}
group = {{ php_fpm_pool_group }} group = {{ php_fpm_pool_group }}
listen = {{ php_fpm_listen_url }} listen = {{ php_fpm_listen_socket }}
listen.backlog = 511 listen.backlog = 511
listen.mode = 0660 listen.mode = 0660
listen.owner = {{ php_fpm_pool_user }} listen.owner = {{ php_fpm_pool_user }}
@@ -15,9 +16,14 @@ pm.max_requests = {{ php_pm_max_requests }}
pm.status_path = {{ php_pm_status_url }} pm.status_path = {{ php_pm_status_url }}
ping.path = /ping ping.path = /ping
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
access.log = /var/opt/remi/php{{ php_version }}/log/php-fpm/$pool.access.log access.log = {{ php_fpm_log_dir }}php_fpm_$pool.access.log
slowlog = /var/opt/remi/php{{ php_version }}/log/php-fpm/$pool.slow.log slowlog = {{ php_fpm_log_dir }}php_fpm_$pool.slow.log
request_slowlog_timeout = 5s request_slowlog_timeout = 5s
php_value[session.save_handler] = files php_value[session.save_handler] = files
php_value[session.save_path] = /var/opt/remi/php{{ php_version }}/lib/php/session php_value[session.save_path] = {{ php_fpm_lib_dir }}/sessions
php_value[soap.wsdl_cache_dir] = /var/opt/remi/php{{ php_version }}/lib/php/wsdlcache php_value[soap.wsdl_cache_dir] = {{ php_fpm_lib_dir }}/wsdlcache
php_admin_value[upload_max_filesize] = 64M
php_admin_value[post_max_size]=64M
php_admin_value[max_execution_time]=300
php_admin_value[memory_limit]=512M

10
vars/debian.yml Normal file
View File

@@ -0,0 +1,10 @@
#/home/tom/Documents/Opendoor/Technique/Ansible/roles/tco.php-fpm/vars/debian.yml
php_fpm_pool_dir: /etc/php/{{ php_version }}/fpm/pool.d/
php_fpm_log_dir: /var/log/
php_service_name: php{{ php_version }}-fpm
php_fpm_lib_dir: /var/lib/php/
apache_user: www-data
apache_group: www-data
php_fpm_packages:
- "php{{ php_version }}-fpm"
- "php{{ php_version }}-common"

11
vars/redhat.yml Normal file
View File

@@ -0,0 +1,11 @@
#/home/tom/Documents/Opendoor/Technique/Ansible/roles/tco.php-fpm/vars/redhat.yml
php_fpm_pool_dir: /etc/opt/remi/php{{ php_version_nodot }}/php-fpm.d/
php_service_name: "php{{ php_version_nodot }}-php-fpm"
php_fpm_log_dir: "/var/opt/remi/php{{ php_version_nodot }}/log/php-fpm/"
php_fpm_lib_dir: "/var/opt/remi/php{{ php_version_nodot }}/lib/php/"
apache_user: apache
apache_group: apache
php_fpm_packages:
- "php{{ php_version_nodot }}-php-fpm"
- "php{{ php_version_nodot }}-php-common"