小知识:Docker安装LNMP环境的详细过程(可部署TP项目)

Docker安装LNMP环境

1、安装Docker

?
1
2
3
4
yum install docker
# 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker

2、 安装nginx

?
1
2
3
4
5
# 拉取管方镜像
docker pull nginx
# 创建并运行容器,映射端口为80
docker run –name nginx -p 80:80 -d nginx
# 访问IP,nginx能够正常运行

3、 安装PHP

?
1
2
# 拉取管方镜像,这里拉取的是php7,根据自己所需拉取
docker pull phpdockerio/php7-fpm

4、 查看nginx运行路径

?
1
2
3
4
5
6
7
8
# 进入nginx容器
docker exec -it nginx bash
# 查看nginx配置文件
cat /etc/nginx/conf.d/default.conf -n
# 找到location / {
#     root    /usr/share/nginx/html;#这是nginx默认运行路径
#     index   index.html index.html;
# }

5、 创建并运行php容器

?
1
docker run –name phpfpm -d 9000:9000 -v /var/www/html:/usr/share/nginx/html -d phpdockerio/php7-fpm

6、 进入php容器,创建index2.php测试文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 进入php容器
docker exec -it phpfpm bash
# 进入运行目录
cd /usr/share/nginx/html
# vim 创建index2.php
# 因为docker没有安装vim,此时运行
apt-get update
apt-get install vim
cat << EOF > /root/.vimrc
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
EOF
# 创建index2.php
vim index2.php
<?php
echo 1;
?>
# esc :wq 保存退出

7、 获取到phpfpm 这个容器的ip

?
1
2
docker inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} phpfpm
# 172.17.0.3

8、配置nginx 以便支持php文件访问

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
docker exec -it nginx bash
# 进入nginx配置目录
cd /etc/nginx/conf.d
# 安装vim
apt-get update
apt-get install vim
# 编辑default.conf配置文件
vim default.conf
# 在default.conf中加入
location / {
root          /usr/share/nginx/html/tp5.1/public;#不是tp的话去掉/tp5.1/public
index         index.html index.htm index.php;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ \.php$ {
root            /usr/share/nginx/html/tp5.1/public;#不是tp的话去掉/tp5.1/public
fastcgi_pass    172.17.0.3:9000;
fastcgi_index   index.php;
fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param   PATH_INFO $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_split_path_info     ^((?U).+\.php)(/?.+)$;
include         fastcgi_params;
}
# 保存退出,重启nginx
docker restart nginx
# 访问ip/index2.php,成功

9、 拉取Mysql镜像

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker pull mysql
# 创建并运行mysql容器
docker run –name mysql -p 3306:3306 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#这是使用navicat连接会报错
docker exec -it mysql /bin/bash
mysql -uroot -p
#授权
GRANT ALL ON *.* TO root@%;
#刷新权限
flush privileges;
#更新加密规则
ALTER USER root@localhost IDENTIFIED BY password PASSWORD EXPIRE NEVER;
#更新root密码
ALTER USER root@% IDENTIFIED WITH mysql_native_password BY 123456;
#刷新权限
flush privileges;

10、 服务器文件放入容器中

?
1
2
docker ps  #查看容器id
docker cp linux文件 容器id:容器路径
?
1
2
3
4
5
6
7
#linux中查找php.ini
php -i | grep php.ini
#docker 因配置文件出错无法进入容器内解决办法
#将容器配置文件复制到服务器上
1.docker cp mynginx:/etc/nginx/conf.d/default.conf /users/nginx/default.conf
#修改后再写回容器中
2.docker cp /users/nginx/default.conf mynginx:/etc/nginx/conf.d/default.conf

到此这篇关于Docker简单安装LNMP环境(可部署TP项目)的文章就介绍到这了,更多相关Docker 安装LNMP环境内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/ljkltt/p/14876054.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Docker Compose构建Jenkins的实现

2023-3-6 13:27:05

建站知识

小知识:Dockerfile文件详解

2023-3-6 13:33:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索