您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

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

51自学网 2022-07-22 18:46:11
  网站维护

Docker安装LNMP环境

1、安装Docker

yum install docker# 启动并加入开机启动sudo systemctl start dockersudo systemctl enable docker

2、 安装nginx

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

3、 安装PHP

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

4、 查看nginx运行路径

# 进入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容器

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

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

# 进入php容器docker exec -it phpfpm bash# 进入运行目录cd /usr/share/nginx/html# vim 创建index2.php# 因为docker没有安装vim,此时运行apt-get updateapt-get install vimcat << EOF > /root/.vimrc:set encoding=utf-8:set fileencodings=ucs-bom,utf-8,cp936:set fileencoding=gb2312:set termencoding=utf-8EOF# 创建index2.phpvim index2.php<?php    echo 1;?># esc :wq 保存退出

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

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' phpfpm# 172.17.0.3

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

docker exec -it nginx bash# 进入nginx配置目录cd /etc/nginx/conf.d# 安装vimapt-get updateapt-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;}# 保存退出,重启nginxdocker restart nginx# 访问ip/index2.php,成功

9、 拉取Mysql镜像

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/bashmysql -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、 服务器文件放入容器中

docker ps  #查看容器iddocker cp linux文件 容器id:容器路径
#linux中查找php.iniphp -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

下载地址:
Dockerfile文件详解
Nginx配置使用详解
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1