-
Notifications
You must be signed in to change notification settings - Fork 27
/
php.yml
139 lines (124 loc) · 3.97 KB
/
php.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
- name: Install php dependency packages
yum:
lock_timeout: 180 # wait up to 3 minutes for a lock ansible/ansible#57189
name: "{{ item }}"
state: installed
with_items:
- zlib-devel
- sqlite-devel
- bzip2-devel
- pcre-devel
- openssl-devel
- curl-devel
- libxml2-devel
- libXpm-devel
- gmp-devel
- libicu-devel
- t1lib-devel
- aspell-devel
- libcurl-devel
- libjpeg-devel
- libvpx-devel
- libpng-devel
- freetype-devel
- readline-devel
- libtidy-devel
- libmcrypt-devel
- pam-devel
- sendmail
- sendmail-cf
- m4
- xz-libs
- mariadb-libs
- name: Get IUS repository
include: ius.yml
- name: Ensure PHP 5.x packages removed
package:
lock_timeout: 180 # wait up to 3 minutes for a lock ansible/ansible#57189
name: "php5*"
state: absent
# Check if the desired version of PHP is installed. If it is not, ensure any
# other versions of PHP are not installed
- name: "Check if {{ php_ius_version}} package is installed"
yum:
lock_timeout: 180 # wait up to 3 minutes for a lock ansible/ansible#57189
list: "{{ php_ius_version }}"
register: correct_php
- debug:
var: correct_php
- name: Remove any other PHP packages from IUS repo if correct PHP is not installed
package:
lock_timeout: 180 # wait up to 3 minutes for a lock ansible/ansible#57189
name: "php*u*"
state: absent
when: ansible_os_family == 'RedHat' and
correct_php.results|length == 0
- name: Ensure PHP IUS packages installed
yum:
lock_timeout: 180 # wait up to 3 minutes for a lock ansible/ansible#57189
name: "{{item}}"
state: installed
with_items:
# The following items exist in php56u, php70u, php71u, and php72u
- "mod_{{ php_ius_version }}"
- "{{ php_ius_version }}-cli"
- "{{ php_ius_version }}-common"
- "{{ php_ius_version }}-devel"
- "{{ php_ius_version }}-gd"
- "{{ php_ius_version }}-pspell"
- "{{ php_ius_version }}-snmp"
- "{{ php_ius_version }}-xml"
- "{{ php_ius_version }}-xmlrpc"
- "{{ php_ius_version }}-mysqlnd"
- "{{ php_ius_version }}-pdo"
- "{{ php_ius_version }}-odbc"
- "{{ php_ius_version }}-process"
- "{{ php_ius_version }}-bcmath"
- "{{ php_ius_version }}-intl"
- "{{ php_ius_version }}-opcache"
- "{{ php_ius_version }}-soap"
- "{{ php_ius_version }}-mbstring"
- "{{ php_ius_version }}-ldap"
# php56u has memcache and memcached; php7Xu only has memcached
# legacy Meza used php56u-pecl-memcache
- "{{ php_ius_version }}-pecl-memcached"
# Available for php56u, php70u, and php71u. NOT for php72u.
# - "{{ php_ius_version }}-mcrypt"
# Available for php56u and php70u. NOT php71u or php72u
# - "{{ php_ius_version }}-pear"
# Post 7.0, use the pear1u package for all versions of PHP
# PEAR is no longer a requirement for Meza. Mail and Net_SMTP installed with
# Composer via MW core (MW 1.32+) or composer.local.json (MW 1.31 and lower)
# However, other packages may require it, for example installing sqlsrv and
# pdo_sqlsrv PECL packages for MS SQL use.
- pear1u
# Not available for PHP 7, due to being built into PHP 7
# - php56u-pecl-jsonc
# Not available in PHP 7
# Get alternative method of accessing SQL Server:
# https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-2017#installing-the-drivers-on-red-hat-7
# - php56u-mssql
- name: Install MS SQL driver for PHP
include: mssql_driver_for_php.yml
when: install_ms_sql_driver is defined and install_ms_sql_driver
- name: Write php.ini file
template:
src: php.ini.j2
dest: "{{ m_php_ini }}"
notify:
- restart apache
- name: Write php.d ini files
template:
src: "{{ item }}.j2"
dest: "/etc/php.d/{{ item }}"
with_items:
- 10-opcache.ini
notify:
- restart apache
- name: Write freetds.conf file
template:
src: freetds.conf.j2
dest: /etc/freetds.conf
notify:
- restart apache