docker部署lnmp环境

docker部署lnmp环境
1、安装顺序: mysql-redis-php-nginx 。
2、容器关联: php关联mysql; nginx关联php, 被关联的容器先安装 。

在用docker部署lnmp环境之前先安装docker
# yum install -y yum-utils device-mapper-persistent-data lvm2 libsemanage-python libselinux-utils
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum makecache fast
# yum install docker-ce -y
# systemctl start docker && systemctl enable docker
# vim /etc/docker/daemon.json
{

"registry-mirrors": ["https://aa25jngun.mirror.aliyuncs.com"]

}

# systemctl restart docker

(1)、安装 mysql
# docker pull mysql:5.7
# docker run -d -p 3306:3306 -v /data/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yang123.aa --restart=always --name mysql5.7 mysql:5.7

(2)、安装 redis
1、拉取redis镜像
# docker pull redis:5.0.2
2、运行redis镜像
# mkdir -p /data/docker/redis/conf
# touch redis.conf

# docker run --restart=always -d --privileged=true -p 6379:6379 -v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/docker/redis/data:/data:rw --restart=always --name redis5.0.2 redis:5.0.2 redis-server /etc/redis/redis.conf --appendonly yes

--restart=always -> 开机启动容器,容器异常自动重启
-d -> 以守护进程的方式启动容器
--privileged=true -> 提升容器内权限
-p 6379:6379 -> 绑定宿主机端口
-v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf -> 映射配置文件
-v /data/docker/redis/data:/data -> 映射数据目录
--name redis -> 指定容器名称
--appendonly yes -> 开启数据持久化

3、进去redis容器,查看redis版本
docker exec -it redis bash
redis-server -v

(3)、安装php

安装php
# docker pull php:7.4-fpm
# mkdir -p /data/docker/nginx/www/html
# docker run -d -v /data/docker/nginx/www/html:/var/www/html -p 9000:9000 --link mysql5.7 --link redis5.0.2 --privileged --restart=always --name php7.4 php:7.4-fpm

(4)、安装php扩展

扩展模块配置文件存放位置 /usr/local/etc/php/conf.d/
扩展模块存放位置 /usr/local/lib/php/extensions/no-debug-non-zts-20190902

1、安装pdo_mysql扩展

进入php容器:docker exec -it php7.4 /bin/bash
在php容器中安装pdo扩展:docker-php-ext-install pdo_mysql

2、安装 php redis扩展
PHP容器默认是没有redis扩展的。
方法1:
进入php容器执行下面操作:
cd /
apt-get update && apt-get install make cmake gcc g++ bison libncurses5-dev build-essential vim autoconf
下载redis
curl -L -o /tmp/redis.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2
按步骤执行
cd /tmp
tar -xzf redis.tar.gz
cd /usr/src
mkdir php
cd /usr/src/php
mkdir ext
mv phpredis-5.0.2 /usr/src/php/ext/phpredis
查找phpize位置及php-config位置
whereis phpize
whereis php-config
进入phpredis文件夹下
cd /usr/src/php/ext/phpredis
执行以下命令
/opt/bitnami/php/bin/phpize
./configure --with-php-config=/opt/bitnami/php/bin/php-config
make && make install
查找php.ini位置
whereis php.ini
/opt/bitnami/php/etc/php.ini
在php.ini里增加extension=redis.so
extension=redis.so

方法2:
生成php扩展文件目录/usr/src/php/ext
进入php容器执行下面操作:
docker-php-source extract
安装redis扩展
curl -L -o /tmp/reids.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2
cd /tmp
tar -zxvf reids.tar.gz
mv phpredis-5.0.2/ phpredis
cp -r phpredis/ /usr/src/php/ext/
docker-php-ext-install phpredis
php -m |grep redis

(5)、安装nginx
# docker pull nginx:1.17.8
# docker run -d -p 80:80 -v /data/docker/nginx/www/html:/var/www/html --link php7.4 --privileged --restart=always --name nginx1.17.8 nginx:1.17.8

进入nginx容器
# docker exec -ti nginx1.17.8 /bin/bash

修改配置文件 /etc/nginx/conf.d/default.conf 修改的地方如下:
...
location / {
root /var/www/html;
index index.html index.htm;
}
...
location ~ \.php$ {
root /var/www/html;
fastcgi_pass php7.4:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

退出nginx容器
执行
# docker restart php7.4
# docker restart nginx1.17.8

(6)、lnmp测试
写一个phpinfo文件进行测试
# echo '' > /data/docker/nginx/www/html/test.php
通过web访问test.php进行测试

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部