docker-安装nginx+php7.4+mysql5.7

  记一次折腾docker的LNMP环境

拉取所有需要的软件库

  其中php拉取版本为7.4版本
  mysql拉取5.7版本

docker pull nginx
docker pull php:7.4-fpm
docker pull mysql:5.7

创建好本地目录,用作存放配置及数据

  主要存放nginx配置文件,网站文件以及mysql数据库的数据。

mkdir -p /usr/local/lnmp/nginx /usr/local/lnmp/mysql/data

配置nginx

  首先我们需要先获取nginx的默认配置,先启动一个默认容器

  以nginx的名称启动一个nginx镜像的容器

docker run -d --name nginx nginx

  然后用docker的cp命令将配置以及默认站点文件复制出来

docker cp nginx:/etc/nginx/conf.d /usr/local/lnmp/nginx/
docker cp nginx:/usr/share/nginx/html /usr/local/lnmp/nginx/

  获取完毕后停止nginx,并重新创建容器。

docker stop nginx
docker rm nginx

  然后创建运行一个名为nginx容器时根据需要进行端口映射,并把创建目录映射

  下面命令将容器内的80端口映射到本机8080,443映射到4430

  /usr/share/nginx/html映射到本机/usr/local/lnmp/nginx/html,

  /etc/nginx/conf.d映射到/usr/local/lnmp/nginx/conf.d

  之后启动该容器时,会加载本机目录下的配置及站点

docker run -d --name nginx -p 8080:80 -p 4430:443 -v /usr/local/lnmp/nginx/html:/usr/share/nginx/html -v /usr/local/lnmp/nginx/conf.d:/etc/nginx/conf.d nginx

  之后修改nginx的配置以支持php,、

  打开conf.d目录下的default.conf,将php配置去掉注释

  然后将fastcgi_param SCRIPT_FILENAME参数改为路径$fastcgi_script_name
  
  具体配置如下:

    location ~ \.php$ {
        root           html;
        fastcgi_pass   172.17.0.2:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$fastcgi_script_name;
        include        fastcgi_params;
    }

  注意这个路径为你实际nginx内的网页目录路径

配置mysql5.7

  以mysql的名称启动一个mysql5.7镜像的容器,并设置root密码,以及目录映射,

  docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  -v /usr/local/lnmp/mysql/data:/var/lib/mysql mysql:5.7

  启动完成后进入到容器中,使用mysql命令连接数据库

docker exec -it mysql /bin/bash
mysql -u root -p

  连接成功后创建一个data的数据库,并用grant给data用户授权,让data用户可以对data数据库进行所有操作。

  注:由于新数据库没有data这个用户,使用grant授权的同时会自动新建。此处语句含义请参考mysql数据库命令

create database 库名称 character set utf8 collate utf8_bin;
grant all privileges on data.* to data@'%' identified by '0Zelt.cn';

创建完成后使用quit命令退出mysql,exit命令退出容器。

php配置

  以php74的名称启动一个php74镜像的容器,并且设置映射端口、目录

  映射目录必须为nginx容器内设置的网站路径

docker run -d --name php74 -p 9000:9000 -v /usr/local/lnmp/nginx/html:/usr/local/nginx/html php:74fpm

  运行完成后如果有未知错误,请修改容器内的/usr/local/etc/php-fpm.d/www.conf的配置文件

  将配置文件中的listen值修改为0.0.0.0::9000

  之后可以按需添加php的扩展

  点击跳转 命令整合 docker-php容器添加gd库、pdo库、zip库支持

docker-php容器添加gd库支持

  首先进入到容器中,安装gd库的依赖软件包

apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev

  然后运行下面命令进行gd库扩展的编译与安装

docker-php-source extract
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
docker-php-ext-install gd
docker-php-ext-enable gd

  安装完成后修改配置文件/usr/local/etc/php/php.ini-development

  将extension=gd2前面的分号去掉(去掉注释),保存后退出容器重启php容器即可

docker-php容器添加pdo_mysql库支持

  进入到容器中,运行命令进行安装

docker-php-ext-install pdo pdo_mysql

  安装完成后修改配置文件/usr/local/etc/php/php.ini-development

  将extension=pdo_的行前面的分号去掉(去掉注释),保存后退出容器重启php容器即可

  可以按需开启

docker-php容器添加zip库支持

  首先进入到容器中,安装zip库的依赖软件包

apt install -y zlib1g-dev libzip-dev

  然后运行下面命令进行安装

docker-php-ext-install zip

  安装完成后退出容器重启php容器即可

命令整合 docker-php容器添加gd库、pdo库、zip库支持

apt install -y vim libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev zlib1g-dev libzip-dev
docker-php-source extract
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
docker-php-ext-install gd
docker-php-ext-enable gd
docker-php-ext-install pdo pdo_mysql
docker-php-ext-install zip
vim /usr/local/etc/php/php.ini-development

  配置文件将extension=pdo_的行、extension=gd2的行前面的注释符号删除

  保存后退出容器,重启容器即可

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容