Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide

Ansible is an excellent automation tool that simplifies the process of configuring systems, especially for managing servers in a consistent and scalable way. In this blog post, I’ll walk you through how to enable PHP 8.1 in Apache 2 on a server (like U…


This content originally appeared on DEV Community and was authored by Devops Den

Ansible is an excellent automation tool that simplifies the process of configuring systems, especially for managing servers in a consistent and scalable way. In this blog post, I’ll walk you through how to enable PHP 8.1 in Apache 2 on a server (like Ubuntu) using Ansible.

Why PHP 8.1?

PHP 8.1 brings exciting new features, including enumerations, fibers for concurrency, readonly properties, intersection types, and significant performance improvements. Whether you're working on a new project or upgrading an existing one, moving to PHP 8.1 can enhance both code performance and development experience.

Read about how to upgrade to php8.1

Prerequisites

Before we dive in, ensure you have the following:

Ansible Installed: If not, you can install it via pip install ansible.
Access to a Remote Server: Ansible will SSH into your server, so ensure you have SSH access and the necessary permissions.
Apache Installed: Apache 2 should already be installed, but we will include the installation in the Ansible playbook in case it's not.

Step 1: Setup Inventory File

[webservers]
your_server_ip ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/your-key.pem

Step 2: Ansible Playbook to Install and Enable PHP 8.1

---
- hosts: webservers
  become: true
  tasks:
    - name: Update apt repository cache
      apt:
        update_cache: yes

    - name: Install dependencies for adding PPAs
      apt:
        name: software-properties-common
        state: present

    - name: Add PPA for PHP 8.1
      apt_repository:
        repo: ppa:ondrej/php
        state: present
        update_cache: yes

    - name: Install Apache 2
      apt:
        name: apache2
        state: present

    - name: Install PHP 8.1 and related modules
      apt:
        name:
          - php8.1
          - libapache2-mod-php8.1
          - php8.1-cli
          - php8.1-mysql
          - php8.1-xml
          - php8.1-mbstring
          - php8.1-curl
        state: present

    - name: Enable Apache PHP module
      shell: a2enmod php8.1

    - name: Restart Apache to apply PHP 8.1
      service:
        name: apache2
        state: restarted

    - name: Create a PHP info page for testing
      copy:
        dest: /var/www/html/info.php
        content: "<?php phpinfo(); ?>"

Step 3: Running the Playbook

ansible-playbook -i inventory.ini php_apache_setup.yml

Step 4: Testing PHP 8.1

http://your_server_ip/info.php

Conclusion

With this simple Ansible playbook, you can automate the process of installing and enabling PHP 8.1 in Apache 2 across your servers. This playbook can be scaled to multiple servers by simply adding them to your Ansible inventory file, saving time and ensuring consistency across deployments.

Ansible’s power lies in its simplicity, and using it to manage server configurations like installing PHP 8.1 can greatly streamline your server management tasks.

Feel free to expand this playbook by adding more tasks, such as virtual host configurations, SSL setup, or database installation.


This content originally appeared on DEV Community and was authored by Devops Den


Print Share Comment Cite Upload Translate Updates
APA

Devops Den | Sciencx (2024-09-18T05:43:03+00:00) Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide. Retrieved from https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/

MLA
" » Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide." Devops Den | Sciencx - Wednesday September 18, 2024, https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/
HARVARD
Devops Den | Sciencx Wednesday September 18, 2024 » Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide., viewed ,<https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/>
VANCOUVER
Devops Den | Sciencx - » Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/
CHICAGO
" » Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide." Devops Den | Sciencx - Accessed . https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/
IEEE
" » Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide." Devops Den | Sciencx [Online]. Available: https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/. [Accessed: ]
rf:citation
» Enabling PHP 8.1 in Apache 2 with Ansible: A Step-by-Step Guide | Devops Den | Sciencx | https://www.scien.cx/2024/09/18/enabling-php-8-1-in-apache-2-with-ansible-a-step-by-step-guide/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.