How to install php project with docker: 1. Download the required image file; 2. Prepare the nginx configuration file php.conf in the nginx/conf directory; 3. Create the docker-compose.yml orchestration file; 4. Install the extension.
The operating environment of this article: macOS10.15 system, PHP5.6 version, macbook pro 2020 computer.
How to install php project with docker?
Use Docker to quickly build a PHP development environment
Recently a colleague came to me and hoped that I would add something to a PHP website I wrote a long time ago. Function, the local development environment built using xampp
was developed at that time, but now my laptop has been updated and there is no development environment at that time. In line with the principle of not installing useless software on the computer, I thought about whether I could use Docker to build a local development environment. Therefore, this article introduces how to quickly build a local PHP
development environment based on Docker for reference by students in need. use.
Directory
This article is based on
5.6-fpm-alpine3.8
andngingx
to build a PHP development environment under Mac.
First download the required image file
$ docker pull php:5.6-fpm-alpine3.8 $ docker pull nginx $ docker pull mysql
Users need to go to hub.docker.com, search for PHP and find themselves through tags The version I want to install is because my project has been developed for a long time and cannot support the latest PHP, so I installed version 5.6.
We need to prepare a working directory, such as lnmp
, and prepare the website root directory, Nginx configuration file directory, and Nginx log directory in the working directory.
$ mkdir lnmp $ cd lnmp $ mkdir -p nginx/www nginx/logs nginx/conf
Create a new index.php file in the newly created www directory to check whether the PHP environment is successfully established.
<?php phpinfo(); ?>
Prepare the nginx
configuration file php.conf in the nginx/conf
directory.
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }
Create docker-compose.yml
arrangement file in the working directory.
For a detailed introduction to
docker-compose
, please refer to my previous article Docker-compose usage introduction.
version: "2.1" services: nginx: image: nginx ports: - "80:80" volumes: - ~/Projects/sh-valley/docker-conf/lnmp/nginx/www:/usr/share/nginx/html - ~/Projects/sh-valley/docker-conf/lnmp/nginx/conf:/etc/nginx/conf.d - ~/Projects/sh-valley/docker-conf/lnmp/nginx/logs:/var/log/nginx networks: - lnmp-network php: image: php:5.6-fpm-alpine3.8 volumes: - ~/Projects/sh-valley/docker-conf/lnmp/nginx/www:/www networks: - lnmp-network mysql: image: mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=123456 networks: - lnmp-network networks: lnmp-network:
At this point, we have completed all the preparation work and can start to check the effect immediately.
$ docker-compose up -d Creating network "lnmp_php-network" with the default driver Creating lnmp_nginx_1 ... done Creating lnmp_php_1 ... done
You will see the familiar phpinfo
interface immediately.
Defaultphp
The extensions provided in the image are relatively few, lacking such as mysql, gd2
and other commonly used extensions, so we need to install and enable the extension ourselves.
First enter the php
container and use the php -m
command to check what extensions are available locally.
You can use the docker-php-ext-install
command to install the extension.
$ docker-php-ext-install mysql
After the extension is installed, it can be enabled in php.ini
. We can see from phpinfo
that the default php.ini
is not enabled in the container environment. You can /usr/local/etc/php
##php.ini-development is copied to
php.ini. Enable the extensions you need by modifying the configuration in
php.ini. Below are several extension installation commands for your reference.
Create a
/usr/src/php directory in the container
Enable PHP extensions, saving us the process of manually editing
php.ini
install and Enable PHP extension
docker-php-ext-install
and is used when you need to customize the configuration of the extension
The above is the detailed content of How to install php project with docker. For more information, please follow other related articles on the PHP Chinese website!