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
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

    暂无评论内容