CentOS8にAnsibleでPHP7をインストール。
CentOS8になってから、PHPのインストール方法に多少変更がありました。Ansibleでの記述も、それに合わせていくつか変更が必要になります。
はじめに変数は次のように設定しておきます。これはCentOS7と比べて、特に違いはありません。
roles/php/defaults/main.yml
1 2 3 4 5 6 |
php_version: 7.4 language: Japanese internal_encoding: UTF-8 encoding_translation: Off detect_order: auto filesize: 128M |
シンプルな構成ですが、タスクは次のように記述します。
roles/php/tasks/main.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 |
- name: Add EPEL Repository dnf: name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm state: present - name: Add Remi Repository dnf: name: https://rpms.remirepo.net/enterprise/remi-release-8.rpm state: present - name: Enable PowerTools shell: cmd: dnf config-manager --set-enabled PowerTools - name: Install PHP shell: cmd: dnf module install -y php:remi-{{ php_version }} - name: Install Modules dnf: name: ['php-apcu', 'php-devel', 'php-gd', 'php-mbstring', 'php-mysqlnd', 'php-opcache', 'php-pdo', 'php-pear', 'php-pecl-zip', 'php-xml'] state: present - name: Configure PHP ini_file: path: /etc/php.ini section: "{{ item.section }}" option: "{{ item.option }}" value: "{{ item.value }}" backup: "{{ item.backup }}" with_items: - { section: PHP, option: post_max_size, value: "{{ filesize }}", backup: true } - { section: PHP, option: upload_max_filesize, value: "{{ filesize }}", backup: false } - { section: Date, option: date.timezone, value: "{{ timezone }}", backup: false } - { section: mbstring, option: mbstring.language, value: "{{ language }}", backup: false } - { section: mbstring, option: mbstring.internal_encoding, value: "{{ internal_encoding }}", backup: false } - { section: mbstring, option: mbstring.encoding_translation, value: "{{ encoding_translation }}", backup: false } - { section: mbstring, option: mbstring.detect_order, value: "{{ detect_order }}", backup: false } |
CentOS8では、PHPのインストールに「dnf module」が必要になりましたが、現状ではAnsible側が対応していないので直接、「cmd」にて実行しています。
1 2 3 |
- name: Install PHP shell: cmd: dnf module install -y php:remi-{{ php_version }} |
また、「php-devel」モジュールをインストールする場合には、「PowerTools」も有効にしておく必要があります。
1 2 3 |
- name: Enable PowerTools shell: cmd: dnf config-manager --set-enabled PowerTools |