如何使用docker 安装PHP5.6版本 实现LNMP 框架

401 阅读1分钟

1、在dockerhub中下载 php版本为 5.6.40-fpm-alpine 的镜像

image.png

2、挂载php容器,因为php的文件目录需要放在www下,同时我们是基于Nginx配置,所以把Nginx下的html文件和php容器内部的www文件挂载在一起

docker run --name php -v $PWD/nginx-php/html:/www -p 9000:9000 -d php:5.6.40-fpm-alpine
docker ps 查看容器

image.png

3、如何进入php容器内部

docker exec -it 7b8df37e5839 /bin/sh

4、部署nginx

新建Nginx,挂载目录文件,我是挂载在【/opt/nginx-php】目录下
启动Nginx镜像
docker run --name nginx-php -p 9001:9001 \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/log:/var/log/nginx \
-v $PWD/html:/www \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
--privileged=true --link php:php -d nginx:1.20

注意:--link 把php的容器和nginx容器关联起来,查看www文件下的文件
进入容器内部
[root@VM-4-8-centos logs]# docker exec -it 3d1d15ce5dcc /bin/bash
root@3d1d15ce5dcc:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  www
root@3d1d15ce5dcc:/# cd www/
root@3d1d15ce5dcc:/www# ls
 admin                   doCollect.php   doMyCommentDelete.php   dongman_movie.sql   list.php            myCommentEdit.php   search.php   video
 assets                  doComment.php   doMyCommentUpdate.php   down.php            login1.php          myCommentList.php   show.php    ''$'\351\203\250\347\275\262''.txt'
 doChangeInfor.php       doLevel.php     doPraise.php            images              logout.php          nginx.htaccess      system
 doChangePassword1.php   doLogin.php     doUserReg.php  

image.png

5、配置conf.d下default.conf文件,重启nginx-php容器

server {
    listen 9001;
    server_name  10.100.100.11:9001;
    location / {
        root   /www;
        index  index.php;
    }
    location ~ .php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /www$fastcgi_script_name;
        include        fastcgi_params;
    }
}

6、配置完成之后,在浏览器启动 10.100.100.11:9001后可能会发现如下错误

pic.jpg

7、在php的代码中如用如下的数据库连接方式

function connect(){ 
    //连接mysql
    $link=mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_DBNAME);
    //设置字符集
    mysqli_set_charset($link,DB_CHARSET);
    return $link;
 }

8、所以我们需要进入php容器下载mysql的插件,我的容器名字叫php

docker exec -it php /bin/sh

cd /usr/local/bin

#安装pdo_mysql扩展
./docker-php-ext-install pdo_mysql
#安装mysqli扩展
./docker-php-ext-install mysqli

image.png

9、重新启动php容器

留个赞给个鼓励,谢谢看官老爷