blog

Deploying PHP Websites with Docker Containers and MySQL Connectivity

Share:

In modern web development, Docker has revolutionized the way developers build, ship, and run applications. When it comes to PHP-based websites, Docker containers offer a convenient and efficient way to manage dependencies and streamline the development process. Integrating MySQL with PHP in a Dockerized environment further enhances the development workflow, allowing for seamless database connectivity. In this article, we’ll explore how to set up a PHP website using Docker containers and integrate it with MySQL using PHP MySQL Connector.

Understanding Docker Containers:

Docker containers provide a lightweight, portable, and consistent environment for running applications. They encapsulate the application along with its dependencies, ensuring that it runs consistently across different environments. Docker containers are isolated from each other and share the host OS kernel, making them efficient and resource-friendly.

Setting Up a PHP Website with Docker:

To get started, you’ll need Docker installed on your system. Once Docker is set up, follow these steps to create a PHP website using Docker containers:

➤ Create a directory for your project and navigate into it.

➤ Create a file named Dockerfile in the project directory. This file will contain instructions for building the Docker image for your PHP website. Here’s a basic example of a Dockerfile for a PHP website:

# Use the official PHP image as the base image
FROM php:7.4-apache

# Copy the PHP files into the container
COPY src/ /var/www/html/

# Expose port 80
EXPOSE 80

➤ Create a directory named src inside your project directory and place your PHP files inside it.

➤ Build the Docker image using the following command:

docker build -t php-website .

➤ Once the image is built, you can run a container using the following command:

docker run -d -p 8080:80 --name php-container php-website

This command will start a container named php-container based on the php-website image and map port 8080 on the host to port 80 on the container.

Integrating MySQL with PHP:

Now that you have a basic PHP website running in a Docker container, let’s integrate it with MySQL using PHP MySQL Connector. PHP MySQL Connector is a PHP extension that provides an interface for connecting to MySQL databases from PHP scripts.

➤ Update your Dockerfile to install the PHP MySQL extension. Modify your Dockerfile as follows:

# Use the official PHP image as the base image
FROM php:7.4-apache

# Install PHP MySQL extension
RUN docker-php-ext-install mysqli

# Copy the PHP files into the container
COPY src/ /var/www/html/

# Expose port 80
EXPOSE 80

➤ Update your PHP code to connect to the MySQL database using PHP MySQL Connector. Here’s an example of how you can connect to a MySQL database from a PHP script:

In this example, replace “mysql-container” with the hostname of your MySQL container, and update the username, password, and database name as needed.

➤ Start a MySQL container using the following command:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=mydatabase mysql:5.7

This command will start a MySQL container named mysql-container with the root password set to “password” and create a database named “mydatabase”.

➤ Modify the PHP code in your PHP files to connect to the MySQL database using the appropriate credentials.

➤ Rebuild your Docker image and run a new container as described earlier.

By utilizing Docker containers and PHP MySQL Connector, you can simplify the development and deployment of PHP websites while ensuring seamless connectivity to MySQL databases. Docker containers provide a consistent environment for running your PHP applications, while PHP MySQL Connector facilitates easy integration with MySQL databases. By following the steps outlined in this article, you can quickly set up a PHP website with MySQL integration using Docker containers, making the development process more efficient and scalable.

Fill-in the form below to reach out to us with your project👇

Related articles

Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon
Circle icon

get in touch

EVEN IF YOU DON'T YET KNOW WHERE TO START WITH YOUR PROJECT - THIS IS THE PLACE

Drop us a few lines and we'll get back to you within one business day.

Thank you for your inquiry! Someone from our team will contact you shortly.
Where from have you heard about us?
Clutch
GoodFirms
Crunchbase
Googlesearch
LinkedIn
Facebook
Your option
I have read and accepted the Terms & Conditions and Privacy Policy
bracket icon
bracket icon
bracket icon
bracket icon
bracket icon
bracket icon
slash icon
slash icon
slash icon
slash icon
slash icon
slash icon
bracket icon
bracket icon
bracket icon
bracket icon
bracket icon
bracket icon