May 28, 2017
2 min read

Local Development Environment with Docker for PHP (Part 3)

Setting Multiple PHP runtime

In our last post we’ve successfully setup a development environment to develop applications in Laravel, though this setup can be use to build any PHP application. Now suppose for whatever use case if we need to test our application for different PHP version than our current one, it’d be very complex and messier process to do it in our host machine with native setup. But with docker we can do this without any hassle (also it can be achieved in many other ways e.g vagrant).

Install PHP 5.6

We’ll install php 5.6 version. Everything will be same as the way we installed php 7 earlier. We’ll use php:5.6-fpm image from docker hub.

Create a conatiner for php 5.6Create a conatiner for php 5.6

Do not select any network for the container right now, we will do it later.

We will map our sites directory to the /var/www directory in the container.

Map project directory in Volumes tabMap project directory in Volumes tab

Finally in Command tabs put /var/www as value in Working Dir field

Now start the container by hitting start container button. Docker will pull the image from docker hub registry and then start a container by php-5.6 name.

Assigning an alias

Now we’ll assign a alias called php for this container so that our nginx configuration works for both php-7 and php-5.6 container. If you look in the nginx config for any application we are forwarding all request from nginx to php:9000. Assigning a alias for php-5.6 container will allow us use the same config for both php container. First stop the container and then run the below command from the command line (portainer doesn’t have an option for assigning alias yet)

docker network connect --alias=php php php-5.6

So the above command connect a container to a network, we’re connecting php-5.6 container to php network and assigning a alias php. Now start the container from portainer. Now you can run all the php application in php 5.6 version. Now if you want to run again in php 7 runtime first stop the php-5.6 container and then start the php 7 container.

Conclusion

Using docker you can easily test your app for different php version above mention way. In next post we’ll see how we to run laravel asset compiling package elixir or mix to compile our frontend stuff.

Part-1

Part-2

Comments:
If you found any error or have any suggestion let me know in the comments.