# see https://www.howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-ubuntu-12.10 --- # file: roles/php/tasks/php53.yml - name: "Ensure PHP53 config directory" file: dest='{{ item }}' state='directory' with_items: - '/etc/{{ php_base_dir }}/fpm/pool.d/' - name: "Check PHP 5.3 Requirement" shell: php --version register: php_version_available changed_when: false - block: - name: "Package Preferences" template: src='preferences/{{ item }}' dest='/etc/apt/preferences.d/{{ item }}-pin' owner='root' group='root' mode='644' with_items: - 'openssl' - 'libssl' - name: "Install Packages" apt: pkg={{ packages }} state=present vars: packages: - 'autoconf2.13' - 'automake1.4' - 'build-essential' - 'libc-client2007e' - 'libc-client2007e-dev' - 'libfcgi-dev' - 'libfcgi0ldbl' - 'libfreetype6-dev' - 'libgif-dev' - 'libgif4' - 'libjpeg-progs' - 'libjpeg62-dbg' - 'libjpeg8' - 'libjpeg8-dev' - 'libmcrypt-dev' - 'libmysqlclient-dev' - 'libpcre++-dev' - 'libpcre3-dev' - 'libpng-dev' - 'libssl-dev' - 'libx11-dev' - 'libxau-dev' - 'libxcb1-dev' - 'libxdmcp-dev' - 'libxml2-dev' - 'libxml2-dev' - 'libxpm-dev' - 'x11proto-core-dev' - 'x11proto-input-dev' - 'x11proto-kb-dev' - 'xtrans-dev' - name: "Link Client Lib" file: src='/usr/lib/libc-client.a' dest='/usr/lib/x86_64-linux-gnu/libc-client.a' state='link' - name: "Make sure an empty directory /tmp/php53 exists" file: path='/tmp/php53' state='{{ item }}' with_items: - absent - directory - name: "Download PHP 5.3" get_url: url='http://in1.php.net/distributions/php-5.3.29.tar.bz2' dest='/tmp/php-5.3.29.tar.bz2' - name: "Unpack PHP 5.3" unarchive: src='/tmp/php-5.3.29.tar.bz2' dest='/tmp/php53' copy=no - name: "Compile PHP 5.3" shell: "{{ item }} chdir=/tmp/php53/php-5.3.29" with_items: - ./configure --with-libdir=/lib/x86_64-linux-gnu --enable-fpm --enable-mbstring --enable-sockets --with-zlib --enable-zip --with-imap-ssl --with-imap --with-curl --with-mcrypt --with-gd --with-mysql --with-pdo-mysql --with-mysqli --with-gettext --with-jpeg-dir=/usr --with-png-dir=/usr --with-kerberos --with-openssl --disable-cgi - make - make install - name: "Create PHP53 Start Script" template: src='etc-init-d-php53-fpm' dest='/etc/init.d/php-fpm' owner='root' group='root' mode='755' - name: "Add PHP-FPM to Boot-List" command: update-rc.d php-fpm defaults when: '"PHP 5.3.29" not in php_version_available.stdout' - name: "Copy PHP53 Libraries" copy: src='php53/libs/{{ item.file }}' dest='{{ php53.libdir }}/{{ item.file }}' owner='root' group='root' mode='644' with_items: '{{ php53.libraries }}' - name: "Ensure PHP53 Library Links" file: src='{{ php53.libdir }}/{{ item.file }}' dest='{{ php53.libdir }}/{{ item.link }}' state='link' owner='root' group='root' mode='644' with_items: '{{ php53.libraries }}' - name: "Ensure extra Library Links" file: src='{{ item.src }}' dest='{{ php53.libdir }}/{{ item.link }}' state='link' owner='root' group='root' mode='644' with_items: '{{ php53.liblinks }}' - name: "Copy PHP53 Modules" copy: src='php53/{{ item }}.so' dest='{{ php53.extdir }}/{{ item }}.so' owner='root' group='root' mode='644' with_items: '{{ php53.modules }}' - name: "Create PHP53 INI Files" template: src='etc-php5-apache2-php.ini' dest='/etc/{{ php_base_dir }}/{{ item }}/php.ini' owner='root' group='root' mode='644' with_items: - 'cgi53' - 'cli53' - 'fpm'