Skip to content
Snippets Groups Projects
php53.yml 3.94 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: false
    
    - block:
    
    jurgenhaas's avatar
    jurgenhaas committed
      - 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:
    
    jurgenhaas's avatar
    jurgenhaas committed
          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'
    
    jurgenhaas's avatar
    jurgenhaas committed
          src='/usr/lib/libc-client.a'
          dest='/usr/lib/x86_64-linux-gnu/libc-client.a'
    
      - 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:
    
    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
    
    
    jurgenhaas's avatar
    jurgenhaas committed
      - 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'
    
    
    jurgenhaas's avatar
    jurgenhaas committed
    - 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'
    
    jurgenhaas's avatar
    jurgenhaas committed
        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'
    
    jurgenhaas's avatar
    jurgenhaas committed
        - 'fpm'