Skip to content
Snippets Groups Projects
php53.yml 3.85 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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: no
    
      - name: Package Preferences
    
    jurgenhaas's avatar
    jurgenhaas committed
        template:
    
          src: preferences/{{ item }}
          dest: /etc/apt/preferences.d/{{ item }}-pin
          owner: root
          group: root
          mode: 0644
    
    jurgenhaas's avatar
    jurgenhaas committed
        with_items:
    
          - openssl
          - libssl
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    
      - name: Install Packages
    
          pkg: '{{ packages }}'
          state: present
    
            - 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
    
          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
    
          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 }}'
        args:
          chdir: /tmp/php53/php-5.3.29
    
        with_items:
    
    jurgenhaas's avatar
    jurgenhaas committed
          - ./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
    
    jurgenhaas's avatar
    jurgenhaas committed
        template:
    
          src: etc-init-d-php53-fpm
          dest: /etc/init.d/php-fpm
          owner: root
          group: root
          mode: 0755
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    
      - name: Add PHP-FPM to Boot-List
    
        command: update-rc.d php-fpm defaults
    
    
      when: php_version_available and 'PHP 5.3.29' not in php_version_available.stdout
    
    - name: Copy PHP53 Libraries
    
    jurgenhaas's avatar
    jurgenhaas committed
      copy:
    
        src: php53/libs/{{ item.file }}
        dest: '{{ php53.libdir }}/{{ item.file }}'
        owner: root
        group: root
        mode: 0644
    
    jurgenhaas's avatar
    jurgenhaas committed
      with_items: '{{ php53.libraries }}'
    
    
    - name: Ensure PHP53 Library Links
    
    jurgenhaas's avatar
    jurgenhaas committed
      file:
    
        src: '{{ php53.libdir }}/{{ item.file }}'
        dest: '{{ php53.libdir }}/{{ item.link }}'
        state: link
        owner: root
        group: root
        mode: 0644
    
    jurgenhaas's avatar
    jurgenhaas committed
      with_items: '{{ php53.libraries }}'
    
    
    - name: Ensure extra Library Links
    
    jurgenhaas's avatar
    jurgenhaas committed
      file:
    
        src: '{{ item.src }}'
        dest: '{{ php53.libdir }}/{{ item.link }}'
        state: link
        owner: root
        group: root
        mode: 0644
    
    jurgenhaas's avatar
    jurgenhaas committed
      with_items: '{{ php53.liblinks }}'
    
    
    - name: Copy PHP53 Modules
    
        src: php53/{{ item }}.so
        dest: '{{ php53.extdir }}/{{ item }}.so'
        owner: root
        group: root
        mode: 0644
    
      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: 0644
    
      with_items:
    
        - cgi53
        - cli53
        - fpm