--- - name: Ensure dependencies for building from source are installed (RedHat). package: "name={{ item }} state=installed" with_items: - autoconf - automake - libtool - bison - make - curl-devel - recode-devel - aspell-devel - libxml2-devel - pkgconfig - libmcrypt-devel - t1lib-devel - libXpm-devel - libpng-devel - libjpeg-turbo-devel - bzip2-devel - openssl-devel - freetype-devel - libicu-devel - mariadb-devel - gmp-devel when: ansible_os_family == 'RedHat' - name: Update apt cache (Debian). apt: update_cache=yes cache_valid_time=86400 when: ansible_os_family == 'Debian' - name: Ensure dependencies for building from source are installed (Debian). apt: "pkg={{ item }} state=installed" with_items: - build-essential - autoconf - automake - libtool - bison - pkg-config - re2c - libxml2-dev - libcurl4-openssl-dev - libbz2-dev - libjpeg-dev - libpng12-dev - libxpm-dev - libfreetype6-dev - libgmp3-dev - libmcrypt-dev - libmysqlclient-dev - libpspell-dev - librecode-dev - libssl-dev when: ansible_os_family == 'Debian' - name: Define php_fpm_daemon (if not defined already). set_fact: php_fpm_daemon: "php-fpm" when: php_fpm_daemon is not defined - name: Check if gmp.h is already in a location accessible to gcc. stat: path=/usr/include/gmp.h register: gmp_file - name: Ensure gmp.h is symlinked into a location accessible to gcc. file: src: "{{ php_source_install_gmp_path }}" dest: /usr/include/gmp.h state: link when: gmp_file.stat.exists == false - name: Check if PHP is installed. command: which php changed_when: false failed_when: false register: php_installed - name: Clone the PHP repository. git: repo: "{{ php_source_repo }}" dest: "{{ php_source_clone_dir }}" version: "{{ php_source_version }}" accept_hostkey: yes depth: "{{ php_source_clone_depth }}" when: php_installed.rc != 0 - name: Ensure PHP installation path exists. file: path: "{{ php_source_install_path }}" state: directory mode: 0755 when: php_installed.rc != 0 - name: Build configure script. shell: > ./buildconf --force chdir={{ php_source_clone_dir }} when: php_installed.rc != 0 - name: Run configure script. shell: > {{ php_source_configure_command }} chdir={{ php_source_clone_dir }} when: php_installed.rc != 0 - name: Make and install PHP. shell: > {{ item }} chdir={{ php_source_clone_dir }} with_items: - "{{ php_source_make_command }}" - make install when: php_installed.rc != 0 - name: Ensure php executable is symlinked into a standard path. file: src: "{{ php_source_install_path }}/bin/php" dest: /usr/bin/php state: link # PHP FPM configuration. - name: Ensure php-fpm executable is symlinked into a standard path. file: src: "{{ php_source_install_path }}/sbin/php-fpm" dest: "/usr/sbin/{{ php_fpm_daemon }}" state: link when: "'--enable-fpm' in php_source_configure_command" - name: Ensure php-fpm init script is installed. template: src: fpm-init.j2 dest: "/etc/init.d/{{ php_fpm_daemon }}" mode: 0755 when: "'--enable-fpm' in php_source_configure_command" notify: restart php-fpm - name: Ensure php-fpm config directory exists. file: path: "{{ php_fpm_conf_path }}" state: directory when: "'--enable-fpm' in php_source_configure_command" - name: Ensure php-fpm config file is installed. template: src: php-fpm.conf.j2 dest: "{{ php_fpm_conf_path }}/php-fpm.conf" mode: 0644 when: "'--enable-fpm' in php_source_configure_command" notify: restart php-fpm