您的位置 首页 php

Docker快速搭建PHP开发环境详细教程

使用docker主要有以下好处:

1. docker容器之间相互独立,可以在一个服务器上面搭建多套环境。

2. docker容器内有已经部署好的软件安装环境,搭建集成环境相当方便。

本文就按照docker标准,搭建一个基于LAMP架构的PHP运行环境(MySQL、 nginx 、PHP_FPM)。

安装docker

1. 安装docker,使用如下命令。

yum install docker
 

2. 查看docker版本,检测是否安装成功。

docker --version
 

3. 设置docker加速镜像源,通过

vim /etc/docker/daemon.json设置如下内容。

{
"registry-mirrors":[""]
}
 

docker安装MySQL

1. 从docker镜像库中拉取一个MySQL的镜像到服务器。

docker pull mysql:5.6
 

2. 然后输入命令 docker images 就可以查看查看我们刚刚拉下来的mysql的镜像。

3. 运行并启动一个容器,通过以下命令。

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456abc --name mysql_1 mysql:5.6
 

参数说明:

-d 让容器在后台运行。

-p 添加主机到容器的 端口映射

3306:3306 把容器内的3306端口映射到主机的3306端口,前面是主机的端口,后面是容器端口。

-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置。

-MYSQL_ROOT_PASSWORD 设置访问MySQL的密码为123456abc。

–name 容器的名字,随便取,但是必须唯一。

4. 接下来我们就可以通过命令docker ps -a 查看我们刚刚创建的容器。

这里我们可以看到我的容器状态的Up状态,表示容器正在运行,并且把可以看到主机和容器的端口映射关系,如果容器启动情况不正确,可以查看日志,通过以下命令命令。

docker logs -f -t --since="2018-09-20" --tail=10 mysql_1
 

接下来,如果我们想进入刚刚创建的容器中,输入如下命令。

附加:进入容器

docker exec -ti mysql_1 /bin/bash1
 

参数说明 :

-t 在容器里生产一个伪终端。

-i 对容器内的标准输入 (STDIN) 进行交互。

容器中默认是没有vim的,所以我们首先要安装vim,需要注意的是安装前记得先执行apt update命令,不然安装会出现问题。

进入到mysql容器后,我们通过创建一个远程可以访问的用户,这样我们就能从别的主机访问到我们的数据库了。

Docker安装 php-fpm

1. 拉取php-fpm的镜像。

docker pull php:7.0-fpm
 

2. 再创建一个php-fpm容器,开启端口为9000,同时与上面安装的mysql进行连接,才能够协同工作。

docker run -d -v / var /nginx/www/html:/usr/share/nginx/html -p 9000:9000 --link mysql_1:mysql --name abc_phpfpm php:7.0-fpm
 

参数说明:

-d 让容器在后台运行。

-p 添加主机到容器的端口映射。

-v 添加目录映射,即主机上的。

/var/nginx/www/html和容器中/var/www/html目录是同步的。

–name 容器的名字。

–link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务。

备注:这里如果不指定–link参数其实也是可以得,因为容易本身也是有ip的且唯一,所以我们也可以直接利用ip去访问容器。

安装 pdo 扩展

#进入容器

docker exec -it phpfpm_1 /bin/bash
 

#安装pdo

docker-php-ext-install pdo_mysql
 

#查看pdo是否安装成功

php -m
 

安装 redis 扩展,依次执行如下命令

#下载资源包

curl -L -o /tmp/redis.tar.gz 

 

#解压资源包

tar xfz /tmp/redis.tar.gz
rm -r /tmp/redis.tar.gz
mkdir -p /usr/src/php/ext
mv phpredis-3.1.3 /usr/src/php/ext/redis
 

#安装扩展

docker-php-ext-install redis
 

docker安装nginx

1. 首先,从仓库里去拉取一个nginx镜像。

docker pull nginx:1.10.3
 

2. 接下来运行nginx容器。

docker run -d -p 80:80 -p 443:443 -v 
/var/nginx/www/html:/usr/share/nginx/html --link 
phpfpm_1:phpfpm --name nginx_1 nginx:1.10.3
 

3. 配置nginx配置文件default.conf,在配置文件中增加以下行。

location ~ .+.php($|/) {
 set $script $uri;
 set $path_info "";
 if ($uri ~ "^(.+.php)(/.+)") {
 set $script $1;
 set $path_info $2;
 }
 root /usr/share/nginx/html;
 fastcgi_pass phpfpm:9000;
 fastcgi_index index.php?IF_REWRITE=1;
 fastcgi_param PATH_INFO $path_info;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param SCRIPT_NAME $script;
 include fastcgi_params;
}
 

最后,在/var/nginx/www/html目录下面新建一个index.php文件看看能不能访问呢?今天的内容就给大家讲解到这里,有什么问题的欢迎下方留言哟!

每天进步一点点,更多精彩内容,欢迎关注公众号“编程社”!!!

文章来源:智云一二三科技

文章标题:Docker快速搭建PHP开发环境详细教程

文章地址:https://www.zhihuclub.com/149758.shtml

关于作者: 智云科技

热门文章

评论已关闭

4条评论

  1. tacrolimus increases toxicity of fluvastatin by Other see comment Non classical ER signalling can thereby trigger signal transduction pathways such as Ras mitogen activated protein kinase MAPK and phosphoinositide 3 kinase PI3K Akt 27

  2. Using only a 21 gauge needle, aseptically withdraw the required amount of Docetaxel Injection 20 mg docetaxel mL with a calibrated syringe and inject via a single injection one shot into a 250 mL infusion bag or bottle of either 0

  3. Alliance CALGB 80802 compared sorafenib alone to sorafenib in combination with doxorubicin in 346 patients with advanced HCC

网站地图