How to use Redis docker php ext install and enable Redis CMD
Posted December 13, 2023
Redis is an in-memory data structure store. It’s easily integrated into the PHP app. When Running Redis as a Docker Container, you’ll need the Redis extension installed.
This guide demystifies the steps of using docker php ext install (pecl) Redis and docker php ext enable Redis commands. These commands lets enable the Redis extension within your Dockerfile, and into Dockerized PHP applications.
Now, get ready to to understand and learn how Docker uses the docker php ext command to install and enable Redis within Docker and Docker.
Step 1: Installing Redis Extension with docker php ext Install Redis
The docker php ext command works well if used with a Dockerfile. Assume your standard PHP app structure is as follows:
php-redis/
β βββ redis.dockerfile
β βββ docker-compose.yml
βββ redis/
βββ index.php
The Dockerfile
installs and enable the Redis PHP extension with the following Docker commands:
FROM php:7.0-apache
# Use pecl to get Redis extension ready
RUN pecl install redis \
# Redis is installed, enable it
&& docker-php-ext-enable redis
- Here, youβre using Apache to run PHP 7.0 and you can update the version if needed.
- To install Redis on Docker, you use RUN pecl install redis.
- Once installed, you must enable the same Redis Extension using the docker-php-ext-enable redis command.
Step 2: Creating Docker Container with Redis
To put docker php ext install redis and docker php ext enable redis commands into action, let’s create a simple Docker container and and learn how to use the Redis Extension with PHP on Docker.
Go ahead and create a PHP and Redis Containers in the docker-compose.yml
example file with the following code sample:
version: '3'
services:
# PHP Apache Container
php-apache:
build:
# Dockerfile path and the matching name
context: .
dockerfile: redis.dockerfile
ports:
# Map port 4000 to access the PHP container
- "4000:80"
# Add code files to Docker
volumes:
- ./redis:/var/www/html
depends_on:
# redis-server container will start first
- redis
# Redis Server Container
redis-server:
# Using the official Redis image from Docker Hub
image: redis
ports:
# Mapping port 6379 on host to port 6379 in the container
- "6379:6379"
In you docker-compose file:
- You must add the
./redis
directory and share it so Docker can access it. - PHP container must use
depends_on
. This will allow Docker to always ensure thatredis-server
is Running before serving your PHP Redis script. - Redis must be exposed to port
6379
so that PHP can connect to it through this port.
Step 3: Using Redis Docker Extension with PHP on Docker
Based on your file structure, the PHP code will be hosted in the redis/index.php
file as follows:
<?php
$redis = new Redis();
$redis->connect('redis-server', 6379);
echo "Connection to server successfully <br>";
echo "Server is running: " . $redis->ping() . "<br>";
?>
Based on this script you must note that $redis->connect('redis-server', 6379);
is the most import here because:
redis-server
must be your container running Redis, and you named it in yourdocker-compose.yml
file.6379
is the Redis port running on Docker.
Step 4: Building and Running Redis PHP Docker Container
Run the following command to package Redis Extension and PHP on Docker:
# Run on detouch mode with -d flag
docker-compose up -d --build
Now Navigate to http://localhost:4000
and access your app as follows:
This confirms you a successful container to excute docker php ext install redis and docker php ext enable redis Commands within Docker with access to PHP
Related: Get into this Xdebug docker php ext install and enable command Guide.
Conclusion
You’ve crafted a simple Redis PHP container, showcasing the docker php ext install redis and docker php ext enable redis commands with Docker. This guide serves as a foundational resource, illustrating Redis integration into Dockerized PHP applications. I hope you found these steps helpful.