记一次折腾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的行前面的注释符号删除
保存后退出容器,重启容器即可
暂无评论内容